0

Javascript を使用して Microsoft Dynamics CRM 2011 から住所をジオコーディングしようとしています。地図を表示したくありません。ジオコーディングを実行して、緯度/経度の値をデータベースに保存するだけです。というエラーメッセージが表示され続けます

"result.0 は null またはオブジェクトではありません"

var url = 'http://maps.googleapis.com/maps/api/geocode/json?address=39 George Street, Belmont, WA, 6104, Australia&sensor=false'

var lat = url.results[0].geometry.location.lat();

alert(lat)

私は何を間違っていますか?

4

2 に答える 2

2

あなたの質問から、これは完全なコード スニペットであると思います。その仮定では、コードは不完全です。コードは という文字列を作成しますurl。次に、その文字列で呼び出されたコレクションにアクセスしようとしますresults(存在しないため、そのコレクション内の位置 0 は存在しません)。基本的に、あなたのコードは何もしません。

申し訳ありませんが、これを機能させるにはまだ近づいていないため、Google Geocode API をよく読む必要があります... https://developers.google.com/maps/documentation/javascript/ジオコーディング

編集: より役立つように - ここにもウォークスルーがあります: http://www.wikihow.com/Geocode-an-Address-in-Google-Maps-Javascript

于 2012-08-10T08:13:25.473 に答える
1

私は Greg に反対しなければなりません...あなたの要求 URL はかなり近いようです。正確な位置については、Google ジオコーディング ガイドをご覧ください。返されるのは JSON 文字列なので、jQuery などを使用して文字列をオブジェクトに解析する必要があります。

JSON を使用することに慣れていない場合は、次のような単純なスクリプトでも緯度/経度が返されます ( Google のサンプルから適応)。

<script src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script>
  var geocoder;

  function initialize() {
    geocoder = new google.maps.Geocoder();
  }

  function codeAddress() {
    var address = document.getElementById("address").value;
    geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        var addressLocation = results[0].geometry.location;
        alert("Lat: " + addressLocation.lat() + " Lon: " + addressLocation.lng());
      } else {
        alert("Geocode was not successful for the following reason: " + status);
      }
    });
  }

</script>
于 2012-08-10T13:59:22.593 に答える