2017-08-27 10 views
-2

現在の場所を取得するには、google maps apiとhtml geolocationを使用しようとしています。ここにコードがあります。ブラウザのコンソールでエラーが発生することはありません。私は私の場所を取得し、私のlocation.Thereに沿ってセンターを設定したいと思ういくつかのスタイリングとプラグインの目的のために冒頭に少しjqueryがあります。あなたがドキュメントで見ることができるようにGoogleマップとhtml geocenter

function initMap(){ 

var usa = [[36.2116522, -113.7155883],[38.3679748,-105.2357827]]; 
var map = new google.maps.Map(document.getElementById('googlemaps'), { 
    zoom: 4, 
    center: new google.maps.LatLng(36.2116522,-113.7155883) 
}); 

for(var i = 0; i < usa.length ; i++){ 
    var marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(usa[i][0],usa[i][1]), 
     map: map 
    }); 
    }; 
}; 

navigator.geolocation.getCurrentPosition(function(position) { 
    var lat = position.coords.latitude; 
    var lng = position.coords.longitude; 
    map.setCenter(new google.maps.LatLng(lat,lng)); 
    map.setMarker(new google.maps.LatLng(lat,lng)); 
    console.log('hi'); 
}); 
+0

投稿されたコードの質問/問題は何ですか? – geocodezip

+0

マーカーをgetCurrentPositionに間違って設定すると、既にマーカーが作成されています。あなたは新しいgoogle.maps.LatLng –

+0

@ kalahari.ferrariでその位置を更新する必要があります。最初のマップもmap.setCenterを追加した場所ではうまくいきません。 nav.geolocation.getCurrentLocationコマンドはconsole.log(lat、lng)を置いたときに何も表示されていなくても完全に無視されています – Shadman

答えて

0

setCenter()メソッドは、パラメータとしてタイプLatLngまたはLatLngLiteralのオブジェクトを受け取ります。あなたは少しのコード変更する必要があります意味

https://developers.google.com/maps/documentation/javascript/reference#Map https://developers.google.com/maps/documentation/javascript/reference#LatLng https://developers.google.com/maps/documentation/javascript/reference#LatLngLiteral

if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function(position) { 
     var lat = position.coords.latitude; 
     var lng = position.coords.longitude; 
     map.seCenter(new google.maps.LatLng(lat,lng)); 
    }); 
} 

else{ 
    alert("Your Browser does not support geolocation or please allow your browser to get your current location."); 
}  

または

if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function(position) { 
     var lat = position.coords.latitude; 
     var lng = position.coords.longitude; 
     map.seCenter({lat: lat, lng: lng}); 
    }); 
} 

else{ 
    alert("Your Browser does not support geolocation or please allow your browser to get your current location."); 
} 

は、この情報がお役に立てば幸い!

UPDATE

また、ジオロケーションエラーの場合に起こっている正確に何を把握するためにエラーハンドラ関数を追加する必要があります。あなたは、次の文書中のエラーコードのリストを見ることができます:

https://developer.mozilla.org/en-US/docs/Web/API/PositionError

if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(function(position) { 
      var lat = position.coords.latitude; 
      var lng = position.coords.longitude; 
      map.setCenter(new google.maps.LatLng(lat,lng)); 
      console.log('hi'); 
     }, function(err) { 
     switch(err.code){ 
      case 1: 
      alert("Error: PERMISSION_DENIED"); 
      break; 
      case 2: 
      alert("Error: POSITION_UNAVAILABLE"); 
      break; 
      case 3: 
      alert("Error: TIMEOUT"); 
      break; 
     } 
     }); 
    } else { 
     alert("Your Browser does not support geolocation or please allow your browser to get your current location."); 
    } 
    } 

にコードを変更してくださいあなたが今エラーメッセージを見ることができますか?

+0

提案していただきありがとうございます。 navigator.geolocation.getCurrentLocationメソッドを完全に無視しているようです。私もconsole.logにしようとしましたが、コンソールは空です。私はコードをいくつか修正しました。ポストの新しいコードを更新しました。お試しいただきありがとうございます。 – Shadman

+0

エラーハンドラも追加する必要があります。私の更新を見てください。私もjsbinでサンプルを作成しました:http://jsbin.com/qinabu/edit?html,output。 – xomena

関連する問題