我有这个脚本来在谷歌地图上显示标记,效果很好,但现在我想获取当前位置以最初放大 map ..
<body onload="initCoords()">
function initCoords() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition, showError);
}
}
function showPosition(position) {
var lat = position.coords.latitude;
var long = position.coords.longitude;
} // this gets the current location loaded when body loads //
如何将纬度和经度传递到 map 中?
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
center: new google.maps.LatLng(lat, long),
zoom: 12
});
</body>
它抛出纬度和经度未定义。
最佳答案
在回调showPosition
中调用 map 的setPosition
方法。正如您在 initMap
函数中声明了 map
一样,也许还可以在 initMap
主体中声明其他函数
function initMap() {
lat=56;
long=-2;
var map = new google.maps.Map(document.getElementById('map'), {
center: new google.maps.LatLng(lat, long),
zoom: 12
});
var initCoords=function() {
if ( navigator.geolocation ) {
navigator.geolocation.getCurrentPosition(showPosition, showError);
}
}
var showError=function(e){
alert(e)
};
var showPosition=function( position ) {
var lat = position.coords.latitude;
var long = position.coords.longitude;
var latlng=new google.maps.LatLng(lat,long);
map.setPosition( latlng );
/* add marker?? */
}
/* other code ?.... */
}/* close function*/
或者,声明使用回调函数来初始化 map
var map,lat,long;
function initMap() {
var initCoords=function() {
if ( navigator.geolocation ) {
navigator.geolocation.getCurrentPosition(showPosition, showError);
}
}
var showError=function(e){
alert(e)
};
var showPosition=function( position ) {
var lat = position.coords.latitude;
var long = position.coords.longitude;
var latlng=new google.maps.LatLng(lat,long);
var map = new google.maps.Map( document.getElementById('map'), {
center: latlng,
zoom: 12
});
}
/* other code ?.... */
}/* close function*/
关于javascript - 如何使用 html 地理位置和 google map api 获取当前位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48872636/