标记不会在谷歌地图上显示

时间:2012-09-10 23:10:22

标签: javascript maps

我能够在地图上放置标记,但由于我使用GMap2,我不能再在地图上放置标记了。我想使用GMap2,所以我可以将lat lng从地址中删除。

<script src="https://maps.googleapis.com/maps/api/js?sensor=true"></script>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=AIzaSyDrwris-0kRdY16oIQoGc_1qsdOgHbJrXo"
  type="text/javascript"></script>

<script type="text/javascript">
    var map = new GMap2(document.getElementById("chart"));
    map.setUIToDefault();

   navigator.geolocation.getCurrentPosition(function(position) {
   var pos = new google.maps.LatLng(position.coords.latitude,
                                         position.coords.longitude);
   map.setCenter(pos, 14);

   //until now it works fine, but when I add a marker it does nothing

 var marker = new GMarker({
    position: new GLatLng(52.15664,5.40567),
    map: map,
    title: 'NAME'
 });

1 个答案:

答案 0 :(得分:0)

这里有一些问题。

首先,您要包含两个版本的映射API,其中一个版本由于某种原因而转义了参数。这可能是因为它是从其他地方复制的。如果您需要V2 API,则只需包含该API。请注意,该API将于明年退休。

此外,您的标记实例化代码不正确。您应该将latlng位置作为第一个参数传递,然后将选项作为对象文字格式的第二个参数传递,例如:

var marker = new GMarker(new GLatLng(<coord>, <coord>), { title:"My Title" });

最后,您没有将标记本身添加到地图中。您可以使用addOverlay方法来实现此目的。

这是一个有效的解决方案。按“添加标记”按钮将随机位置的标记添加到地图中:

<html>
<head><title>Map Test</title>
<script src="http://maps.google.com/maps?file=api&v=2&sensor=true" type="text/javascript"></script>

<script type="text/javascript"> 
var map;
function initmap() {
    map = new GMap2(document.getElementById("chart")); 
    map.setUIToDefault(); 

    navigator.geolocation.getCurrentPosition(function(position) { 
        var pos = new google.maps.LatLng(position.coords.latitude, 
                                         position.coords.longitude); 
        map.setCenter(pos, 14); 
    });
}

function AddMarker() {
    var bounds = map.getBounds();
    var southWest = bounds.getSouthWest();
    var northEast = bounds.getNorthEast();
    var lngSpan = northEast.lng() - southWest.lng();
    var latSpan = northEast.lat() - southWest.lat();
    var point = new GLatLng(southWest.lat() + latSpan * Math.random(), 
                            southWest.lng() + lngSpan * Math.random());
    map.addOverlay(new GMarker(point, { title:"My Marker" }));
}

</script>
</head>
<body onload="initmap()">
    <div style="width:300px;height:300px" id="chart"></div>
    <input type="button" onclick="AddMarker();" value="Add Marker"></input>
</body>
</html>

请注意,上述假设地理定位有效。在实际应用程序中,您应该测试错误,如此处的API文档所示:

https://developers.google.com/maps/articles/geolocation