¿Bing Maps 7 es compatible con KML?


9

No tengo suerte para encontrar ejemplos. He encontrado un código como este a continuación, pero esto es para versiones anteriores.

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

No creo que este ejemplo represente kml. Esto parece esri shapefile para mi ojo inexperto. Dicho esto, estoy seguro de que podría hacer un mashup entre Bing y GE, pero lea la licencia para conocer las restricciones.
Brad Nesom

Nada que ver con los archivos de forma ESRI Brad. Desde el API doco: msdn.microsoft.com/en-us/library/bb412413.aspx Clase VEShapeLayer Contiene información sobre capas de formas. Las capas de formas son un mecanismo para crear y administrar grupos arbitrarios de formas (chinchetas, polilíneas y polígonos). Las capas de forma de mapa se pueden crear a partir de archivos XML de GeoRSS, mosaicos de mapas personalizados o de cualquier colección pública de Bing Maps ( maps.live.com ).
usuario2856

Respuestas:


2

Como se mencionó anteriormente, GeoRSS y KML no son compatibles. Sin embargo, alguien ha escrito un intérprete GeoRSS para Bing Maps v7. Y dado que los archivos KML y los archivos GeoRSS son XML, puede convertirlos fácilmente entre ambos usando XSL. Algunas cazas muestran que muchas personas han hablado al respecto, pero no puedo encontrar ningún archivo XSL real que lo haga. Sin embargo, encontré uno que hizo lo contrario, convirtiendo GeoRSS a KML , lo que debería darle una buena idea de dónde comenzar si escribió el suyo.

Si solo necesita hacer esto una vez, puede usar los siguientes dos sitios web para convertir KML a GeoRSS a través de CSV:

  1. Un convertidor de KML a CSV usando XSL.
  2. Una aplicación web de CSV a GeoRSS

Y una opción final es simplemente escribir su propio intérprete KML, de la misma manera que alguien escribió su propio intérprete GeoRSS , según @Derek.


Estoy confundido ... ¿cómo se admite GeoRSS con la API de mapas de Bing? Es bastante difícil decir que escribir su propio código de análisis cuenta como "compatible".
Derek Swingley

Lo sentimos, no es compatible, pero la publicación a la que me vinculé tiene un intérprete para usar GeoRSS en Bing v7 con jQuery. Reescribiré para ser más claro.
Patrick

4

Parece que la respuesta es no. Lo digo basándose en mirar sus documentos SDK y este hilo: Buscando KML o GeoRSS Ejemplo en Bing Maps Ajax Control v7 .

Si el soporte de KML es crucial, puede usar la API ArcGIS de Esri para JavaScript, ya que tiene soporte para capas KML de acceso público . Divulgación completa: trabajo en Esri en el equipo de API de JavaScript.


Curioso: la licencia de ESRI para JSAPI me resulta difícil de leer. ¿Alguien puede usar jsapi para publicar mapas? Por ejemplo, ¿podría usar JSAPI para mostrar mapas de Bing y no infringir ninguna licencia de ESRI? ¿Lo mismo para google, OSM, ESRI Public Tiles? ¿O es necesario que el usuario sea un usuario de ArcGIS Server? OL está abierto pero es JSAPI?
ca0v

1
@ user2023 Hemos estado discutiendo las licencias de JSAPI internamente y estamos de acuerdo en que la historia no está clara. Estamos trabajando para mejorar esto y planeamos actualizar varias páginas para reflejar una historia de licencias más simple y fácil de entender. Hasta que tengamos varias páginas actualizadas, la historia es la siguiente: use el JSAPI para sitios / aplicaciones internos, externos, no comerciales y comerciales de forma gratuita. No necesita pagar a menos que comience a almacenar una gran cantidad de datos en arcgis.com y a usar los servicios (geometría, localizador / geocodificación y enrutamiento) en arcgis.com.
Derek Swingley

2

Bing Maps 7.0 no incluye un convertidor KML. Pero debido a que utiliza objetos JavaScript para mostrar datos en el mapa (ver API de Bing ), puede analizar manualmente el kml y convertirlo en los objetos respectivos.

En este ejemplo de código , uso JavaScript para convertir datos de polígonos KML en nuevos objetos Microsoft.Maps.Polygon. Luego usaría el siguiente código para agregar los polígonos a mi mapa de 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);

¿Su KML tiene que estar en cierta forma? ¿O esto funcionaría en cualquier archivo KML?
J86


0

Como la mayoría de las otras publicaciones han mencionado, no parece que KML sea directamente compatible con el control v7 de Bing Maps Ajax. Sin embargo, pensé que vale la pena mencionar que supuestamente es compatible con la GUI de los mapas normales. En la siguiente publicación de blog de Bing, se describe cómo se puede importar un KML en Bing Maps "Mis lugares":

No es exactamente lo que buscaba la pregunta, pero es potencialmente útil para ese tipo de situación.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.