Xây dựng một huyền thoại tùy chỉnh, động bằng cách sử dụng js ArcGis-server và DynamicMapServiceLayer


8

Tôi có một DynamicMapServiceLayer mà tôi đang sử dụng để xây dựng một ứng dụng bản đồ. Có khoảng 10 lớp trong dịch vụ maps mà tôi đang chuyển đổi bằng hành động setVisibleLayers.

Tôi muốn xây dựng huyền thoại bản đồ năng động, tùy chỉnh của riêng tôi. Khi độ nhớt của một lớp được bật, mục chú thích tương ứng cũng sẽ ẩn () / show ()

MapServer của tôi có một url liên kết đến một trang với tất cả các mục chú thích tương ứng như bên dưới ngoại trừ url của chú giải của tôi có 10 mục chú thích

http://sampleserver1.arcgisonline.com/ArcGIS/rest/service/Pet Fuel / KGS_OilGasFields_K Kansas / MapServer / lendend

Có cách nào để tôi có thể truy cập các mục chú thích riêng lẻ (Tên và biểu tượng) từ máy chủ mapServer hiện tại không? Tôi thoải mái xây dựng huyền thoại, tôi chỉ cần biết cách truy cập các biểu tượng của lớp mà sau đó tôi sẽ thêm vào hộp thoại huyền thoại.

Tôi cũng nên đề cập rằng tôi đang tránh sử dụng DOJO và sử dụng javascript và jQuery thuần túy.

Câu trả lời:


7

Nếu bạn truy cập dịch vụ đó thông qua API REST:

http://sampleserver1.arcgisonline.com/ArcGIS/rest/service/Pet Fuel / KGS_OilGasFields_K Kansas / MapServer / lendend

Bạn có thể lấy JSON bằng cách sử dụng jQuery http://api.jquery.com/jQuery.getJSON/ Vì vậy, hãy tự xây dựng huyền thoại từ dữ liệu mà bạn đã truy xuất.

Để thêm các ký hiệu chú giải, bạn có thể sử dụng jQuery để tạo img và chèn contentType và imageData của từng mục chú thích vào src để hiển thị biểu tượng.

/programming/5000710/receive-image-data-as-json-and-injecting-it-into-the-dom/5000778#5000778

Có lý?


stu ... điều này nghe thật tuyệt hãy để tôi hack cái này một lúc và xem nó diễn ra như thế nào
jotamon

Đôi điều. Thứ nhất, không sử dụng khá = true vì nó không cần thiết và sử dụng thêm tài nguyên máy chủ. Thứ hai, bạn có thể lấy biểu tượng của một lớp bằng cách lấy render.symbol hoặc một mảng từ biểu tượng renderer.infos []. Nhưng hãy nhớ rằng người tạo bản đồ có thể đã sử dụng 'SimpleMarkerSymbol', 'SimpleCircleSymbol', v.v.
Jim Wharton
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.