Рисование линий между маркерами в OpenLayers

map = new OpenLayers.Map("Map");
var maplin         = new OpenLayers.Layer.OSM();
map.addLayer(maplin);

var markers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(markers);
var vectorLayer = new OpenLayers.Layer.Vector("Overlay");
$.each(myVariable, function(i,myVariable){var feature = new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Point( myVariable.lon,myVariable.lati ).transform(fromProjection, toProjection),

{description:myVariable.description} ,
{externalGraphic: 'img/marker.png', graphicHeight: 25, graphicWidth: 21, graphicXOffset:-12, graphicYOffset:-25  }
);
vectorLayer.addFeatures(feature);

map.addLayer(vectorLayer);

map.setCenter(feature, zoom);

});

это код, который я использовал для отображения местоположений на моей карте, я использовал ajax, чтобы получить местоположения из базы данных
но теперь я хочу рисовать линии между этими местами

-2

Решение

НОТА: Ваш код предлагает карту openlayer и на основании этого я приведу пример кода ниже.

Вот пример:

var lineLayer = new OpenLayers.Layer.Vector("Line Layer");

map.addLayer(lineLayer);
map.addControl(new OpenLayers.Control.DrawFeature(lineLayer, OpenLayers.Handler.Path));
var points = new Array(
new OpenLayers.Geometry.Point(lon1, lat1),
new OpenLayers.Geometry.Point(lon2, lat2)
);

var line = new OpenLayers.Geometry.LineString(points);

var style = {
strokeColor: '#0000ff',
strokeOpacity: 0.5,
strokeWidth: 5
};

var lineFeature = new OpenLayers.Feature.Vector(line, null, style);
lineLayer.addFeatures([lineFeature]);

Здесь карта является вашим объектом карты и долгота а также Lat являются значениями с плавающей точкой.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]