Suite

Comment ajouter des données KML mais à partir d'une variable - pas d'une URL ?


J'ai une carte de travail qui récupère le KML à partir d'une URL, mais je dois maintenant obtenir les données KML à partir d'une variable locale à la place. Existe-t-il un support pour cela, et si oui quelle est la syntaxe. J'ai cherché sur l'API et sur divers sites, mais aucune chance de trouver quoi que ce soit à ce sujet. Merci!

[Addenda]

map = new OpenLayers.Map({ div: "map", couches: [ new OpenLayers.Layer.WMS( "WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: " basic"} ), new OpenLayers.Layer.Vector("KML", { stratégies : [new OpenLayers.Strategy.Fixed()], protocole : new OpenLayers.Protocol.HTTP({ url : "kml_large.kml", format : new OpenLayers.Format.KML({ extractStyles : true, extractAttributes : true, maxDepth : 2 }) }) }) ], center : new OpenLayers.LonLat(-81, 28), zoom : 7 });

OpenLayers.Format.KML.read()

Cela créera des fonctionnalités OpenLayers.Feature.Vector à partir de la chaîne KML.

Vous devrez peut-être modifier les informations de projection pour répondre à vos besoins :

function GetFeaturesFromKMLString (strKML) { var format = new OpenLayers.Format.KML({ 'internalProjection': myMapObject.baseLayer.projection, 'externalProjection': new OpenLayers.Projection("EPSG:4326") }); return format.read(strKML); } ;

Ensuite, vous pouvez faire quelque chose comme :

myVectorLayer.addFeatures(GetFeaturesFromKMLString(myKMLString));