如何使用Google商家信息获取一系列地名?

时间:2011-05-28 02:08:07

标签: javascript google-maps

我正在尝试访问Google商家信息,以便在经度和经度周围返回50个餐馆名称,但在提出请求时,我遇到了一堵砖墙。我已经获得了确定用户纬度和经度的代码,并且我从谷歌获得了我的API密钥,我只是无法弄清楚如何通过URL提出请求,Google文档对于如何实际上没有提及获取数据。我相信我能够弄清楚如何解析JSON返回,但是获得数据已经证明比我想象的更困难/困惑。

如果重要,我正在使用MaxMind来获取用户的经纬度。这是我到目前为止的脚本:

<script type="text/javascript" src="https://www.google.com/jsapi?key=api_key"></script>
<script type="text/javascript" src="http://j.maxmind.com/app/geoip.js"></script>

<script type="text/javascript">
    latitude = geoip_latitude();
    longitude = geoip_longitude();
</script>

1 个答案:

答案 0 :(得分:2)

  

Google文档没有说明如何实际获取数据

实际上,Places Web Service API documentation没有示例 - 您使用适当的参数生成URL,然后返回您解析的JSON或XML。

如果您使用的是jQuery并且API支持JSONP,那么您可以这样做:

$.ajax({
        url: 'https://maps.googleapis.com/maps/api/place/search/json', 
        data: {
                location:"-33.8670522,151.1957362", 
                radius: 500, 
                types:'food', 
                name: 'harbour', 
                sensor: false, 
                key: 'AIzaSyAiFpFd85eMtfbvmVNEYuNds5TEF9FjIPI'
            }, 
        success: function(data){
                    //data will be a JSON object that you can iterate over
                },
        dataType: 'jsonp'
    });

请注意,这不起作用,因为不支持JSONP,这只是为了说明可能在jQuery中发出请求的方式

但是,AFAIK,Web服务支持JSONP,因此您将无法通过JavaScript发出请求。但是,您可以使用Google Maps JavaScript API并使用Places JavaScript library代替。同样,该页面有示例显示如何使用该库,基本用途将涉及启动服务和发出如下搜索请求(直接从文档复制):

service = new google.maps.places.PlacesService(map);
service.search(request, callback);