私は自分の問題に関連する可能性のあるすべての質問に答え、多くの解決策を試しましたが、どれも役に立たないようです。Google の Map API を使用していますが、地図が正しい緯度と経度のペアを中心にしていません。南太平洋の真ん中のどこかである (0,0) を指しています。緯度経度ペアのジオロケーションを実行すると、正しい住所が表示されます。
これが私のコードです:
$(document).ready(function(){
var loc = {lat:0,long:0};
if (navigator.geolocation){
navigator.geolocation.getCurrentPosition(showPosition);
}else{
alert("Geolocation is not supported by this browser.");
}
console.log(loc);
function showPosition(position){
loc.lat=position.coords.latitude;
loc.long=position.coords.longitude;
var geocoder = new google.maps.Geocoder();
var latLng = new google.maps.LatLng(loc.lat, loc.long);
console.log(latLng);
if (geocoder) {
geocoder.geocode({ 'latLng': latLng}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
console.log(results[0].formatted_address);
alert('Address:'+results[0].formatted_address);
}else {
console.log("Geocoding failed: " + status);
}
}); //geocoder.geocode()
}
}
var latLong = new google.maps.LatLng(loc.lat, loc.long);
var mapOptions = {
center: latLong,
useCurrentLocation : true,
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var mapMsg = new google.maps.Map(document.getElementById("local_map"), mapOptions);
google.maps.event.addDomListener(window, 'load');
var markerOptions = new google.maps.Marker({
clickable: true,
flat: true,
map: mapMsg,
position: latLong,
title: "You are here",
visible:true,
icon:'http://maps.google.com/mapfiles/ms/icons/blue-dot.png',
});
});
これは、正しい場所の住所と緯度経度を示す Firefox のコンソールのスクリーンショットです。
コンソールの最初の 2 行は座標で、3 行目はジオコーディングされた場所です。
どこが間違っているか教えてください。私はこれがばかげた間違いであることを知っていますが、私はそれに慣れていません。
よろしく