Làm cách nào tôi có thể triển khai API ESRI REST?


24

ESRI thông báo rằng họ đang phát hành API ArcGIS REST dưới dạng công nghệ mở . Tôi đã có một ISP chạy Sql Server 2008 với IIS7.

Có ai biết cách đi bộ tốt thông qua cách hiển thị cách tôi có thể viết C # bằng cách sử dụng WCF để hiển thị các bảng không gian tuân thủ một thông số cụ thể (lý tưởng là ESRI) không?

Có ai biết thông số kỹ thuật của ESRI ở đâu không?

Câu trả lời:



8

Tôi chỉ sử dụng liên kết Jason đăng ở trên. Tôi không thể tưởng tượng khi nó được phát hành, thông số chính thức sẽ khác đi nhiều. Nó chủ yếu là một tay áo của bạn, kích hoạt Fiddler, tấn công các máy chủ mẫu 10.0 và bắt đầu hack ngay khi thực hiện. Không có gì là không thể, chỉ là tẻ nhạt với rất nhiều vấn đề nhỏ cần tính đến. Chúng tôi thậm chí sẽ không làm cho chúng tôi tương thích 100% nhưng nó chiếm 85% và tất cả các ứng dụng khách dường như hoạt động khá tốt (đó là lý do duy nhất tôi làm điều đó để bắt đầu)

đây là một danh mục demo (có rất nhiều lỗi nhỏ trong đó :) [bFlood - đã xóa liên kết cũ]

chúng tôi đang chạy nó trên AppEngine (python) và nó được kết hợp khá chặt chẽ với các cấu trúc không gian bên dưới nhưng có lẽ nó có thể được tạo thành một dự án .Net WCF phong nha. Không chắc chắn làm thế nào chúng ta sẽ phân phối nó mặc dù

chúc mừng brian

Cập nhật - 3/8/12 - Tôi vừa thấy bài đăng này bật lên trong stackexchange vì vậy tôi đoán rằng tôi sẽ cập nhật nội dung. Bạn có thể chạy FeatureService trong vài phút nếu bạn dùng thử bản beta Arc2Earth Sync. phụ trợ hoạt động với Google Fusion Bảng và CartoDB nhưng chúng tôi sẽ sớm hỗ trợ các nhà cung cấp khác. Bạn không cần bất cứ thứ gì ngoại trừ ArcView 9.2 trở lên ...

đây là một bài đăng trên blog cho thấy cách bắt đầu thu thập dữ liệu thực địa trong vài phút bằng các ứng dụng di động ArcGIS.com: http://www.arc2earth.com/2012/03/arc2earth-sync-live-mobile-data-collection-in-5 -phút


2
Lũ lụt? Kirk Kuykendall? Giống như toàn bộ ban nhạc diễn đàn ESRI đã trở lại với nhau!
Sebastian Tốt

Này Brian, thật tuyệt khi được nghe từ bạn. Tôi hy vọng tiền thưởng sẽ lôi kéo ai đó làm chính xác những gì bạn và Jason mô tả, và đăng kết quả của họ ở đâu đó như codeplex. Nếu không, có lẽ tôi sẽ phá vỡ nó. @Sebastian, rất vui được gặp bạn ở đây!
Kirk Kuykendall

2
@kirk - yea, tôi sẽ mong đợi một dự án cộng đồng sẽ khởi động vào một lúc nào đó. Nó cần phải đủ linh hoạt để cho phép nhiều phụ trợ không gian, có thể là kiến ​​trúc plugin để kết nối bất kỳ phiên bản nhà cung cấp nào của bản đồ / lớp / tính năng (ví dụ: sql azure, postgis, geoserver, mapguide, v.v.) @Sebastian - yea, ESRI forum với tìm kiếm mà thực sự hoạt động. chúc mừng
bFlood

7

Tài liệu duy nhất mà tôi biết về API REST của esri là trong trợ giúp trực tuyến của họ ở đây:

