2011-10-20 10 views
1

私のコードでは、まず、GoogleマップのGeoLocationサービスでユーザーの場所を検索しようとしています。Googleのプレイスサービスの出力を取得できません

第2に、アルコール飲料を飲む場所のように、ユーザーの近くにあるGoogleプレイスサービスで「バー」を表示しようとしています。ユーザーの近くの「バー」にマーカーを置く必要があります。

これは機能しませんが、問題が発生しています。しかし、私はそれが何であるか分からない。それは私の場所の近くに 'バー'のない地図を開きます。

私の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プレイス検索は、多くの場合、特にGoogleプレイスデータベースがどのようにスパース考えると、空にまで来ることができます現時点で(または私が試した最後の時だった)。いくつかの詳細と提案については、Google Maps Javascript API V3 : Search Requestsを参照してください。

関連する問題