麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

利用jquery解析Google Map的geocode地址数据

在调用Google地图的geocode服务时,会得到一组json数据或者xml数据,但是并不适合直接显示在网页上,所以需要对返回的结果做进一步的解析。这里提供利用jquery解析json的方法。

返回的数据格式如下:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Kishim",
               "short_name" : "Kishim",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "巴达赫尚",
               "short_name" : "巴达赫尚",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "阿富汗",
               "short_name" : "AF",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Kishim, 阿富汗",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 37.0190016,
                  "lng" : 70.63659679999999
               },
               "southwest" : {
                  "lat" : 36.265314,
                  "lng" : 70.10925279999999
               }
            },
            "location" : {
               "lat" : 36.5712949,
               "lng" : 70.3360691
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 37.0190016,
                  "lng" : 70.63659679999999
               },
               "southwest" : {
                  "lat" : 36.265314,
                  "lng" : 70.10925279999999
               }
            }
         },
         "types" : [ "administrative_area_level_2", "political" ]
      },
      {
         "address_components" : [
            {
               "long_name" : "巴达赫尚",
               "short_name" : "巴达赫尚",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "阿富汗",
               "short_name" : "AF",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "阿富汗巴达赫尚",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 38.490611,
                  "lng" : 74.89019499999999
               },
               "southwest" : {
                  "lat" : 35.44512100000001,
                  "lng" : 69.986097
               }
            },
            "location" : {
               "lat" : 36.7347725,
               "lng" : 70.81199529999999
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 38.490611,
                  "lng" : 74.89019499999999
               },
               "southwest" : {
                  "lat" : 35.44512100000001,
                  "lng" : 69.986097
               }
            }
         },
         "types" : [ "administrative_area_level_1", "political" ]
      },
      {
         "address_components" : [
            {
               "long_name" : "阿富汗",
               "short_name" : "AF",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "阿富汗",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 38.49087670000001,
                  "lng" : 74.88986199999999
               },
               "southwest" : {
                  "lat" : 29.3772,
                  "lng" : 60.5170005
               }
            },
            "location" : {
               "lat" : 33.93911,
               "lng" : 67.709953
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 38.49087670000001,
                  "lng" : 74.88986199999999
               },
               "southwest" : {
                  "lat" : 29.3772,
                  "lng" : 60.5170005
               }
            }
         },
         "types" : [ "country", "political" ]
      }
   ],
   "status" : "OK"
}

可以看出,这个数据是一个多重嵌套的json。我们需要提取results下的formatted_address。解析方法如下:

$.ajax({
        url:'http://maps.google.com/maps/api/geocode/json?latlng=36.910093,70.403945&language=zh-CN&sensor=false,
        type:'get',
        dataType:'json',
        success:function(resp){
            if(resp['status']==='OK')
            {
                alert(resp.results[2].formatted_address);
            }
        }   
    });

PS:在使用这段代码之前,需要引入jquery库。

<script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.8.2/jquery.min.js"></script>
麻辣GIS-Sailor
作者:
GIS爱好者,学GIS,更爱玩GIS。
微博关注
手机阅读
赞赏支持
手机阅读
微信捐助麻辣GIS
微信打赏
支付宝捐助麻辣GIS
支付宝打赏

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

3.如果本文对您有所帮助,请您对我们团队进行 打赏捐助让我们在传播3S的路上可以走得更远,不胜感激。PS:如果你是学生党,请优先把经费用于购买学习资料 以及 与小哥哥/小姐姐约会上:-)

如您有疑问,可在文末留言,或到麻辣GIS QQ群中提问。

QQ群(一):291616564 加入QQ群

QQ群(二):166408035 加入QQ群

QQ群(三):627853279 加入QQ群

QQ群(四):436386604 加入QQ群

QQ群(五):606176554 加入QQ群

QQ群(六):946178380 加入QQ群

QQ群(七):861271808 加入QQ群

新疆互助群:910717627 加入QQ群

微信公众号:malagis,扫描右边二维码直接关注。

发表评论