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.