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

Dav*_*ort 5 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>
Run Code Online (Sandbox Code Playgroud)

no.*_*ing 2

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

事实并非如此,Places Web Service API 文档有示例 - 您使用适当的参数生成 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'
    });
Run Code Online (Sandbox Code Playgroud)

请注意,这将不起作用,因为不支持 JSONP,这只是为了说明如何jQuery 中发出请求

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

service = new google.maps.places.PlacesService(map);
service.search(request, callback);
Run Code Online (Sandbox Code Playgroud)