7 votos

¿Cómo agregar datos KML pero de variable - no desde url?

Tengo un mapa de trabajo que recupera KML desde una dirección url, pero ahora necesito los datos KML de una variable local en lugar de otro. Hay ayuda para esto, y si es así cuál es la sintaxis. Búsquedas en la api y varios sitios pero no hay suerte para encontrar algo de esto. ¡Gracias!

[Anexo]

map = new OpenLayers.Map({
        div: "map",
        layers: [
            new OpenLayers.Layer.WMS(
                "WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0",
                {layers: "basic"}
            ),
            new OpenLayers.Layer.Vector("KML", {
                strategies: [new OpenLayers.Strategy.Fixed()],
                protocol: 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
    });

7voto

Vasu Puntos 11

OpenLayers.Formato.KML.leer()

Esto creará OpenLayers.La característica.Vector de Características de la KML cadena.

Es posible que necesite modificar la proyección de info para que se ajuste a sus necesidades:

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

A continuación, puedes hacer algo como:

myVectorLayer.addFeatures(GetFeaturesFromKMLString(myKMLString));

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X