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