位置が検出されたときにうまく動作するGoogleマップがありますが、地図が表示されない場合は表示されません。私がしたいのは、関数locErrorの変数にlatとlng変数を設定しても場所を検出できない場合です。それはどうやってできますか?Googleマップはデフォルト位置にマーカーを設定しました
は、ここに私のコードです:
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();
});
場所がオフの場合、マップの問題は全くロードされていない原因は何?どのように私はまだマップをロードし、位置に見つからないときにトリガされているエラー関数で設定されたlatとlngにバインドすることができますか?
私は投稿のコードでJavaScriptのエラーが発生します。あなたの問題を示す[mcve]を提供してください。 – geocodezip