Ví dụ về Dịch vụ Bản đồ động thường xuyên thay đổi?


8

Yêu cầu của ứng dụng web của chúng tôi là tự động làm mới một dịch vụ bản đồ động cụ thể trên bộ hẹn giờ.

Yêu cầu liên quan đến một khách hàng có MS động luôn được cập nhật từ các cảm biến GPS.

Bây giờ hãy quên đi Dịch vụ tính năng và các dịch vụ WMS hoặc Hình ảnh có thể thay đổi thường xuyên.

Mã hóa khôn ngoan, nó khá đơn giản để đạt được điều này.

Những người thử nghiệm của chúng tôi hiện muốn một Dịch vụ Bản đồ động thay đổi thường xuyên (lý tưởng nhất là cứ sau 15 giây) để họ có thể thấy cách thức này nhìn lại ở mặt trước. Cũng sẽ giúp chúng tôi chứng minh khả năng mới cho khách hàng của chúng tôi.

Tôi đã truy quét các máy chủ mẫu Esri nhưng không thể tìm thấy.

Có ai biết về một dịch vụ công cộng như vậy mà chúng tôi có thể sử dụng cho một số thử nghiệm nhanh không?

Nếu câu trả lời là không, phải có các tập lệnh ngoài kia để mô phỏng chuyển động theo dõi GPS, để có thể tiếp tục thay đổi vị trí của một số điểm. Sau đó, chúng tôi có thể thiết lập dịch vụ của riêng tôi.


1
Dữ liệu của bạn ở đâu sau dịch vụ bản đồ được lưu trữ? Có phải chúng ta đang nói ArcSDE trên SQL Server / Oracle, cơ sở dữ liệu địa lý tệp, v.v ...?
Chad Cooper

Có thể là bất kỳ ở trên. Có tất cả đã sẵn sàng trong môi trường thử nghiệm của chúng tôi. Các chức năng mới nên được kiểm tra đối với tất cả các môi trường đó, nhưng tôi không sợ có vấn đề gì ở phần phụ trợ.
Simon

Có lẽ i2maps ncg.nuim.ie/i2maps/docs/index.php?page=examples có thể giúp bạn?
radek

Có cần phải làm việc với 10.1, một khi nó được phát hành không?
Kirk Kuykendall

Bạn không cần Máy chủ Theo dõi cho Máy chủ ArcGIS? esri.com/software/arcgis/tracking-server/index.html để làm điều này?
Mapperz

Câu trả lời:



2

Nếu bạn đang sử dụng API REST, thì đối với tôi, bạn có thể làm điều này mà không cần máy chủ arcgis. Khi có yêu cầu đến bản đồ, hãy trả về chuỗi json tuân thủ thông số API REST , đại diện cho các vị trí mới.

Với các cửa sổ, điều này có thể được thực hiện bằng cách triển khai dịch vụ WCF Rest . Dịch vụ này sẽ giữ một loạt các phương tiện trong bộ nhớ. Mỗi chiếc xe sẽ có vị trí, tiêu đề, tốc độ và dấu thời gian. Khi một yêu cầu đến vị trí sẽ được cập nhật dựa trên thời gian đã trôi qua kể từ dấu thời gian cuối cùng, bù đắp một số khoảng cách dựa trên tốc độ và tiêu đề.

Nếu phương tiện của bạn cần đi theo đường, bạn có thể đổ một đường dẫn cho mỗi xe vào một tệp (x, y và thời gian). Dịch vụ REST sau đó có thể sử dụng tệp để trả về các cập nhật vị trí theo các đường dẫn đó.

Khách hàng của bạn sẽ cần một bộ đếm thời gian để thực hiện yêu cầu cứ sau 15 giây. Bao gồm dấu thời gian trên url để ngăn bộ đệm.

Biên tập

Một cách khác là sử dụng layerextension. Tạo một mxd trỏ đến một featurelayer giả. Lần đầu tiên ILayerExtensionDraw.B BeforeLayerDraw được gọi, hãy thay thế IFeatureLayer.Featureclass bằng một featureclass trong bộ nhớ (được tạo bằng inmemoryworkspacefactory ). Featureclass điểm sẽ đại diện cho các vị trí xe, với các trường cho Heading, Speed ​​và TimeStamp. Mỗi lần BeforeLayerDraw được gọi, các vị trí sẽ được cập nhật dựa trên tốc độ, hướng và thời gian kể từ dấu thời gian cuối cùng. Đừng quên để IPereistStream của bạn thực hiện IPereistStream .


