Javascript 谷歌地图以用户为中心';s当前位置加上默认位置作为备份
“我的店铺定位器”设置为以用户的当前位置为中心,但当用户不允许知道其位置时,如何将其默认为位置?else语句中的代码不起作用,但我不确定原因。以下是我所拥有的:Javascript 谷歌地图以用户为中心';s当前位置加上默认位置作为备份,javascript,api,google-maps,google-maps-api-3,maps,Javascript,Api,Google Maps,Google Maps Api 3,Maps,“我的店铺定位器”设置为以用户的当前位置为中心,但当用户不允许知道其位置时,如何将其默认为位置?else语句中的代码不起作用,但我不确定原因。以下是我所拥有的: google.maps.event.addDomListener(window, 'load', function() { (function() { if(!!navigator.geolocation) { var map; var mapOptions = { zoom: 1
google.maps.event.addDomListener(window, 'load', function() {
(function() {
if(!!navigator.geolocation) {
var map;
var mapOptions = {
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
navigator.geolocation.getCurrentPosition(function(position) {
var geolocate = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
map.setCenter(geolocate);
});
} else {
var map = new google.maps.Map(document.getElementById('map-canvas'), {
center: new google.maps.LatLng(37.7749, -122.4194),
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
}
var panelDiv = document.getElementById('panel');
var data = new MedicareDataSource;
var view = new storeLocator.View(map, data, {
geolocation: false,
features: data.getFeatures()
});
new storeLocator.Panel(panelDiv, {
view: view
});
})();
});
else中的代码不起作用,因为它从未执行过(
!!navigator.geolocation
为true)。如果geolocation
可用,但遇到错误,将调用error
函数,但未定义函数
getCurrentPosition方法定义为(从):
navigator.geolocation.getCurrentPosition(成功[,错误[,选项])参数
success-一个回调函数,将位置对象作为其唯一的输入参数。
错误-可选-可选回调函数,将PositionError对象作为其唯一输入参数。
选项-可选-可选位置选项对象 添加错误函数以设置地图的中心:
function error(err) {
console.log('ERROR('+err.code+'): '+err.message);
if (map && map.setCenter) map.setCenter(new google.maps.LatLng(37.7749, -122.4194))
};
然后将其添加到.getCurrentPosition
调用:
navigator.geolocation.getCurrentPosition(function(position) {
var geolocate = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
map.setCenter(geolocate);
}, error);
代码片段:
var映射;
函数错误(err){
console.log('ERROR('+err.code+'):'+err.message);
if(map&&map.setCenter)map.setCenter(新的google.maps.LatLng(37.7749,-122.4194))
};
google.maps.event.addDomListener(窗口'load',函数(){
如果(!!navigator.geolocation){
变量映射选项={
缩放:12,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById('map-canvas'),mapOptions);
navigator.geolocation.getCurrentPosition(函数(位置){
var geologite=new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
地图设置中心(地理定位);
},错误);
}否则{
map=new google.maps.map(document.getElementById('map-canvas'){
中心:新google.maps.LatLng(37.7749,-122.4194),
缩放:12,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
}
});代码>
html,
身体,
#地图画布{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}