Czy Bing Maps 7 obsługuje KML?


9

Nie mam szczęścia znaleźć przykładów. Znalazłem taki kod poniżej, ale dotyczy to wcześniejszych wersji.

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

Nie sądzę, że ten przykład reprezentuje kml. Dla mojego niewprawnego oka wygląda to jak plik kształtu esri. To powiedziawszy, jestem pewien, że możesz zrobić połączenie pomiędzy Bing i GE, ale przeczytaj licencję na ograniczenia.
— Brad Nesom,

Nie ma nic wspólnego z kształtami ESRI Brad. Z interfejsu API doco - msdn.microsoft.com/en-us/library/bb412413.aspx Klasa VEShapeLayer Zawiera informacje o warstwach kształtów. Warstwy kształtów to mechanizm do tworzenia i zarządzania dowolnymi grupami kształtów (pinezki, polilinie i wielokąty). Warstwy kształtów map można tworzyć z plików GeoRSS XML, niestandardowych kafelków map lub dowolnej publicznej kolekcji Bing Maps ( maps.live.com ).
— user2856,

Odpowiedzi:


2

Jak wspomniano powyżej, GeoRSS i KML nie są obsługiwane. Jednak ktoś napisał interpreter GeoRSS dla Bing Maps v7. A ponieważ pliki KML i GeoRSS są plikami XML, więc możesz łatwo konwertować między nimi za pomocą XSL. Niektóre polowania pokazują, że wiele osób mówiło o tym, ale nie mogę znaleźć żadnego rzeczywistego pliku XSL, który by to zrobił. Odkryłem jednak, że działa odwrotnie, przekształcając GeoRSS w KML , co powinno dać ci dobry pomysł, od czego zacząć, jeśli napisałeś własny.

Jeśli musisz to zrobić tylko raz, możesz skorzystać z następujących dwóch stron internetowych, aby przekonwertować KML na GeoRSS przez CSV:

  1. KML do konwertera CSV przy użyciu XSL.
  2. Aplikacja internetowa CSV do GeoRSS

I ostatnią opcją jest po prostu napisanie własnego interpretera KML, w taki sam sposób, jak ktoś napisał własny interpreter GeoRSS na @Derek.


Jestem zdezorientowany ... w jaki sposób GeoRSS jest obsługiwany przez API map bing? Trudno powiedzieć, że pisanie własnego kodu jest liczone jako „obsługiwane”.
— Derek Swingley,

Przepraszamy, nie jest obsługiwany, ale post, do którego linkowałem, zawiera interpreter do używania GeoRSS w Bing v7 z jQuery. Przepiszę, żeby było bardziej jasne.
— Patrick,

4

Wygląda na to, że odpowiedź brzmi „nie”. Mówię to w oparciu o ich dokumenty SDK i ten wątek: Szukanie KML lub GeoRSS Przykład w Bing Maps Ajax Control v7 .

Jeśli kluczowe znaczenie ma obsługa KML, możesz użyć ArcGIS API Esri dla JavaScript, ponieważ obsługuje on publicznie dostępne warstwy KML . Pełne ujawnienie: pracuję w Esri w zespole JavaScript API.


Ciekawe: trudno jest odczytać licencję ESRI dla JSAPI. Czy ktoś może używać jsapi do publikowania map? Na przykład czy mogę używać JSAPI do wyświetlania map bing i nie naruszać żadnych licencji ESRI? To samo dotyczy google, OSM, ESRI Public Tiles? A może konieczne jest, aby użytkownik był użytkownikiem ArcGIS Server? OL jest otwarty, ale czy JSAPI?
— ca0v

1
@ user2023 Dyskutowaliśmy wewnętrznie o licencjonowaniu JSAPI i zgadzamy się, że historia nie jest jasna. Pracujemy nad udoskonaleniem tego i planujemy zaktualizować kilka stron, aby odzwierciedlić prostszą, łatwiejszą do zrozumienia historię licencjonowania. Dopóki nie zaktualizujemy różnych stron, historia jest następująca: używaj JSAPI do wewnętrznych, zewnętrznych, niekomercyjnych i komercyjnych witryn / aplikacji bezpłatnie. Nie musisz płacić, chyba że zaczniesz przechowywać dużą ilość danych w arcgis.com i korzystać z usług (geometria, lokalizator / geokodowanie i routing) na arcgis.com.
— Derek Swingley

2

Bing Maps 7.0 nie zawiera konwertera KML. Ale ponieważ używa obiektów JavaScript do wyświetlania danych na mapie (patrz Bing API ), możesz ręcznie parsować kml i konwertować go na odpowiednie obiekty.

W tym przykładzie kodu używam JavaScript do konwersji danych wielokąta KML na nowe obiekty Microsoft.Maps.Polygon. Następnie użyłbym poniższego kodu, aby dodać wielokąty do mojej mapy Bing.

// 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);

Czy Twój plik KML musi mieć określony kształt? A może to zadziała na dowolnym pliku KML?
— J86,


0

Jak wspomniano w większości innych postów, nie wygląda na to, że KML jest bezpośrednio obsługiwany w kontrolce Bja Maps Ajax v7. Jednak pomyślałem, że warto wspomnieć, że podobno jest obsługiwany w normalnym GUI map. W poniższym wpisie na blogu Bing opisuje, w jaki sposób można zaimportować KML do Bing Maps „Moje miejsca”:

Nie do końca to, czego szukało pytanie, ale potencjalnie przydatne w tego rodzaju sytuacji.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.