如何借助JavaScript中的数组对象在OpenStreetMap上绘制多段线?
我想借助marker array object在OpenStreetMap上绘制多段线 目前,我从数据库中选择了所有标记(经度、纬度)值,并在此标记的基础上,绘制多段线以显示特定用户的路线如何借助JavaScript中的数组对象在OpenStreetMap上绘制多段线?,javascript,jquery,Javascript,Jquery,我想借助marker array object在OpenStreetMap上绘制多段线 目前,我从数据库中选择了所有标记(经度、纬度)值,并在此标记的基础上,绘制多段线以显示特定用户的路线 [window.onload = function GetOSMMap() { map = new OpenLayers.Map("dvMap"); var mapnik = new OpenLayers.Layer.OSM(); var fromProjection = new Op
[window.onload = function GetOSMMap() {
map = new OpenLayers.Map("dvMap");
var mapnik = new OpenLayers.Layer.OSM();
var fromProjection = new OpenLayers.Projection("EPSG:4326"); // Transform from WGS 1984
var toProjection = new OpenLayers.Projection("EPSG:900913"); // to Spherical Mercator Projection
var zoom = 15;
map.addLayer(mapnik);
var marker = new OpenLayers.Layer.Markers("Markers");
for (i = 0; i < markers.length; i++) {
var data = markers\[i\]
var lonLat = new OpenLayers.LonLat(data.lng, data.lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
map.addLayer(marker);
marker.addMarker(new OpenLayers.Marker(lonLat));
map.setCenter(lonLat, zoom);
}
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(data.lng, data.lat)
);
points.push(lonLat);
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\]);
}]
[window.onload=函数GetOSMMap(){
map=新的OpenLayers.map(“dvMap”);
var mapnik=new OpenLayers.Layer.OSM();
var fromProjection=newopenlayers.Projection(“EPSG:4326”);//从WGS 1984转换
var toProjection=new OpenLayers.Projection(“EPSG:900913”);//到球形墨卡托投影
var=15;
map.addLayer(mapnik);
var marker=新的OpenLayers.Layer.Markers(“Markers”);
对于(i=0;i
1)更改数组变量声明创建数组的简单对象变量点=新数组( 新OpenLayers.Geometry.Point(data.lng,data.lat) ); 到 var points=新数组(); 2) 点的变化。推(lonLat);到 push(新的OpenLayers.Geometry.Point(data.lng,data.lat));并通过将这行写在循环标记下。 3) 多加一行 line.transform(新OpenLayers.Projection(“EPSG:4326”)、新OpenLayers.Projection(“EPSG:900913”)