Подтвердить что ты не робот

Рисование пути с помощью строки в OpenLayers с использованием JavaScript

Я видел примеры, представленные здесь о том, как рисовать линию, но примеры показывают, как это сделать с помощью мыши, щелкнув.

Что я хочу сделать, это провести линию вручную с помощью JavaScript, учитывая список координат долготы и широты.

Причина, по которой я не могу работать с источником, указанным в ссылке выше, состоит в том, что они только вызывают activate в этой функции, а затем позволяют пользователю указывать и нажимать на карту.

Кто-нибудь когда-либо рисовал путь на карте OpenLayers программно?

То, что я хочу сделать, это именно это: http://openspace.ordnancesurvey.co.uk/openspace/example4.html, но без использования OpenSpace.

4b9b3361

Ответ 1

Вам понадобится LineString объект

Вот пример:

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]);

Предполагая, что map - ваш объект карты, а lon и lat - значения с плавающей запятой.

Ответ 3

Я никогда раньше этого не делал, но я знаю, что OpenSteetMap делает это. Например:

http://www.openstreetmap.org/?way=23649627

Не знаю, как сложно было бы работать через свой код.