简体   繁体   English

如何借助JavaScript中的数组对象在OpenStreetMap上绘制折线?

[英]How to draw polyline on OpenStreetMap with the help of array object in JavaScript?

I want to draw polyline on OpenStreetMap with the help of marker array object currently I am selected all marker(longitude, latitude) values from database and on that marker basis, I want to draw polyline for showing route of the particular user. 我想借助标记数组对象在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\]);

}]

1)Change array variable declaration create simple object of array 1)更改数组变量声明创建简单的数组对象
var points = new Array( new OpenLayers.Geometry.Point(data.lng, data.lat) ); var points = new Array(new OpenLayers.Geometry.Point(data.lng,data.lat)); to var points = new Array(); 到var points = new Array(); 2) Change in points.push(lonLat); 2)改变points.push(lonLat); to points.push(new OpenLayers.Geometry.Point(data.lng,data.lat)); 到points.push(new OpenLayers.Geometry.Point(data.lng,data.lat)); and pass write this line under marker for loop. 并将此行写在循环标记下。 3) Add one line extra line.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")); 3)添加一行额外的line.transform(new OpenLayers.Projection(“ EPSG:4326”),new OpenLayers.Projection(“ EPSG:900913”));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在 JavaScript 中围绕折线绘制多边形? - How to draw a polygon around a polyline in JavaScript? 如何在Google Maps JavaScript中按百分比值(例如30%)绘制折线? - How to draw polyline by percent value(like 30%) in google maps javascript? 如何绘制多种颜色的折线 - how to draw polyline of multiple colors 如何在多边形下方绘制折线? - How to draw a polyline below a polygon? 用 GPS 在 google map by Javascript 上绘制折线 - Draw polyline with GPS on google map by Javascript 无法在Google Maps v3上绘制折线,但可以将其点绘制为标记(我正在使用OpenStreetMap层) - can't draw a polyline on google maps v3, but can draw the points of it as markers (I am using OpenStreetMap layer) 如何绘制与SVG上给定图像数据完全相同的折线对象 - How to draw Polyline object shaped exactly same with the given image data on SVG 如何在jokia中使用lat long的json在诺基亚这里绘制折线 - How to draw polyline in nokia here map using json of lat long in javascript 通过Javascript ArcGIS Api绘制折线时如何获取特定区域的医院或街道名称? - How to get get name of hospital or street in particular area when draw polyline through Javascript ArcGIS Api? 如何在谷歌地图上绘制跟随街景小人路径的折线? - How to draw polyline on GoogleMap that follows path of the pegman?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM