【问题标题】:How to draw a polyline with many points in Google Maps ( and appear the polyine)?如何在谷歌地图中绘制多点折线(并出现折线)?
【发布时间】:2011-10-17 17:11:04
【问题描述】:

为什么当我想使用具有许多点(超过大约 7 个点)的 Google 地图 V3.0(JavaScript API)绘制折线时,尽管尝试绘制带有少量数字的折线,但折线却没有出现它出现的点数?

编辑:

代码

var polyOptions = {strokeColor: '#FF0000',strokeOpacity: 0.6,strokeWeight: 5}
var poly = new google.maps.Polyline(polyOptions);
var path = poly.getPath();
var bounds2 = new google.maps.LatLngBounds();

    for(var i=0;i<a.length;i++){
        var zz=a[i].split(",");
        bar lat=zz[0];
        var lng=zz[1];

        var point = new google.maps.LatLng(parseFloat(lng),parseFloat(lat));

        var icon = customIcons["dot"];
                createMarker(i,"test routing",point,icon,2);
            path.push(point);
            poly.setMap(map);
         }  

【问题讨论】:

  • 你应该在你的代码中交换 parseFloat(lng) 和 parseFloat(lat)。
  • 不不,这样没关系 :) 只是名字不对!
  • 我用 1000 个点的数组尝试了你的代码,它运行良好。您是否有可能看到某种内存消耗问题?我看到 Google Maps V3 API 出现间歇性问题,如果在加载地图时垃圾收集器运行,则(显然)标记或折线无法出现。不幸的是,我没有可靠地重现问题的代码。

标签: javascript google-maps-api-3 google-polyline


【解决方案1】:

你能分享一下不起作用的代码吗?

有时,即使在折线选项中添加折线图后,它也有助于设置折线图。尝试类似:

var mypolyline = new google.maps.Polyline({
                  map: map,
                  path: coords,
                  strokeColor: "#787878",
                  strokeOpacity: .6,
                  strokeWeight: 3,
                  clickable: false
                });

mypolyline.setMap(map);

【讨论】:

  • 您可能希望在第一行的末尾添加一个分号。然后,将变量“path”设为空数组,而不是获取“poly.getPath()”。 path = []; 也是如此,然后保持一切不变,并使用“path.push(point)”继续向该数组添加点。接下来,在你执行“poly.setMap(map)”之前,执行poly.setPath(path)。这应该有效。另外,当您创建一个新的 LatLng 坐标时,您是否故意将经度放在纬度之前?
猜你喜欢
  • 2016-05-14
  • 1970-01-01
  • 2018-03-06
  • 1970-01-01
  • 1970-01-01
  • 2017-05-13
  • 2013-07-02
  • 2023-04-06
  • 1970-01-01
相关资源
最近更新 更多