我刚刚意识到由于CORS,我无法直接调用我的AngularJS应用程序中的URL。因此,我希望我必须使用Javascript API。
以下链接为我提供了我想要的数据:
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=' + myPosition.lat + ',' + myPosition.lng + '&rankby=distance&key=' + key + '&sensor=false&type=clothing_store
但是,我无法想象如何使用Javascript API实现相同的功能。我在文档中找到this,但我不需要地图 - 只需要附近商店的名称和坐标。
如何使用Javascript API获取相同的数据?
答案 0 :(得分:0)
如果您已经拥有Google Maps for JS API Map Key,则可以从服务器端执行a Places query。但请注意,您仅限于1000 queries per day。
您可以直接在您的客户端执行此操作并避免出现CORS问题,但以前我是如何使用PHP完成此操作的:
<?php
function ReturnEmpty()
{
// Something's wrong, return an empty set.
echo '{"d":[]}';
}
$q = (isset($_GET["query"])) ? $_GET["query"] : 'NULL';
if( $q == "" )
{
ReturnEmpty();
}
else
{
// I'm showing the "textsearch" option, but there is also a "nearbysearch" option..
$url = "https://maps.googleapis.com/maps/api/place/textsearch/json?query="
. urlencode($q)
. "&key=YOUR_GOOGLE_MAPS_KEY_HERE";
$json = file_get_contents($url);
$data = json_decode($json, true);
echo $data;
}
?>
答案 1 :(得分:0)
您可以在nearbySearch(request, callback)
上使用google.maps.places.PlacesService(map)
方法。
在您的情况下,request
应该有location
(包含lat和lng)和radius
。
有代码示例here。