http://help.arcgis.com/EN/arcgisserver/10.0/apis/rest/index.html

Điều này được viết nhiều hơn từ góc độ của người tiêu dùng hơn là nhà cung cấp, nhưng nên có thể hack được.

Có những phần của API này khá độc quyền (một số định dạng đầu ra ) và không thể triển khai bởi một dự án nguồn mở trừ khi các đặc tả định dạng này cũng được cung cấp.

Đồng thời, một số API REST không đặc biệt RESTful. Ví dụ, nhìn vào Dịch vụ tính năng. Dường như có các "điểm cuối" riêng biệt để thêm / cập nhật / xóa / truy vấn thay vì sử dụng các động từ HTTP tiêu chuẩn để hoạt động trên các tài nguyên. Điều này đánh đố tôi; Tôi biết rằng esri có một số người khá thông minh, những người hiểu REST. Tôi đoán là những cuộc gọi này ánh xạ tới một loại giao diện SOAP nào đó và esri cảm thấy rằng sẽ dễ dàng hơn cho họ và khách hàng của họ nếu họ duy trì sự thống nhất giữa họ.

Quan điểm của tôi? Nếu bạn chỉ nhìn vào việc chia sẻ dữ liệu (không phải cấu hình bản đồ, siêu dữ liệu, v.v.) và không vội vàng, bạn có thể nên chờ đợi cho đến khi Microsoft tìm ra cách họ sẽ biểu diễn các loại dữ liệu không gian trong EDM. Với vị trí này, bạn có thể dễ dàng tạo quyền truy cập RESTful thực sự vào các bảng không gian của mình bằng OData và có thể là OData hỗ trợ RIA tại đó. Điều này có thể là trên trời cho tất cả những gì tôi biết mặc dù.


Cảm ơn Jason. Đó là một điểm tốt về các định dạng đầu ra độc quyền. Đầu tiên tôi sẽ chỉ muốn json, html và hình ảnh. Lý tưởng nhất, điều tôi muốn là một dự án C # sử dụng Dịch vụ WebHttp của WCF trong .NET 4 để lấy dữ liệu từ Sql Server 2008 và trả về ở dạng mà bất kỳ SDK web nào của ESRI đều có thể tiêu hóa.
Kirk Kuykendall

À, xin lỗi, vâng. Tôi đã bỏ lỡ nội dung mà bạn đang tìm kiếm để phục vụ phần mềm máy khách esri. Hoàn toàn có ý nghĩa khi cố gắng triển khai API trong trường hợp đó
JasonBirch

2

Bạn đang xem việc phơi bày các bảng không gian từ SQL Server 2008 Spatial? ESRI MapIt đã thực hiện điều này và tôi tin rằng việc cấp phép cho phép những người có AGS có quyền truy cập vào ESRI MapIt.

Một số màn hình trông giống như thế này có thể được tìm thấy trên blog của tôi: http://geo.geek.nz/development/hiding-database-from-unauthorised-users-when-USE-esri-mapit/

Không cần phải tự viết một cái gì đó? ;)

Chúc mừng


Xin chào Jithen, Dịch vụ dữ liệu không gian được thảo luận trong bản PDF này ( esri.com/l Library / brochures / pdfs / esri-mapit.pdf ) bằng cách sử dụng API ESRI REST, dịch vụ WCF, hoặc một cái gì đó hoàn toàn khác? Tôi đoán rằng MapIt không miễn phí nếu bạn không chạy AGS; nếu vậy, cộng đồng sẽ có lợi khi phát triển thứ gì đó tiếp xúc với API ESRI REST trực tiếp từ MS SQL Server Spatial mà không phải trả thêm chi phí, đặc biệt là cho các ứng dụng nhỏ có thể chạy SQL Express.
JasonBirch

