2012-03-19 37 views
11

Tengo dos puntos que tienen lolLat como 0,10 y 30,0línea Draw entre dos puntos usando OpenLayers

Ahora dibujar un marcador en este punto i utilizar esta transformada mientras que la generación de marcador para que

lonLat.transform(
       new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984 
       map.getProjectionObject() // to Spherical Mercator Projection 
      ) 

¿Cómo puedo trazar la línea entre ellos? ¿Hay alguna manera de hacerlo en capas abiertas, he intentado hacerlo con cadenas de líneas en la capa vectorial, pero parece que no funciona para mí.

+0

¿Mi respuesta funciona para ti tu? – drnextgis

Respuesta

17

Por ejemplo:

map = new OpenLayers.Map(); 

var start_point = new OpenLayers.Geometry.Point(0,10); 
var end_point = new OpenLayers.Geometry.Point(30,0); 

var vector = new OpenLayers.Layer.Vector(); 
vector.addFeatures([new OpenLayers.Feature.Vector(new OpenLayers.Geometry.LineString([start_point, end_point]))]); 
map.addLayers([vector]); 

Live demo

+0

por alguna razón en el violín la fuente ol se ha ido – talsibony

+1

http://jsfiddle.net/Pkcaf/980/ Lo he actualizado – talsibony

+0

¿Puedes verlo de nuevo? Se ve en blanco. –

13

En OpenLayers versión 3.3, puede hacer esto como

var points = [ [-89.8802, 32.5804], [-95.04286, 46.9235] ]; 

for (var i = 0; i < points.length; i++) { 
    points[i] = ol.proj.transform(points[i], 'EPSG:4326', 'EPSG:3857'); 
} 

var featureLine = new ol.Feature({ 
    geometry: new ol.geom.LineString(points) 
}); 

var vectorLine = new ol.source.Vector({}); 
vectorLine.addFeature(featureLine); 

var vectorLineLayer = new ol.layer.Vector({ 
    source: vectorLine, 
    style: new ol.style.Style({ 
     fill: new ol.style.Fill({ color: '#00FF00', weight: 4 }), 
     stroke: new ol.style.Stroke({ color: '#00FF00', width: 2 }) 
    }) 
}); 

a continuación, añadir capas al mapa

map.addLayer(vectorLineLayer); 
+0

puede confirmar que esto está funcionando. Gracias. Usando Leaflet, solo necesitarías 'L.polyline (array) .addTo (map)'. Cómo pueden estos chicos hacer una función básica tan complicada que me supera – Blauhirn

Cuestiones relacionadas