2014-02-17 151 views
-1

我正在使用Google Maps API v = 3(使用v = 2,同样的问题)。我曾尝试过最新的Chrome,最新的Firefox,最新的IE11。我可以显示地图并平移到新的中心,但我无法获得标记显示。以下是脚本标题:Google地图不会显示标记

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js" 
    type="text/javascript"> 
</script> 
<!-- Load Google Maps Javascript API --> 
<script src="http://maps.google.com/maps?file=api&v=3" 
    type="text/javascript"> 
</script> 

而当用户在表格中的特定位置单击时,将调用以下函数。页面上有一张地图,地图会移动到新位置,但标记从不出现。

function setMapCenter(map, latitude, longitude) 
{ 
    var center = new google.maps.LatLng(latitude, longitude); 
    map.panTo(center); 
    var marker = new google.maps.Marker({position: center,map: map,title: 'HERE'}); 
} 

有没有人在这里看到问题?谢谢。

我做了一个非常简单的页面,展示了这个问题。加载页面,点击任何纬度经度的链接,并看到地图平移到新的位置 - 但没有标记显示。这里是:http://www.glenn-nelson.us/marker.html

+0

有没有错误?你是否正确传递了'map','lat'和'lng'? – Andy

+0

当'map.panTo(center)'在那里工作不应该有任何问题,你可以给我们一个问题的演示或更多的代码? –

+0

发布的代码中没有任何内容可以解释问题,需要更多的上下文,您是否可以提供重现问题的完整示例?或者,您能否提供一个jsfiddle或链接到您的地图,以显示问题?您可能需要查看文档并更新您的API脚本,您所使用的方式已过时,但应该可以工作。 – geocodezip

回答

0

该解决方案既是一个更新的Google Maps API规范,也是一个用于初始地图​​创建的不同语法。我的示例链接已更新以显示工作版本。

GOOD:

<script src="http://maps.google.com/maps/api/js?sensor=false" 
     type="text/javascript"> 
</script> 

function initialize() { 
    var center = new google.maps.LatLng(37.3000, -122.0000); 
    mymap = new google.maps.Map(document.getElementById("map_div"), 
       {zoom: 11, 
        center: center, 
        mapTypeId: google.maps.MapTypeId.ROADMAP 
       }); 
    marker = new google.maps.Marker({position: center,map: mymap,title: 'HERE'}); 
} 

这里的BAD代码我开始与:

<script src="http://maps.google.com/maps?file=api&v=3" 
    type="text/javascript"> 
</script> 

function initialize() { 
    var center = new google.maps.LatLng(37.3000, -122.0000); 
    mymap = new google.maps.Map(document.getElementById("map_div")); 
    mymap.setCenter(center, 11); 
    map.addControl(new GSmallMapControl()); 
    map.addControl(new GMapTypeControl()); 
    marker = new google.maps.Marker({position: center,map: mymap,title: 'HERE'}); 
} 

虽然这可能会产生一个图,并呼吁以map.setCenter()或map.panTo()会工作,它无法显示任何标记。此外,当我将API脚本更改为新格式“http://maps.google.com/maps/api/js?sensor=false”时,我的地图DIV变得灰暗。而使用旧的初始化函数的新的API脚本格式也给了我灰色。

因此,具有较旧地图构造的旧API指定是可以的,但标记根本不显示。 带有新地图构造的新API名称也允许我查看标记。