0

私がやろうとしているのは、Geolocation APIを使用して現在地を見つけ、Googleの場所を追加して、自分の周りにあるものを表示することです。しかし、私がこれまでに持っているものは、特定の場所を返すだけです...

 <script>
  var map;
  var infowindow;

  function initialize() {
    var pyrmont = new google.maps.LatLng(-33.8665433, 151.1956316);

    map = new google.maps.Map(document.getElementById('map'), {
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      center: pyrmont,
      zoom: 15
    });

    var request = {
      location: pyrmont,
      radius: 500,
      types: ['store']
    };
    infowindow = new google.maps.InfoWindow();
    var service = new google.maps.places.PlacesService(map);
    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: 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>

あなたがピルモントを見ることができるように-私に緯度と長さを与えます、しかし私はこれでユーザーの現在の場所を置き換えたいと思います。だから私は彼らがどこにいるのかを見つけて、それから彼らにいくつかの店を与えることができます。これをやろうとすると、空白を描き続けます。私は以前にジオロケーションを行いました:

new google.maps.LatLng(position.coords.latitude, position.coords.longitude);

ただし、この変数をlat longセクションで使用すると、見事なエラーが発生します。よろしくお願いします。

4

1 に答える 1

0

さて、これはそれをしました:

 <script>
 var map;

      function initialize() {
        var mapOptions = {
          
        };
        map = new google.maps.Map(document.getElementById('contact-map'),{
    zoom: 15,
    mapTypeId: google.maps.MapTypeId.ROADMAP   
        });

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

            var request = {
          location: pos,
          radius: 500,
          types: ['store']
        };
            
            var marker = new google.maps.MarkerImage('../img/layout/marker.png');
            
            var infowindow = new google.maps.InfoWindow({
              map: map,
              position: pos,
              icon: marker,
              content: 'youre here'
            });
            var service = new google.maps.places.PlacesService(map);
            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: map,
          position: place.geometry.location
        });
      google.maps.event.addListener(marker, 'click', function() {
      infowindow.setContent(place.name);
      infowindow.open(map, this);
  });
  }
            
            map.setCenter(pos);
          }, 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(60, 105),
          content: content
        };

        var infowindow = new google.maps.InfoWindow(options);
        map.setCenter(options.position);
      }

      google.maps.event.addDomListener(window, 'load', initialize);
    </script>
于 2012-12-27T13:35:30.773 に答える