如何通过输入城市/城镇名称从谷歌地图获取餐厅列表?

Posted

技术标签:

【中文标题】如何通过输入城市/城镇名称从谷歌地图获取餐厅列表?【英文标题】:How to get restaurant list from google map by just entering city/town name? 【发布时间】:2015-03-26 11:41:59 【问题描述】:

无法理解 Google Map 和 Google Places API 之间的区别。

刚刚实现了简单的谷歌地图代码

 <html>
    <head>
    <script src="http://maps.googleapis.com/maps/api/js"></script>
    <script>
    function initialize() 
      var mapProp = 
        center:new google.maps.LatLng(25.0000, 66.0000),
        zoom:4,
        mapTypeId:google.maps.MapTypeId.ROADMAP
      ;
      var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
    
    google.maps.event.addDomListener(window, 'load', initialize);
    </script>
    </head>

    <body>
    <select name="home_city_select" id="home_city_select" data-icon="carat-d" style="width:auto;" onchange="getCity()">
<option>
    ....
</option>
</select>

    <div data-role="content" style="padding: 0px" dir="ltr">

        <div id="googleMap" style="width:100%;height:215px;"></div>

    </div>

    </body>

JS

//City--tested by multiple code ways
function getCity() 
    var x = document.getElementById("home_city_select").value;
    var xx=$("#home_city_select").val();
    //alert(xx);


$(function() 
    $("#home_city_select").change(function() 
        alert( $('option:selected', this).text() );
    );
);

这里我必须手动给出经纬度。但这不是正确的方法。没有人知道每个城市的经纬度。

    但是如何编写javascript以便在选择城市名称时,例如 地图下拉菜单中的“孟买”发生变化,并在地图上显示餐厅符号。 如何在列表中获取餐厅名称,在 所选城市。 按食品名称搜索。

最终实现上述所需功能需要哪些正确代码?请提供代码。

【问题讨论】:

【参考方案1】:

您无法仅使用地图 API 完成所有这些操作。您需要地理编码 API 来获取您所在城市的经度:

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

那里的文档有大量信息,但 tl;dr 是:像这样调用 API: https://maps.googleapis.com/maps/api/geocode/json?address=Toledo&amp;key=API_KEY 你会得到一些带有“bounds”键的JSON。获取您的boundbox,并将其传递给places API:

https://developers.google.com/maps/documentation/javascript/places#TextSearchRequests

【讨论】:

【参考方案2】:

你应该使用谷歌的places api:https://developers.google.com/places/

尝试使用文档中的代码开始: https://developers.google.com/places/webservice/search#PlaceSearchRequests

【讨论】:

以上是关于如何通过输入城市/城镇名称从谷歌地图获取餐厅列表?的主要内容,如果未能解决你的问题,请参考以下文章

JSON,如何从谷歌地图 API 获取所有国家

如何从谷歌地图自动完成 api 获取邮政编码

从谷歌地图上的标记中获取地名

给定两个位置,如何从谷歌地图获取所有纬度和经度

从谷歌地图中获取拖拽的路线数据

如何从谷歌地图API获取拥堵信息