Bing Maps 7 prend-il en charge KML?

9

Je n'ai pas de chance de trouver des exemples. J'ai trouvé du code comme ça ci-dessous mais c'est pour les versions antérieures.

shapeLayer = new VEShapeLayer();
shapeSpec = new VEShapeSourceSpecification(VEDataType.ImportXML, layer.url, shapeLayer);
veMap.ImportShapeLayerData(shapeSpec);
ca0v
la source
Je ne pense pas que cet exemple représente kml. Cela ressemble à un fichier de forme esri à mon œil inexpérimenté. Cela dit, je suis sûr que vous pouvez faire un mashup entre bing et GE, mais lisez la licence pour les restrictions.
Brad Nesom
Rien à voir avec les fichiers de formes ESRI Brad. A partir de l'API doco - msdn.microsoft.com/en-us/library/bb412413.aspx Classe VEShapeLayer Contient des informations sur les couches de forme. Les couches de formes sont un mécanisme permettant de créer et de gérer des groupes de formes arbitraires (punaises, polylignes et polygones). Les couches de forme de carte peuvent être créées à partir de fichiers XML GeoRSS, de tuiles de carte personnalisées ou de toute collection publique Bing Maps ( maps.live.com ).
user2856

Réponses:

2

Comme mentionné ci-dessus, GeoRSS et KML ne sont pas pris en charge. Cependant, quelqu'un a écrit un interpréteur GeoRSS pour Bing Maps v7. Et puisque les fichiers KML et GeoRSS sont tous deux XML, vous pouvez donc facilement convertir entre les deux en utilisant XSL. Certaines recherches montrent que beaucoup de gens en ont parlé, mais je ne trouve aucun fichier XSL réel qui le fasse. Cependant, j'en ai trouvé un qui a fait le contraire, en convertissant GeoRSS en KML , ce qui devrait vous donner une bonne idée par où commencer si vous avez écrit le vôtre.

Si vous n'avez besoin de le faire qu'une seule fois, vous pouvez utiliser les deux sites Web suivants pour convertir KML en GeoRSS via CSV:

  1. Un convertisseur KML en CSV utilisant XSL.
  2. Une webapp CSV vers GeoRSS

Et une dernière option consiste simplement à écrire votre propre interprète KML, de la même manière que quelqu'un a écrit son propre interprète GeoRSS , par @Derek.

Patrick
la source
Je suis confus ... comment GeoRSS est-il pris en charge avec l'API bing maps? Il est assez difficile de dire que l'écriture de votre propre code d'analyse est considérée comme "prise en charge".
Derek Swingley
Désolé, il n'est pas pris en charge, mais le post auquel j'ai lié a un interprète pour utiliser GeoRSS dans Bing v7 avec jQuery. Je vais réécrire pour être plus clair.
Patrick
4

On dirait que la réponse est non. Je dis cela en fonction de la lecture de leurs documents SDK et de ce fil: à la recherche d'exemples KML ou GeoRSS dans Bing Maps Ajax Control v7 .

Si la prise en charge KML est cruciale, vous pouvez utiliser l'API ArcGIS d'Esri pour JavaScript car elle prend en charge les couches KML accessibles au public . Divulgation complète: je travaille chez Esri au sein de l'équipe API JavaScript.

Derek Swingley
la source
Curieux: je trouve la licence ESRI pour JSAPI difficile à lire. Quelqu'un peut-il utiliser le jsapi pour publier des cartes? Par exemple, pourrais-je utiliser JSAPI pour afficher des cartes bing et ne pas violer les licences ESRI? Idem pour google, OSM, ESRI Public Tiles? Ou est-il nécessaire que l'utilisateur soit un utilisateur d'ArcGIS Server? L'OL est ouvert mais JSAPI?
ca0v
1
@ user2023 Nous avons discuté des licences JSAPI en interne et nous sommes d'accord que l'histoire n'est pas claire. Nous travaillons à améliorer cela et prévoyons de mettre à jour plusieurs pages pour refléter une histoire de licence plus simple et plus facile à comprendre. Jusqu'à ce que les différentes pages soient mises à jour, l'histoire est la suivante: utilisez JSAPI pour des sites / applications internes, externes, non commerciaux et commerciaux gratuitement. Vous n'avez pas besoin de payer, sauf si vous commencez à stocker une grande quantité de données sur arcgis.com et à utiliser les services (géométrie, localisateur / géocodage et routage) sur arcgis.com.
Derek Swingley
2

Bing Maps 7.0 n'inclut pas de convertisseur KML. Mais comme il utilise des objets JavaScript pour afficher des données sur la carte (voir API Bing ), vous pouvez analyser manuellement le kml et le convertir en objets respectifs.

Dans cet exemple de code , j'utilise JavaScript pour convertir des données de polygone KML en nouveaux objets Microsoft.Maps.Polygon. J'utiliserais ensuite le code ci-dessous pour ajouter les polygones à ma carte 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);
Ryan fait
la source
Votre KML doit-il avoir une certaine forme? Ou cela fonctionnerait-il sur n'importe quel fichier KML?
J86
0

Comme la plupart des autres articles l'ont mentionné, il ne semble pas que KML soit directement pris en charge dans le contrôle Bing Maps Ajax v7. Cependant, j'ai pensé qu'il convient de mentionner qu'il est censé être pris en charge dans l'interface graphique normale des cartes. Dans le billet de blog Bing suivant, il décrit comment importer un KML dans Bing Maps "My Places":

Pas exactement ce que la question recherchait, mais potentiellement utile pour ce genre de situation.

Scott H
la source