2012-12-26 29 views
0

通过调用我的函数drawGmapLine()我的浏览器说“line.setMap不是函数”。 我的地图创建没有任何问题。你能看到问题吗?js函数在gmap上折线

function drawGmapLine(id) { 
    var map = $("#map"); 

    var pfad = [ 
      new google.maps.LatLng(37.772323, -122.214897), 
      new google.maps.LatLng(21.291982, -157.821856), 
      new google.maps.LatLng(-18.142599, 178.431), 
      new google.maps.LatLng(-27.46758, 153.027892) 
     ]; 

     var line = new google.maps.Polyline({ 
      path: pfad, 
      strokeColor: '#FF0000', 
      strokeOpacity: 1.0, 
      strokeWeight: 2 
     }); 

     line.setMap(map); 
} 
+0

你在'var map = $ gmap;新......“完全是束缚的;这可能是你的问题。 – Mathletics

+0

但没有这条线我有同样的问题。在这种情况下,我设置了line.setMap($ gmap); – Thomas1703

+0

您确定您正确地复制了代码吗? – Mathletics

回答

1

您使用的插件(jQuery GMap)使用Maps V2。上面的代码是使用Maps V3编写的。您需要找到更新的插件,或者直接使用Maps V3 API才能使new google.maps.Polyline()通话起作用。

+0

你是对的。有一个复制错误。但代码也没有这样工作...我纠正了我的帖子中的代码。 – Thomas1703

0

这不是获取对google.maps.Map对象的引用的正确方法。

var map = $("#map"); 

所以这是行不通的:

line.setMap(map); 

通常的解决办法是参考保持从当你构造它的地图。

var map = new google.maps.Map(...); 
+0

但是我已经有了一张我想放置多段线的地图。你的代码将创建一个新的地图/参考。 – Thomas1703

+0

我正在提出一个建议,保留对现有地图的引用,而不是创建一个新地图。您没有包含任何用于在问题中创建地图的代码,因此我无法引用该代码。如果你想要一个完整的解决方案,发布一个链接,一个jsfiddle或完整的代码来重现这个问题。 – geocodezip