Ví dụ rất tốt; Tôi đã làm điều này trong vài năm qua nhưng không có REST. Chúng tôi đã có Lớp ArcSDE sẽ cập nhật với từ xa phương tiện được thăm dò từ mỗi chiếc xe cứ sau 30 giây, dữ liệu đó được chèn vào lớp Điểm với các giá trị được đóng dấu thời gian. Chúng tôi vừa có một phương pháp sẽ cập nhật kiểm soát bản đồ (dựa trên ADF, yuck) trên cửa sổ có thể định cấu hình và sẽ kéo 5 điểm thông tin xe gần đây nhất để bạn có thể thấy chuyển động và thời gian. Hoạt động tốt cho PD / EMS ...
DEWright

Đẹp, nhưng không phải những gì tôi sau. Tôi cần một D-MS mà tôi có thể gọi thông qua API Esri và sau đó ở nơi khác trong mã của tôi, tôi có nó để tiếp tục yêu cầu dịch vụ này. Câu trả lời của bạn có vẻ quá mức cho nhu cầu thử nghiệm của tôi?
Simon

-1

Bản chất của dịch vụ bản đồ động là nó được hiển thị nhanh chóng, theo yêu cầu. Để xem bất kỳ thay đổi nào về phía khách hàng, yêu cầu bản đồ mới phải được đưa ra.

Theo mặc định, dịch vụ bản đồ động được lưu trữ qua ArcGIS Server sẽ đặt "Khóa lược đồ" trên dữ liệu, không cho phép chỉnh sửa dữ liệu nguồn trong khi dịch vụ đang chạy.

Điều này có thể được khắc phục bằng cách chỉnh sửa các thuộc tính trong tệp cấu hình dịch vụ bản đồ (.cfg). Một <SchemaLockingEnabled>false</SchemaLockingEnabled>mục nhập sẽ cho phép thay đổi dữ liệu nguồn trong khi dịch vụ đang chạy.

Xem http://help.arcgis.com/en/arcgisserver/10.0/help/arcgis_server_dotnet_help/index.html#//0093000000mr000000


LƯU Ý: nếu cập nhật tính năng thông qua dịch vụ tính năng, bạn sẽ không phải lo lắng về Khóa Schema. Ngoài ra, gửi các chỉnh sửa tính năng thông qua dịch vụ tính năng sẽ là một cách tuyệt vời để kiểm tra việc vẽ lại động của dịch vụ bản đồ.
Allan Adair

Allan, cách tốt nhất để vượt qua vấn đề này là Chế độ xem không gian từ nguồn SDE / DB. Bạn cập nhật bảng đã nói trực tiếp và khi truy vấn mới kích hoạt lượt xem và lớp nguồn được nhấn.
DEWright

Đó là một mẹo hay theo quan điểm kiến ​​trúc và nếu Simon đang sử dụng SDE để lưu trữ / truy xuất dữ liệu thì đó sẽ là một cách khác để kiểm tra xem dịch vụ bản đồ động có được hiển thị đúng trong ứng dụng phía máy khách hay không.
Allan Adair

Một khách hàng khác chỉ có giá trị X / Y mà chúng tôi sẽ sử dụng để tạo điểm nhanh chóng dựa trên mức độ có thể xem hiện tại và điều đó cũng hoạt động tốt. Vì vậy, có tiềm năng, tôi ước tôi có một dịch vụ công khai để giới thiệu nó; nhưng vì đây là những dịch vụ của chính phủ nên tất cả đều được bảo mật.
DEWright

Ví dụ này sẽ hoạt động: sampleserver3.arcgisonline.com/ArcGIS/rest/service/Fire/Sheep/. Đây là dịch vụ mẫu có thể được chỉnh sửa bằng SDK tương tác Silverlight. Tôi chắc chắn có nhiều hơn ngoài đó. help.arcgis.com/en/webapi/silverlight/samples/ từ
Allan Adair
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.