Xin chào Jithen - Tôi đã tải xuống phiên bản dùng thử của MapIT ở mức 1.0 và tại thời điểm đó tôi cần cài đặt nó trên cùng một máy nơi IIS đang chạy. ISP của tôi không cho phép điều này. Ngoài ra, tôi không thể chạy MapIT trên máy chủ dev sau đó triển khai trang web đến máy chủ sản xuất - nó phải được chạy trên máy chủ sản xuất. Có lẽ điều này đã thay đổi?
Kirk Kuykendall

1
@JasonBirch Xin chào Jason, SDS là một triển khai riêng biệt từ API REST nhưng cung cấp giao diện tương tự cung cấp cho bạn khả năng chạy truy vấn đối với SQL Server Spatial. Một truy vấn mẫu: servername / SDS / cơ sở dữ liệu / hộp cát / dbo.PostcodeBoundaries / Vượt qua có thể được đọc bởi bất kỳ API nào. ESRI MapIt có một số tính năng chính và hữu ích. Ví dụ, trình chiếu dữ liệu và trình tải dữ liệu không đáng viết.
jriteeach

@Kirk Xin chào Kirk, 1.1. bao gồm một số tính năng mới, chủ yếu là các cải tiến cho trình tải nhưng cũng có khả năng dễ dàng triển khai SDS. Hỗ trợ Azure hiện cũng được bao gồm. MapIt chỉ cần IIS và khả năng nói chuyện với SQL Server của bạn. Nó thực sự rất dễ cài đặt và chạy nhưng như đã đề cập, khả năng triển khai vào phương tiện bây giờ với giao diện người dùng không đầu nên điều này có thể giúp bạn. Chúc mừng
jriteeach

2

Tôi đã làm điều này đã có trong một ứng dụng. Tôi đã không thực hiện đầy đủ api REST đầy đủ, nhưng đủ để có một tác vụ truy vấn để chạy và định dạng JSON chính xác. Tôi đã sử dụng ASP .NET MVC để xây dựng điểm cuối của mình. Tôi đã thử làm điều này khoảng một năm trước với WCF và đầu ra JSON không được định dạng theo cách như vậy để làm việc. Thủ thuật với MVC là đảm bảo bạn có kết quả JSONP sẽ kéo tham số truy vấn gọi lại và thực hiện phản hồi jsonp chính xác. Tôi sẽ cố gắng để đăng một cái gì đó lên. Bạn có thể xem phản hồi ở đây:

http://www.ci.austin.tx.us/GIS/TrafficViewer/Home/JsonpIncferences/query?f=json&where=1%3D1&returnGeometry=true&spatialRel=esriSpatialRelIntersects & outField

Tuy nhiên, chỉ tham số gọi lại được sử dụng:

http://www.ci.austin.tx.us/GIS/TrafficViewer/Home/JsonpIncferences?callback=woot

Chỉnh sửa: Đây là cách triển khai kết quả JSONP trong ASP .NET MVC

/programming/758879/asp-net-mvc-retinating-jsonp

Chỉnh sửa # 2: Đây là một ví dụ mã mà tôi đã nhanh chóng thực hiện và đưa lên dropbox.

http://dl.dropbox.com/u/28924446/EsriGeoServiceExampleMvc3.zip


1

Có vẻ như bạn cuối cùng sẽ thay thế chức năng của ArcGIS làm điều đó. Tôi sẽ khuyên bạn nên sử dụng một dự án nguồn mở hiện có để triển khai một hệ thống như vậy nếu một dự án có sẵn hỗ trợ API đó, có thể viết bộ điều hợp riêng của bạn cho một dự án nguồn mở. Có lẽ một người tồn tại nhưng tôi đã không nhìn rất khó khăn. Tôi không chắc chắn họ đã phát hành một đặc tả API đầy đủ chưa, nhưng nếu bạn vội, bạn có thể sử dụng tài liệu API hiện có và kiểm tra việc triển khai của bạn đối với phần mềm ESRI hiện có.


