Google Maps JS API相当于URL

时间:2015-02-17 16:21:58

标签: javascript angularjs google-maps google-maps-api-3

我刚刚意识到由于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获取相同的数据?

2 个答案:

答案 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