2010-07-12 170 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;