Cảm ơn Dandy, tôi đoán cuối cùng sẽ có một dự án nguồn mở. Tôi thấy lạ là ESRI sẽ công bố nó, nhưng không cung cấp liên kết đến thông số kỹ thuật. Tôi thậm chí không chắc chắn một thông số API REST sẽ trông như thế nào. Chỉ là một ví dụ về thông số kỹ thuật cùng với các mẫu mã cho thấy cách người ta triển khai nó (với .NET) sẽ hữu ích.
Kirk Kuykendall

Tôi nhớ một số quảng cáo thổi phồng cho hệ thống FGDB đang mở nhưng tôi nghĩ họ chỉ mở một API mã cho nó chứ không phải xuất bản một thông số kỹ thuật. Tôi sẽ không hy vọng nhưng bạn sẽ có thể dễ dàng thực hiện điều gì đó chỉ bằng cách sử dụng tài liệu tiêu dùng như @JasonBirch cũng nói.
Dandy



-1

@JasonBirch - Tôi nghĩ rằng điểm thu hút chính cho việc này là khả năng tích hợp với các ứng dụng esri / apis / arcgis.com. Nếu esri rút phích cắm bằng cách sử dụng những thứ rẻ tiền (miễn phí) này, nó trở nên ít quan trọng hơn nhiều. Tôi không rõ họ dự định làm gì với ArcGIS.com và ngay cả cách nó được cấp phép ngay bây giờ. Tôi thấy đó là một vị trí trung tâm cho dữ liệu / dịch vụ nơi các ứng dụng web có thể được đăng ký, một cái gì đó giống như một cửa hàng ứng dụng cho dữ liệu esri. Các bên thứ 3 đăng ký ứng dụng web nhiều người thuê (đám mây), esri sẽ cắt giảm và ứng dụng của bạn có sẵn ngay lập tức cho tất cả những người tham gia tương thích với thông số api còn lại. trong ánh sáng này, thật hợp lý khi mở api còn lại và cho phép càng nhiều dịch vụ tích hợp với trung tâm càng tốt. tìm kiếm / lưu trữ dữ liệu không gian địa lý nhanh chóng trên đường trở thành hàng hóa, vì vậy hãy di chuyển nó lên một bậc và cố gắng kiểm soát không gian ứng dụng.

Tôi nghĩ rằng nhận xét OData của bạn có giá trị nhưng IMO, đó là một cách. và quan trọng hơn, không có ứng dụng khách được phân phối rộng rãi và được yêu thích (một thứ gì đó trên Google Earth), bất kỳ thông số kỹ thuật nào được viết tốt đều có khả năng héo trên cây nho. Không nói đó là trường hợp của OData, có rất nhiều nhà phát triển MS ngoài kia sẽ nhận được bản này miễn phí trong VS, nhưng tôi không thấy nó trong thời gian ngắn. 2 xu của tôi ...

(btw, dường như có một độ dài bình luận khá ngắn, do đó câu trả lời mới thay thế)


1
Vâng, trang web này được thiết kế có chủ ý để tránh thảo luận :) FYI, Haris và tôi đang làm việc để OData làm việc với GeoREST (anh ấy đang làm việc, tôi đang cằn nhằn. Hình học trong chuỗi với loại thuộc tính mở rộng (KML / GML / GeoJSON).
JasonBirch

Nghe có vẻ thực sự thú vị, có thông tin trực tuyến nào không?
Hoàn thành

chưa, nhưng rất thích trò chuyện về nó. Chúng tôi đã suy nghĩ quá nhiều lần rồi :) BTW, nếu bao gồm @username của tôi, tôi nhận được thông báo phản hồi :)
JasonBirch

ahhh, ok @JasonBirch nó là (nên đã đoán điều này). chắc chắn hãy trò chuyện, tôi rất thích treo OData hỗ trợ trên các đám mây A2E (miễn là có một phương pháp lành mạnh để xử lý hình học nhưng bây giờ tôi biết bạn và haris đang ở trong trường hợp, tất cả đều tốt!)
bFlood
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.