Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何借助JavaScript中的数组对象在OpenStreetMap上绘制多段线?_Javascript_Jquery - Fatal编程技术网

如何借助JavaScript中的数组对象在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

我想借助marker array object在OpenStreetMap上绘制多段线 目前,我从数据库中选择了所有标记(经度、纬度)值,并在此标记的基础上,绘制多段线以显示特定用户的路线

[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”)