2010-07-12 128 views
3

我想在我的Google地图上设置一个标记。我想我喜欢谷歌希望我这样做,但是这个标记不会显示在地图上。我究竟做错了什么?你可以在这里看到了实现的地图:http://nidarosnaprapati.no/wordpress/?page_id=66谷歌地图上的设置标记

<script type="text/javascript"> 
function initialize() { 
var latlng = new google.maps.LatLng(63.4242234, 10.4439311); 
var myOptions = { 
    zoom: 13, 
    center: latlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
map.addOverlay(new GMarker(63.4242234, 10.4439311)); 
} 
</script> 

回答

8

的问题是你混合谷歌地图V2代码与谷歌地图V3。 addOverlay功能和GMarker来自gogle地图v2。将它们替换为谷歌地图v3代码:

var marker = new google.maps.Marker({ 
    position: latlng, 
    map: map, 
    title:"Hello World!" 
}); 
+0

谢谢你让我知道这一点! – 2010-07-19 13:45:04

2

每个版本的实现都不同。 一个在全局命名空间使用G〜,另一个使用google.maps。〜命名空间。

我完全不喜欢新版本,因为有些对象可以用JSON构造,而有些则不能。例如。 LatLng和标记。

如果您不想使用标准的Google标记,添加标记的不同标记显示也会有所不同。

var marker = new google.maps.Marker({ 
    position: latlng, 
    map: map, 
    icon: new google.maps.MarkerImage(
     "maps/images/point.png", // reference from your base 
     new google.maps.Size(36, 36), // size of image to capture 
     new google.maps.Point(0, 0), // start reference point on image (upper left) 
     new google.maps.Point(10, 10), // point on image to center on latlng (scaled) 
     new google.maps.Size(20, 20) // actual size on map 
    ) 
}); 

破坏标记,只需设置:

marker.setMap(null); 
delete marker;