Unterstützt Bing Maps 7 KML?


9

Ich habe kein Glück, Beispiele zu finden. Ich habe unten Code wie diesen gefunden, aber dies ist für frühere Versionen.

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

Ich glaube nicht, dass dieses Beispiel kml darstellt. Für mein ungeübtes Auge sieht das wie ein Esri-Shapefile aus. Das heißt, ich bin sicher, Sie könnten ein Mashup zwischen Bing und GE machen, aber lesen Sie die Lizenz für Einschränkungen.
Brad Nesom

Nichts mit ESRI-Shapefiles Brad zu tun. Über die API doco - msdn.microsoft.com/en-us/library/bb412413.aspx VEShapeLayer-Klasse Enthält Informationen zu Formebenen. Formebenen sind ein Mechanismus zum Erstellen und Verwalten beliebiger Gruppen von Formen (Pushpines, Polylinien und Polygone). Kartenformebenen können aus GeoRSS-XML-Dateien, benutzerdefinierten Kartenkacheln oder aus einer beliebigen öffentlichen Bing Maps- Sammlung ( maps.live.com ) erstellt werden.
user2856

Antworten:


2

Wie oben erwähnt, werden GeoRSS und KML nicht unterstützt. Jemand hat jedoch einen GeoRSS-Interpreter für Bing Maps v7 geschrieben. Und da sowohl KML-Dateien als auch GeoRSS-Dateien XML sind, können Sie mit XSL problemlos zwischen beiden konvertieren. Einige Jagdshows zeigen, dass viele Leute darüber gesprochen haben, aber ich kann keine tatsächliche XSL-Datei finden, die dies tut. Ich habe jedoch eine gefunden, die das Gegenteil bewirkt hat und GeoRSS in KML konvertiert hat , was Ihnen eine gute Vorstellung davon geben sollte, wo Sie anfangen sollen, wenn Sie Ihre eigenen geschrieben haben.

Wenn Sie dies nur einmal tun müssen, können Sie die folgenden zwei Websites verwenden, um KML über CSV in GeoRSS zu konvertieren:

  1. Ein KML-CSV-Konverter mit XSL.
  2. Eine CSV to GeoRSS-Webanwendung

Und eine letzte Option ist einfach, Ihren eigenen KML-Interpreter zu schreiben, genauso wie jemand seinen eigenen GeoRSS-Interpreter per @Derek geschrieben hat.


Ich bin verwirrt ... wie wird GeoRSS mit der Bing Maps API unterstützt? Es ist ziemlich schwierig zu sagen, dass das Schreiben eines eigenen Parsing-Codes als "unterstützt" gilt.
Derek Swingley

Es wird leider nicht unterstützt, aber der Beitrag, auf den ich verlinkt habe, enthält einen Interpreter für die Verwendung von GeoRSS in Bing v7 mit jQuery. Ich werde umschreiben, um klarer zu sein.
Patrick

4

Sieht aus wie die Antwort ist nein. Ich sage dies basierend auf dem Betrachten der SDK-Dokumente und dieses Threads: Suchen nach KML- oder GeoRSS-Beispielen in Bing Maps Ajax Control v7 .

Wenn die KML-Unterstützung von entscheidender Bedeutung ist, können Sie die ArcGIS-API von Esri für JavaScript verwenden, da sie öffentlich zugängliche KML-Ebenen unterstützt . Vollständige Offenlegung: Ich arbeite bei Esri im JavaScript-API-Team.


Neugierig: Ich finde die ESRI-Lizenz für JSAPI schwer zu lesen. Kann jemand das jsapi verwenden, um Karten zu veröffentlichen? Könnte ich beispielsweise die JSAPI verwenden, um Bing-Maps anzuzeigen und keine ESRI-Lizenzen zu verletzen? Gleiches gilt für Google, OSM, ESRI Public Tiles? Oder muss der Benutzer ein ArcGIS Server-Benutzer sein? OL ist offen, aber ist JSAPI?
Ca0v

1
@ user2023 Wir haben die JSAPI-Lizenzierung intern diskutiert und sind uns einig, dass die Geschichte nicht klar ist. Wir arbeiten daran, dies zu verbessern, und planen, mehrere Seiten zu aktualisieren, um eine einfachere und verständlichere Lizenzierungsgeschichte widerzuspiegeln. Bis wir die verschiedenen Seiten aktualisiert haben, lautet die Geschichte wie folgt: Verwenden Sie die JSAPI für interne, externe, nichtkommerzielle und kommerzielle Websites / Apps kostenlos. Sie müssen erst bezahlen, wenn Sie eine große Datenmenge in arcgis.com speichern und die Dienste (Geometrie, Locator / Geocodierung und Routing) auf arcgis.com nutzen.
Derek Swingley

2

Bing Maps 7.0 enthält keinen KML-Konverter. Da jedoch JavaScript-Objekte zum Anzeigen von Daten auf der Karte verwendet werden (siehe Bing-API ), können Sie die kml manuell analysieren und in die entsprechenden Objekte konvertieren.

In diesem Codebeispiel verwende ich JavaScript, um KML-Polygondaten in neue Microsoft.Maps.Polygon-Objekte zu konvertieren. Ich würde dann den folgenden Code verwenden, um die Polygone zu meiner Bing-Karte hinzuzufügen.

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

Muss Ihre KML in einer bestimmten Form sein? Oder würde dies bei jeder KML-Datei funktionieren?
J86


0

Wie die meisten anderen Beiträge bereits erwähnt haben, sieht es nicht so aus, als würde KML direkt in Bing Maps Ajax Control v7 unterstützt. Ich fand es jedoch erwähnenswert, dass es angeblich in der normalen Karten-GUI unterstützt wird. Im folgenden Bing-Blogbeitrag wird beschrieben, wie eine KML in Bing Maps "My Places" importiert werden kann:

Nicht genau das, wonach die Frage suchte, aber möglicherweise nützlich für diese Art von Situation.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.