Bản đồ Bing 7 có hỗ trợ KML không?


9

Tôi không có may mắn tìm thấy ví dụ. Tôi đã tìm thấy mã như thế bên dưới nhưng đây là phiên bản trước.

shapeLayer = new VEShapeLayer();
shapeSpec = new VEShapeSourceSpecification(VEDataType.ImportXML, layer.url, shapeLayer);
veMap.ImportShapeLayerData(shapeSpec);

Tôi không nghĩ ví dụ này đại diện cho kml. Điều này trông giống như shapefile esri cho mắt chưa được huấn luyện của tôi. Điều đó nói rằng tôi chắc chắn rằng bạn có thể thực hiện một bản mashup giữa bing và GE nhưng đọc giấy phép cho các hạn chế.
Brad Nesom

Không có gì để làm với ESRI shapefiles Brad. Từ API doco - msdn.microsoft.com/en-us/l Library / bb412413.aspx Lớp VEShapeLayer Chứa thông tin về các lớp hình dạng. Các lớp hình dạng là một cơ chế để tạo và quản lý các nhóm hình dạng tùy ý (ống đẩy, polylines và đa giác). Các lớp hình dạng bản đồ có thể được tạo từ các tệp GeoRSS XML, các lát bản đồ tùy chỉnh hoặc từ bất kỳ bộ sưu tập Bing Maps ( maps.live.com ) nào.
dùng2856

Câu trả lời:


2

Như đã đề cập ở trên, GeoRSS và KML không được hỗ trợ. Tuy nhiên, ai đó đã viết trình thông dịch GeoRSS cho Bing Maps v7. Và vì các tệp KML và các tệp GeoRSS đều là XML, vì vậy bạn có thể dễ dàng chuyển đổi giữa hai tệp bằng XSL. Một số săn bắn cho thấy nhiều người đã nói về nó, nhưng tôi không thể tìm thấy bất kỳ tệp XSL thực tế nào. Tuy nhiên, tôi đã tìm thấy một điều ngược lại, chuyển đổi GeoRSS sang KML , điều này sẽ cho bạn ý tưởng tốt về việc bắt đầu từ đâu nếu bạn tự viết.

Nếu bạn chỉ cần thực hiện việc này một lần, bạn có thể sử dụng để theo dõi hai trang web để chuyển đổi KML sang GeoRSS qua CSV:

  1. Bộ chuyển đổi KML sang CSV bằng XSL.
  2. Một CSV để GeoRSS webapp

Và một tùy chọn cuối cùng chỉ đơn giản là viết trình thông dịch KML của riêng bạn, giống như cách ai đó đã viết trình thông dịch GeoRSS của riêng họ , mỗi @Derek.


Tôi đang bối rối ... GeoRSS được hỗ trợ với API bản đồ như thế nào? Thật khó để nói rằng việc viết mã phân tích cú pháp của riêng bạn được tính là "được hỗ trợ".
Derek Swingley

Xin lỗi, nó không được hỗ trợ, nhưng bài đăng tôi liên kết có trình thông dịch để sử dụng GeoRSS trong Bing v7 với jQuery. Tôi sẽ viết lại để rõ ràng hơn.
Patrick

4

Hình như câu trả lời là không. Tôi đang nói điều này dựa trên việc xem xét các tài liệu SDK của họ và chuỗi này: Tìm kiếm ví dụ KML hoặc GeoRSS trong Bing Maps Ajax Control v7 .

Nếu hỗ trợ KML là rất quan trọng, bạn có thể sử dụng API ArcGIS của Esri cho JavaScript vì nó có hỗ trợ cho các lớp KML có thể truy cập công khai . Tiết lộ đầy đủ: Tôi làm việc tại Esri trong nhóm API JavaScript.


Tò mò: Tôi thấy giấy phép ESRI cho JSAPI khó đọc. Bất cứ ai cũng có thể sử dụng jsapi để xuất bản bản đồ? Ví dụ: tôi có thể sử dụng JSAPI để hiển thị bản đồ bing và không vi phạm bất kỳ giấy phép ESRI nào không? Tương tự cho google, OSM, ESRI Public Tiles? Hoặc có cần thiết cho người dùng là người dùng ArcGIS Server không? CV đang mở nhưng là JSAPI?
ca0v

1
@ user2023 Chúng tôi đã thảo luận về cấp phép JSAPI trong nội bộ và đồng ý câu chuyện không rõ ràng. Chúng tôi đang làm việc để cải thiện điều này và có kế hoạch cập nhật một số trang để phản ánh một câu chuyện cấp phép đơn giản hơn, dễ hiểu hơn. Cho đến khi chúng tôi nhận được các trang khác nhau được cập nhật, câu chuyện là thế này: sử dụng JSAPI cho các trang web / ứng dụng nội bộ, bên ngoài, phi thương mại và thương mại miễn phí. Bạn không cần phải trả tiền trừ khi bạn bắt đầu lưu trữ một lượng lớn dữ liệu trong arcgis.com và sử dụng các dịch vụ (hình học, định vị / mã hóa địa lý và định tuyến) trên arcgis.com.
Derek Swingley

2

Bản đồ Bing 7.0 không bao gồm bộ chuyển đổi KML. Nhưng vì nó sử dụng các đối tượng JavaScript để hiển thị dữ liệu trên bản đồ (xem API Bing ), bạn có thể phân tích thủ công kml và chuyển đổi nó thành các đối tượng tương ứng.

Trong ví dụ mã này , tôi sử dụng JavaScript để chuyển đổi dữ liệu đa giác KML sang các đối tượng Microsoft.Maps.Polygon mới. Sau đó tôi sẽ sử dụng mã dưới đây để thêm đa giác vào bản đồ Bing của mình.

// Initialize the Map.
var map = new Microsoft.Maps.Map(document.getElementById("mapDiv"), {credentials:"Bing Maps Key"});

// Insert your own code to get your KML string here.

// Parse the kml into Microsoft.Maps.Polygon objects and add them to the map.
var polygons = bingKmlParser.parsePolygons(kmlString);
map.entities.push(polygons);

KML của bạn có phải ở một hình dạng nhất định không? Hoặc điều này sẽ làm việc trên bất kỳ tệp KML?
J86


0

Như hầu hết các bài đăng khác đã đề cập, có vẻ như KML không được hỗ trợ trực tiếp trong điều khiển Bing Maps Ajax v7. Tuy nhiên, tôi nghĩ điều đáng nói là nó được hỗ trợ trong GUI bản đồ thông thường. Trong bài đăng trên blog Bing sau đây, nó mô tả cách người ta có thể nhập KML vào "Địa điểm của tôi" trên Bản đồ Bing:

Không chính xác những gì câu hỏi đang tìm kiếm, nhưng có khả năng hữu ích cho loại tình huống đó.


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.