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