4

これは、場所を入力したときに緯度と経度を取得するコードです。私の知識によると、コードは正しいと思いますが、場所を入力した後に空白のページが表示されます。

コードは次のとおりです。

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){

    var url="http://maps.googleapis.com/maps/api/geocode/json?address=";
    var query;
    var sensor="&sensor=false";
    var callback="&callback=?";


    $("button").click(function(){
          query=$("#query").val();
          $.getJSON(url+query+sensor+callback,function(json){

             $('#results').append('<p>Latitude : ' + json.results.geometry.location.lat+ '</p>');
             $('#results').append('<p>Longitude: ' + json.results.geometry.location.lng+ '</p>');

});


    });
});


</script>

</head>
<body>

<input type="text" id="query" /><button>Get Coordinates</button>
<div id="results"></div>

</body>
</html>
4

2 に答える 2

15

Google Maps Javascript V3では、google.maps.Geocoderクラスを使用してジオコーディングサービスにアクセスできます。

var myAddressQuery = 'O. J. Brochs g 16a, Bergen';
var geocoder = new google.maps.Geocoder(); 
geocoder.geocode(
    { address : myAddressQuery, 
      region: 'no' 
    }, function(results, status){
      // result contains an array of hits.
});

https://developers.google.com/maps/documentation/javascript/examples/geocoding-simple

于 2011-11-23T12:50:49.493 に答える
7

ここで JSONP を使用しようとしています。

JSONP

URL に「callback=?」という文字列が含まれている場合 (またはサーバー側 API で定義されている同様のもの)、要求は > 代わりに JSONP として扱われます。詳細については、$.ajax() の jsonp データ型の説明を参照してください。

重要: jQuery 1.4 の時点で、JSON ファイルに構文エラーが含まれている場合、リクエストは通常​​、サイレントに失敗します。

参照: http://api.jquery.com/jQuery.getJSON/

ただし、呼び出している URL はプレーンなJSONを返すため、解析は構文エラーでgetJSON失敗し、サイレントに失敗します。

JSONP を使用するようにジオコード URL を変更しようとすると404、Google がかなり前に JSONP のサポートを削除したため、エラーが発生します。

つまり
、ブラウザー JavaScript からジオコード API を単純に使用することはできなくなりました。サーバーにプロキシ スクリプトを追加する必要があります。

リクエストが機能する場合でも、コードにはまだバグがあります。

json.resultsは結果の配列geometryであるため、プロパティはありません。

geometryプロパティを持つ実際のオブジェクトに到達するには、配列の最初の要素にアクセスする必要があります。

json.results[9].geometry.location.lng
于 2011-01-13T16:47:28.480 に答える