2017-12-04 12 views
-1
function getCoords(position) 
{ 
    var longitude = position.coords.latitude; 
    var latitude = position.coords.longitude; 
    var coords = new google.maps.LatLng(latitude, longitude); 
    alert(coords); 
    }); 
} 

をLAT、LNGを渡すことはできませんこれは私が変数coords最初の時間を必要とする初期化関数である:は、初期化機能に

function initMap() 
{ 
    map = new google.maps.Map(document.getElementById('map'), { 
     center: {lat: 22.5726, lng: 88.3639}, 
     zoom: 13 
    }); 

    infoWindow = new google.maps.InfoWindow; 

    // Try HTML5 geolocation. 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(function(position) 
     { 
      var marker = new google.maps.Marker({ 
       position: coords, 
       map: map, 
       title: "You're here Bro!", 
       draggable: true, 
       animation: google.maps.Animation.DROP, 
      }); 

      infoWindow.setPosition(coords); 
      infoWindow.setContent("You're here Bro!"); 

      infoWindow.open(map , marker); 
      map.setCenter(coords); 
     }, function() { 
      handleLocationError(true, infoWindow, map.getCenter()); 
     }); 
    } else { 
     // Browser doesn't support Geolocation 
     handleLocationError(false, infoWindow, map.getCenter()); 
    } 

    new AutocompleteDirectionsHandler(map); 
} 

これは私が変数coords二度目

を必要とする初期化関数であります
AutocompleteDirectionsHandler.prototype.route = function() { 
    if (!this.destinationPlaceId) { 
     return; 
    } 

    var me = this; 

    this.directionsService.route({ 
     origin: coords, 
     destination: {'placeId': this.destinationPlaceId}, 
     travelMode: this.travelMode 
    }, function(response, status) { 
     if (status === 'OK') { 
      me.directionsDisplay.setDirections(response); 
     } else { 
      window.alert('Directions request failed due to ' + status); 
     } 
    }); 
}; 

このコードでは、coords変数を関数に渡すことはできません。最初の関数は地図開始のためのもので、ndは経路のためのものです。

答えて

0

'coords'変数に別のスコープでアクセスしようとしています。おそらく、getCoords関数の外でそれを宣言しようとし、それをその内部に設定しようとします。 次のように:

var coords = null; 
function getCoords(position) 
{ 
var longitude = position.coords.latitude; 
var latitude = position.coords.longitude; 
coords = new google.maps.LatLng(latitude, longitude); 
alert(coords); 
}); 
} 
+0

マーカーがなく、情報ウィンドウが別の位置に表示されています。 –

+0

あなたの 'initMap'関数で、新しいマーカーを作成するときは' position:coords'を 'position:{lat:position.coords.latitude、lng:position.coords.longitude}'に置き換えてください –

関連する問題