2014-01-08 97 views
19

我有一个网站,通过谷歌地图,街道和地方加载3个单独的“视图”的位置。google.maps.places is undefined

请参阅下面我的代码:

我终于得到了地图和街景能正常工作,但我挣扎了一下这一个。

我有一个标签,显示与地图相同但添加了地点。

<script type="text/javascript" 
    src="http://maps.googleapis.com/maps/api/js?v=3&key=....&sensor=false&callback=initializeMap"></script> 

<script type="text/javascript"> 
var myLattitude = <?php echo $data["lattitude"]; ?>; 
var myLongitude = <?php echo $data["longitude"]; ?>; 
var poiMap; 
var infowindow; 

function initializePoi() { 
      var poiCentre = new google.maps.LatLng(myLattitude, myLongitude); 

      poiMap = new google.maps.Map(document.getElementById('poi-canvas'), { 
       center: poiCentre, 
       zoom: 15 
      }); 

      var request = { 
       location: poiCentre, 
       radius: 500, 
       types: ['store'] 
      }; 
      infowindow = new google.maps.InfoWindow(); 
      var service = new google.maps.places.PlacesService(poiMap); 
      service.nearbySearch(request, callback); 
     } 

     function callback(results, status) { 
      if (status == google.maps.places.PlacesServiceStatus.OK) { 
       for (var i = 0; i < results.length; i++) { 
        createMarker(results[i]); 
       } 
      } 
     } 

     function createMarker(place) { 
      var placeLoc = place.geometry.location; 
      var marker = new google.maps.Marker({ 
       map: poiMap, 
       position: place.geometry.location 
      }); 

      google.maps.event.addListener(marker, 'click', function() { 
       infowindow.setContent(place.name); 
       infowindow.open(poiMap, this); 
      }); 
     } 

现在这个正确初始化但控制台引发以下错误: 类型错误:google.maps.places未定义

我只是想知道为什么我得到这个错误,我喜欢干净无错的代码。

这些地方确实显示正确和一切。

+0

如果你有你的答案,请检查它作为correc吨。 –

+0

你是怎么做到的?新的论坛:) – crazyvonzipper

+0

在上/下箭头的下方,每个答案的左边都有一个复选标记。点击它,将答案标记为正确。这样,你从其他成员节省时间:) –

回答

43

你应该在谷歌API URL

在你的情况下添加选项libraries=places就应该更换了以下内容:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?v=3&key=....&sensor=false&callback=initializeMap"></script> 

有了这个:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?v=3&key=....&sensor=false&callback=initializeMap&libraries=places"></script> 

看年底src=""

+0

嗨在那里,我试过这个,但无济于事。 – crazyvonzipper

+0

我现在得到的错误:k.google.maps.Load不是函数 – crazyvonzipper

+0

你可以把你的代码放在http://jsfiddle.net/? –