Я видел примеры, представленные здесь того, как чертить линию, но примеры только показывают, как сделать это с мышью путем нажатия.
То, что я хочу сделать, разграничивают вручную использование JavaScript, учитывая список координат Долготы и Широты.
Причина я не могу работать над источником, обеспеченным в ссылке выше, состоит в том, потому что они только звонят activate
на функции, и затем позволяют пользователю навести и кликнуть на карте.
Кто-либо имеет, когда-нибудь тянул путь на карте OpenLayers программно?
То, что я хочу сделать, является точно этим: http://openspace.ordnancesurvey.co.uk/openspace/example4.html, но не используя OpenSpace.
Вам нужно будет использовать объект 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
- значения с плавающей запятой.
Я никогда раньше этого не делал, но знаю, что OpenSteetMap это делает. Например:
http://www.openstreetmap.org/?way=23649627
Не знаю, насколько сложно будет работать с их кодом.