Рисование пути с линией в OpenLayers с использованием JavaScript - PullRequest
31 голосов
/ 29 апреля 2010

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

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

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

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

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

Ответы [ 3 ]

53 голосов
/ 29 апреля 2010

Вам необходимо использовать объект 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 являются значениями с плавающей точкой.

1 голос
/ 15 февраля 2013

эта страница является классическим примером анимации через javascript с использованием openlayers.

он использует стратегию фильтрации, чтобы определить, что показывать в какой момент времени.

полный доступный JavaScript.

0 голосов
/ 29 апреля 2010

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

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

Понятия не имею, насколько сложно будет работать с их кодом.

...