2014-10-09 64 views
0

我正在写下面的脚本来点击添加一个标记,地图加载正常,但是当我点击它时没有添加标记并且控制台中没有错误,任何人都有任何建议至于可能会发生什么?谷歌地图V3标记没有显示

function selectMapLocation() 
{ 
    var mapOptions = { 
     zoom: 8, 
     center: new google.maps.LatLng(37.7699298, -122.4469157) 
    }; 

    var map = new google.maps.Map(document.getElementById('map'), mapOptions); 

    google.maps.event.addListener(map, 'click', function(event){ 
     var marker = new google.maps.Marker({ 
      position: event.LatLng, 
      map: map 
     }); 
    }); 
} 

function loadSelectMapLocation() 
{ 
    var script = document.createElement('script'); 
    script.type = 'text/javascript'; 
    script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&callback=selectMapLocation'; 
    document.body.appendChild(script); 
} 
+0

为什么downvote,这是一个真正的问题,没有错误显示和代码与标记显示的异常运行!? – llanato 2014-10-09 13:07:01

+0

阅读文档,而不是使用一种“也许它有效” - 代码 – 2014-10-09 13:11:09

+0

@ Dr.Molle,我没有阅读文档,stackoverflow是最后的手段,我一直试图找出过去2个小时和对于所有密集的目的,代码在屏幕或控制台上显示时没有错误或警告。正如你所看到的那样,'LatLng'必须是'latLng',这是一个很小的错误,这是一个非常容易犯的错误,并且很容易被忽视。感谢下面有用的用户,我已经能够解决它。 – llanato 2014-10-09 13:13:42

回答

1

A google.maps.MarkerOptions object没有setMap属性。

地图|地图| StreetViewPanorama |要在其上显示标记的地图。

MouseClick event没有LatLng属性。它是latLng(javascript区分大小写)。

latLng | LatLng |事件发生时位于光标下方的纬度/经度。

function selectMapLocation() 
 
{ 
 
    var mapOptions = { 
 
     zoom: 8, 
 
     center: new google.maps.LatLng(37.7699298, -122.4469157) 
 
    }; 
 

 
    var map = new google.maps.Map(document.getElementById('map'), mapOptions); 
 

 
    google.maps.event.addListener(map, 'click', function(event){ 
 
     var marker = new google.maps.Marker({ 
 
      position: event.latLng, 
 
      map: map 
 
     }); 
 
    }); 
 
} 
 

 
function loadSelectMapLocation() 
 
{ 
 
    var script = document.createElement('script'); 
 
    script.type = 'text/javascript'; 
 
    script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&callback=selectMapLocation'; 
 
    document.body.appendChild(script); 
 
} 
 
loadSelectMapLocation();
<div id="map" style="width:750px; height:450px; border: 2px solid #3872ac;"></div>

0

您应该使用的对象,而不是建设的setMapmap财产。

EDIT:还LatLnglatLng,如在另一响应提及。

var marker = new google.maps.Marker({ 
    position: event.latLng, 
    map: map 
}); 
+0

没有区别,浏览器控制台中仍然没有标记显示,也没有任何显示。 – llanato 2014-10-09 13:05:07

+1

'event.latLng' – 2014-10-09 13:07:17

+0

@ Dr.Molle修复,谢谢 – 2014-10-09 14:11:56