15

GoogleマップのジオコードAPIからLatLngを取得しようとしています。私のコードは以下のとおりです。住所の値は「ニューヨーク、ニューヨーク」です。

$.ajax({
    url: 'http://maps.googleapis.com/maps/api/geocode/json',
    data: {
        sensor: false,
        address: address
    },
    success: function (data) {
        alert(data)
    }
});

しかし、アラートで値を取得していません。

助けてくれてありがとう。

4

6 に答える 6

14

ルールについてはAPIに問い合わせる必要があります。

$.getJSON( {
    url  : 'https://maps.googleapis.com/maps/api/geocode/json',
    data : {
        sensor  : false,
        address : address
    },
    success : function( data, textStatus ) {
        console.log( textStatus, data );
    }
} );

編集:

私のなんてばかげている、朝にスタックオーバーフローにあるべきではありません!問題はクロスドメインリクエストです。セキュリティ上の理由から、これは許可されていません。参照:Google Maps APIへのクロスドメインAJAX呼び出しを行う方法は?

Google独自のジオコーディングクライアントを使用してください。

于 2011-03-04T08:33:35.060 に答える
10

jqueryを使用する必要はありません。GoogleマップのjavascriptAPIv3には、APIを使いやすくする独自の関数が組み込まれています。

https://developers.google.com/maps/documentation/javascript/geocoding https://developers.google.com/maps/documentation/geocoding/intro

var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address }, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
        var marker = new google.maps.Marker({
            map: map,
            position: results[0].geometry.location
        });
    }
});
于 2015-07-24T12:26:55.080 に答える
3

誰かがこのトピックについて助けを求めているなら、これは私がそれをした方法です。これは逆引き参照ですが、正引きは同じように機能するはずです。

`

    function getLocation() {
var latdegrees=40.2298;
var londegrees=-41.88754;
     var url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=" + latdegrees + "," + londegrees + "YOUR API KEY";
    $.getJSON(url,function (data, textStatus) {
           var streetaddress=data.results[0].formatted_address;
          return streetaddress;
      });
     }`
于 2015-03-22T15:26:50.410 に答える
1

V3ジオコーディングWebサービスはJSONPリクエストをサポートしていませんが、V2でも引き続き利用できます

参照: http: //blog.futtta.be/2010/04/09/no-more-jsonp-for-google-geocoding-webservice/

于 2012-12-27T03:33:59.210 に答える
1

これが私がやった方法です。ジオコーダーは、独自のコールバックを作成しているようです。

geo.geocode({ 'address': myaddress }, function(data, status) {
    if (status == google.maps.GeocoderStatus.OK) { 
        var myylocation = data[0].geometry.location;
        lat = myylocation.lat();
        lng = myylocation.lng();
    }
});
于 2015-01-20T01:18:07.753 に答える
0

またはdataTypeをjsonpに指定しますか?

$.ajax({
    url: 'http://maps.googleapis.com/maps/api/geocode/json',
    data: {
        sensor: false,
        address: address
    },
    dataType:'jsonp',
    success: function (data) {
        alert(data)
    }
});
于 2012-11-23T01:38:20.903 に答える