【问题标题】:JQuery Googlemap V3 Geocoding with JSON使用 JSON 进行 JQuery Googlemap V3 地理编码
【发布时间】:2012-01-28 04:00:42
【问题描述】:

我已经使用 php 实现了这一点,但我想将其更改为在客户端使用 JQuery。
我想要做的是从从 Googlemaps 收到的 JSON 文件中获取数据,并使用它将纬度和经度保存到我的数据库中,但是我什至无法将数据放入变量中。

<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>


<script type="text/javascript">

$(document).ready(function() 
{
    $("#test").append('STUFF HERE');

    var geocodeURL = 'http://maps.google.com/maps/api/geocode/json?address=92408&sensor=false';

    $.getJSON(geocodeURL, function(data){

            var latitude = data.results.geometry.location.lat;
            var longitude = data.results.geometry.location.lng;

            alert(longitude);

            $("#test").append('<p>'+latitude +'</p><p>'+longitude+'</p>');

    });

});

</script>

<div id="test" ></div>

当我将 GeocodeURL 粘贴到浏览器中时,我得到以下返回:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "92408",
               "short_name" : "92408",
               "types" : [ "postal_code" ]
            },
            {
               "long_name" : "San Bernardino",
               "short_name" : "San Bernardino",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "San Bernardino",
               "short_name" : "San Bernardino",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "California",
               "short_name" : "CA",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "San Bernardino, CA 92408, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 34.10665490,
                  "lng" : -117.208780
               },
               "southwest" : {
                  "lat" : 34.0501660,
                  "lng" : -117.3071210
               }
            },
            "location" : {
               "lat" : 34.08685170,
               "lng" : -117.26173290
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 34.10665490,
                  "lng" : -117.208780
               },
               "southwest" : {
                  "lat" : 34.0501660,
                  "lng" : -117.3071210
               }
            }
         },
         "types" : [ "postal_code" ]
      }
   ],
   "status" : "OK"
}

经过一两天或研究和调整后,我无法找出问题所在,我希望对于已经去过那里并这样做过的人来说,这是一个简单的问题,因为我一直卡住了..

------------------------------更新---- ---------------------

据我所知,没有办法用上面的方法做谷歌地图的JSON,而是你必须使用下面的代码:

<script type="text/javascript"

    src="http://maps.googleapis.com/maps/api/js?sensor=true">

</script>


<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>


<script type="text/javascript">

$(document).ready(function() 
{
    var geocoder = new google.maps.Geocoder();
    var address= '92408';

    geocoder.geocode({ 'address': address}, function (results, status) {
        if (status == google.maps.GeocoderStatus.OK) 
        {
            var TEST = results[0].geometry.location;
            var longitude = results[0].geometry.location.lng;
            alert(TEST);
            alert(longitude);
            } 
        else 
        {
                result = "Unable to find address: " + status;
            }
    });


});

</script>

<div id="test" ></div>

现在的问题是从返回的 JSON 文件的 .location 部分获取实际的纬度和经度。 当'警报(TEST); ' 运行,输出如下:

(34.0868517, -117.26173289999997)

这是正确的经度/纬度对,但是当我尝试输入单个经度或纬度时,我得到以下输出:(来自警报(经度))

function () {
    return this[a];
}

有什么想法吗?

------------------------------已解决----- -------------------------------------------

好的,这是一个简单的解决方案.. 改变:

var longitude = results[0].geometry.location.lng;

到:

var longitude = results[0].geometry.location.lng();

【问题讨论】:

标签: jquery json google-maps-api-3 geocoding


【解决方案1】:

另外,我发现这个线程可能会有所帮助: using jquery.getJson with Google's GeoCoding HTTP Service 与不提供回调函数有关

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    相关资源
    最近更新 更多