2017-08-27 43 views
-2

我想使用谷歌地圖api和html地理位置來獲取我當前的位置。這是代碼。瀏覽器中的控制檯不會引發任何錯誤或任何錯誤。我想獲取我的位置,並根據我的位置設置中心。有些樣式和插件目的也有一些jquery。谷歌地圖和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。它完全忽略了navigation.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