2011-10-20 17 views
1

在我的代碼中,首先,我試圖通過Google地圖上的GeoLocation服務來查找用戶的位置。我無法獲取Google的Places服務的輸出

第二,我試圖在谷歌的地方服務附近用戶位置顯示'酒吧',就像你去喝酒的​​地方一樣。它應該在用戶位置附近的「酒吧」上放置標記。

但是這不起作用,我遇到了一個問題。但我不知道它是什麼。它會在我的位置附近打開沒有「酒吧」的地圖。

我的CSS代碼:

html, body { 
    height: 100%; 
    margin: 0; 
    padding: 0; 
} 

#map_canvas { 
    height: 100%; 
} 

@media print { 
    html, body { 
    height: auto; 
    } 



    #map_canvas { 
    height: 650px; 
    } 
} 

這是我的JavaScript和我的HTML代碼=

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Google Maps JavaScript API v3 Example: Map Geolocation</title> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> 
    <meta charset="UTF-8"> 
    <link href="mapcss.css" rel="stylesheet" type="text/css"> 
    <!-- 
    Include the maps javascript with sensor=true because this code is using a 
    sensor (a GPS locator) to determine the user's location. 
    See: http://code.google.com/apis/maps/documentation/javascript/basics.html#SpecifyingSensor 
    --> 
    <script type="text/javascript" 
     src="http://maps.googleapis.com/maps/api/js?sensor=true"></script> 

    <script type="text/javascript"> 
     var map; 

     function initialize() { 
     var myOptions = { 
      zoom: 6, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     map = new google.maps.Map(document.getElementById('map_canvas'), 
      myOptions); 

     // Try HTML5 geolocation 
     if(navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(function(position) { 
      var pos = new google.maps.LatLng(position.coords.latitude, 
              position.coords.longitude); 

      var infowindow = new google.maps.InfoWindow({ 
       map: map, 
       position: pos, 
       content: 'Location found using HTML5.' 
      }); 

      map.setCenter(pos); 

      var request = { 
       location: pos, 
       radius: 500, 
       types: ['bar'] 
      }; 

      infowindow = new google.maps.InfoWindow(); 
      var service = new google.maps.places.PlacesService(map); 
      service.search(request, callback); 

      }, 

     function() { 
      handleNoGeolocation(true); 
      }); 
     } else { 
      // Browser doesn't support Geolocation 
      handleNoGeolocation(false); 
     } 
     } 

     function handleNoGeolocation(errorFlag) { 
     if (errorFlag) { 
      var content = 'Error: The Geolocation service failed.'; 
     } else { 
      var content = 'Error: Your browser doesn\'t support geolocation.'; 
     } 

     var options = { 
      map: map, 
      position: new google.maps.LatLng(45.4643898,9.1883469), 
      content: content 
     }; 

     var infowindow = new google.maps.InfoWindow(options); 
     map.setCenter(options.position); 
     } 
     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: map, 
      position: place.geometry.location 
     }); 

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

     google.maps.event.addDomListener(window, 'load', initialize); 
    </script> 
    </head> 
    <body> 
    <div id="map_canvas"></div> 
    </body> 
</html> 
+0

您確實需要接受對以前問題的正確答案。 – Joe

+0

好的我接受這就是爲什麼我糾正並重做它。 – user552828

回答

1

一個谷歌的地方搜索可以經常拿出空的,尤其是考慮到谷歌的地方數據庫如何稀疏是在當前時間(或者是我最後一次嘗試它)。請參閱Google Maps Javascript API V3 : Search Requests瞭解一些額外的細節和建議。

相關問題