0

私のコードでこのエラーが発生しています。地理位置情報を扱った経験はあまりありませんが、なぜそれが得られるのかわかりません。問題は緯度と経度の位置を取得することにあると思いますが、それが何であるかはわかりません。これが機能しない理由についてコード/アイデアを変更する方法について誰かが提案を持っている場合は、それをいただければ幸いです。

function callGeo() {
console.log("you called findLocation");
if(navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(getLocation, locationError);
  }
else { console.log("no geolocation support");
        return;
         }
}

function getLocation(position) {
    var latitude = position.coords.latitude;
    var longitude = position.coords.longitude;
    if (!map) {
       showMap(latitude, longitude);
       }
    addMarker(latitude, longitude);
}

function showMap(lat, long) {
   var googleLatLong = new google.maps.LatLng(lat, long);
   var mapOptions = {
       zoom: 12,
       center: googleLatLong,
       mapTypeId: google.maps.MapTypeId.ROADMAP
       };
   var mapDiv = document.getElementById("map");
   map = new google.maps.Map(mapDiv, mapOptions);
   map.panTo(googleLatLong);
   }

function addMarker(lat, long) {
   var googleLatLong = new google.maps.LatLng(lat, long);
   var markerOptions = {
     position: googleLatLong,
     map: map,
     title: "Where I'm thinking today"
     }
     var marker = new google.maps.Marker(markerOptions);
   }

function locationError(error) {
    var errorTypes = {
        0: "Unknown error",
        1: "Permission denied by user",
        2: "Position not available",
        3: "Request timed out"
    };
    var errorMessage = errorTypes[error.code];
    if (error.code == 0 || error.code == 2) {
        errorMessage += " " + error.message;
    }
    console.log(errorMessage);
    alert(errorMessage);
}
4

1 に答える 1

0

申し訳ありませんが、私はちょうどそれを理解しました。if (!map) をチェックしていました。if(map) に変更したところ、動作するようになりました。

于 2013-03-04T04:53:53.687 に答える