在谷歌地图上设置标记

时间:2010-07-12 14:52:34

标签: javascript google-maps

我正在尝试在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>

2 个答案:

答案 0 :(得分:8)

问题是你将谷歌地图v2代码与谷歌地图v3混合。 addOverlay函数和GMarker来自gogle maps v2。用google maps v3代码替换它们:

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

答案 1 :(得分:2)

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

我完全不喜欢新版本,因为某些对象可以使用JSON构建,而其他对象则不能。例如。 LatLng和Marker。

如果您不想使用标准的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;