【问题标题】:Google map's polylines not displaying correctly谷歌地图折线显示不正确
【发布时间】:2014-03-09 02:36:23
【问题描述】:

我正在尝试将折线添加到地图中,但在调用时它们没有出现

这是我的一些代码:

var waypts = [];
var plyLine;
   function initialize() {

    plyLine = new google.maps.Polyline({
    path: waypts,
    geodesic: true,
    strokeColor: '#FF0000',
    strokeOpacity: 1.0,
    strokeWeight: 2
    });   
}

这个函数在 onclick 监听器中被调用

function setWaypts()
{
    waypts = [];
    plyLine.setMap(null);
    for (var i = 0; i < (poiArrayList.length); i++) {
            waypts.push(new google.maps.LatLng(poiArrayList[i].mark.getPosition().lat(), poiArrayList[i].mark.getPosition().lng()))             
        };  
    plyLine.setMap(map);
}

这是 log(mark.getPosition()) 打印出来的内容:

未捕获的错误:(51.88804094128838,-8.506078720092773)

如果我的代码有问题,任何人都可以停下来吗?

    function poi(id, name, description, mark, inv) {
        this.id = id;
        this.name = name;
        this.description = description;
        this.mark = mark;
        this.inv = inv;
    }
        var marker = new google.maps.Marker({
            position: location,
            draggable: false,
            map: map,
            id: markerId,
            icon: iconUrl
        });

【问题讨论】:

  • 什么是标记?似乎有比您在问题中输入的代码更多的代码。
  • 还有很多代码,但我尽量删减了

标签: javascript google-maps polyline


【解决方案1】:

这是不正确的:

new google.maps.LatLng(poiArrayList[i].mark.getPosition())

google.maps.LatLng 对象接受两个数字作为参数。最简单的解决方法是看起来 mark.getPosition() 已经是 google.maps.LatLng,就使用它。

或者像这样创建一个新的:

new google.maps.LatLng(poiArrayList[i].mark.getPosition().lat(), poiArrayList[i].mark.getPosition().lng())

【讨论】:

  • 好吧,它们似乎正在添加到 waypts 数组中,但折线仍未显示在地图上。
  • 您能否提供一个小提琴或指向显示该问题的地图的链接?
  • Uncaught ReferenceError: genRoute is not defined genRoute 是什么?
  • 我之前有方向服务,但我删除了它,这是一个我不再使用的旧功能。我不知道我做了什么,但它现在正在工作。感谢您的所有帮助!
  • 你能修复小提琴并删除无关代码吗?它应该如何工作?如何调用绘制折线的代码?我假设我需要点击一个按钮。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
  • 1970-01-01
  • 2013-04-28
  • 2015-12-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多