我有谷歌地图工作正常时,可以检测到位置,但如果它不能,地图永远不会显示。我想要做的是,如果无法检测到位置,请将lat和lng变量设置为函数locError中的那个。如何做到这一点?谷歌地图,如果没有位置设置标记到默认位置
这里是我的代码:
function initializeMap() {
map = new google.maps.Map(document.getElementById('map_canvas'), {
zoom: 19,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
directionsDisplay.setMap(map);
directionsDisplay.setPanel(document.getElementById('test'));
}
var pinColor = "6495ED";
var pinImage = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|" + pinColor,
new google.maps.Size(21, 34),
new google.maps.Point(0, 0),
new google.maps.Point(10, 34));
var pinShadow = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_shadow",
new google.maps.Size(40, 37),
new google.maps.Point(0, 0),
new google.maps.Point(12, 35));
function locError(error) {
// the current position could not be located
lat = 53.5409298;
lng = -2.11136590000001;
initializeMap();
setCurrentPosition(position);
}
function setCurrentPosition(position) {
if (position.coords.latitude) {
lat = position.coords.latitude;
lng = position.coords.longitude;
} else {
lat = 53.5409298;
lng = -2.11136590000001;
}
var accuracy = position.coords.accuracy;
currentPositionMarker = new google.maps.Marker({
map: map,
position: new google.maps.LatLng(
lat,
lng
),
title: "Current Position",
icon: pinImage,
shadow: pinShadow,
animation: google.maps.Animation.DROP
});
map.panTo(new google.maps.LatLng(
lat,
lng
));
circle = new google.maps.Circle({
map: map,
radius: accuracy,
strokeColor: '#E62C56',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#6495ED',
fillOpacity: 0.10
});
circle.bindTo('center', currentPositionMarker, 'position')
algolia_search(position);
}
function displayAndWatch(position) {
// set current position
setCurrentPosition(position);
// watch position
watchCurrentPosition(position);
}
function watchCurrentPosition(position) {
var positionTimer = navigator.geolocation.watchPosition(
function (position) {
setMarkerPosition(
currentPositionMarker,
position,
)
});
}
function setMarkerPosition(marker, position) {
circle.setRadius(position.coords.accuracy);
marker.setPosition(
new google.maps.LatLng(
lat,
lng)
);
algolia_search(position);
}
function initLocationProcedure() {
initializeMap();
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(displayAndWatch, locError);
} else {
displayAndWatch();
locError();
}
}
function clearOverlays() {
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(null);
}
markers.length = 0;
}
$(document).ready(function() {
initLocationProcedure();
});
是什么原因造成并不是在所有的位置时是关闭的加载地图的问题?我如何仍然可以加载地图并将其绑定到经纬度设置错误功能,当地点没有找到时触发
我得到张贴代码JavaScript错误:'未捕获的ReferenceError:directionsDisplay不defined'。请提供一个证明你的问题的[mcve]。 – geocodezip