Bing Maps 7 supporta KML?


9

Non ho fortuna a trovare esempi. Di seguito ho trovato un codice simile, ma questo è per le versioni precedenti.

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

Non credo che questo esempio rappresenti kml. Questo sembra esri shapefile al mio occhio non allenato. Detto questo, sono sicuro che potresti fare un mashup tra Bing e GE, ma leggi la licenza per le restrizioni.
Brad Nesom,

Niente a che vedere con gli shapefile ESRI Brad. Dal doco API - msdn.microsoft.com/en-us/library/bb412413.aspx VEShapeLayer classe contiene informazioni sui livelli forma. I layer di forme sono un meccanismo per creare e gestire gruppi arbitrari di forme (simboli, polilinee e poligoni). I layer della forma della mappa possono essere creati da file GeoRSS XML, riquadri di mappe personalizzati o da qualsiasi raccolta pubblica di Bing Maps ( maps.live.com ).
user2856

Risposte:


2

Come accennato in precedenza, GeoRSS e KML non sono supportati. Tuttavia, qualcuno ha scritto un interprete GeoRSS per Bing Maps v7. E poiché i file KML e GeoRSS sono entrambi XML, puoi facilmente convertirli tra i due usando XSL. Alcune ricerche di caccia mostrano che molte persone ne hanno parlato, ma non riesco a trovare alcun file XSL reale che lo faccia. Tuttavia, ho trovato il contrario, convertendo GeoRSS in KML , il che dovrebbe darti una buona idea di dove iniziare se hai scritto il tuo.

Se è necessario eseguire questa operazione una sola volta, è possibile utilizzare i seguenti due siti Web per convertire KML in GeoRSS tramite CSV:

  1. Un convertitore da KML a CSV che utilizza XSL.
  2. Una webapp da CSV a GeoRSS

E un'ultima opzione è semplicemente quella di scrivere il proprio interprete KML, allo stesso modo in cui qualcuno ha scritto il proprio interprete GeoRSS , per @Derek.


Sono confuso ... come è supportato GeoRSS con l'API di bing maps? È piuttosto complicato dire che scrivere il proprio codice di analisi viene considerato "supportato".
Derek Swingley,

Siamo spiacenti, non è supportato, ma il post a cui ho collegato ha un interprete per l'utilizzo di GeoRSS in Bing v7 con jQuery. Riscriverò per essere più chiaro.
Patrick,

4

Sembra che la risposta sia no. Sto dicendo questo basato sull'esame dei loro documenti SDK e su questo thread: Ricerca di esempi KML o GeoRSS in Ajax Control v7 di Bing Maps .

Se il supporto KML è fondamentale, è possibile utilizzare l'API ArcGIS di Esri per JavaScript in quanto ha il supporto per i livelli KML accessibili al pubblico . Informativa completa: lavoro ad Esri nel team API JavaScript.


Curioso: trovo difficile leggere la licenza ESRI per JSAPI. Qualcuno può usare jsapi per pubblicare mappe? Ad esempio, è possibile utilizzare JSAPI per visualizzare mappe bing e non violare alcuna licenza ESRI? Lo stesso vale per le piastrelle pubbliche di Google, OSM, ESRI? O è necessario che l'utente sia un utente ArcGIS Server? OL è aperto ma JSAPI è?
circa

1
@ user2023 Abbiamo discusso internamente delle licenze JSAPI e concordiamo che la storia non è chiara. Stiamo lavorando per migliorarlo e prevediamo di aggiornare diverse pagine per riflettere una storia di licenze più semplice e più comprensibile. Fino a quando non avremo aggiornato le varie pagine, la storia è questa: utilizzare JSAPI per siti / app interni, esterni, non commerciali e commerciali gratuitamente. Non è necessario pagare a meno che non si inizi a memorizzare una grande quantità di dati in arcgis.com e utilizzare i servizi (geometria, localizzatore / geocodifica e routing) su arcgis.com.
Derek Swingley,

2

Bing Maps 7.0 non include un convertitore KML. Ma poiché utilizza oggetti JavaScript per visualizzare i dati sulla mappa (vedi API Bing ), puoi analizzare manualmente il kml e convertirlo nei rispettivi oggetti.

In questo esempio di codice , utilizzo JavaScript per convertire i dati poligonali KML in nuovi oggetti Microsoft.Maps.Polygon. Vorrei quindi utilizzare il codice seguente per aggiungere i poligoni alla mia mappa 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);

Il tuo KML deve avere una certa forma? O funzionerebbe su qualsiasi file KML?
J86,


0

Come molti altri post hanno menzionato, non sembra che KML sia direttamente supportato nel controllo Ajax di Bing Maps v7. Tuttavia, ho pensato che valga la pena ricordare che è presumibilmente supportato nella normale GUI delle mappe. Nel seguente post sul blog di Bing, viene descritto come importare un KML in "I miei luoghi" di Bing Maps:

Non esattamente quello che la domanda stava cercando, ma potenzialmente utile per quel tipo di situazione.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.