Google 在 JavaScript 中映射 api 客户端 json

Google maps api client side json in javascript

本文关键字:api 客户端 json 映射 JavaScript Google      更新时间:2023-09-26

所以我确信我的问题有一个简单的解决方案,但我似乎找不到答案。我有一个应用程序,有两个用户将地图标记放在谷歌地图上(他们可以看到彼此的标记)。我想找到平均纬度和经度,然后使用地点 API 从该平均值中获取包含附近位置的 JSON,以便用户可以决定中间立场。

我的问题发生在获取 JSON 时。因为它是跨域的,所以我不能只使用 AJAX 调用(并且 API 不支持 jsonp)。所以我希望在javascript中做这个客户端。有许多教程介绍了当屏幕上显示实际地图时如何使用地点 API,那么如果没有地图和 JSON 数据,我怎么能做到这一点呢?

我的应用程序正在使用JavaScript,JQuery和Java(Jersey REST服务)。我读到有一些方法可以设置跨域调用,但这些似乎都适用于 PHP。

如果您的应用在地图上显示"地点"API 数据,则该地图必须由 Google 提供。

如果您的应用程序在不显示 Google 地图的页面或视图上显示"放置 API 数据",则必须显示包含该数据的"由 Google 提供支持"徽标。例如,如果您的应用程序在一个选项卡上显示地点列表,而在另一个选项卡上显示包含这些地点的 Google 地图,则第一个选项卡必须显示"由 Google 提供支持"徽标。

以下ZIP文件包含桌面,Android和iOS应用程序的正确大小的"由Google提供支持"徽标。您不得以任何方式调整这些徽标的大小或修改这些徽标。

下载:由谷歌提供支持.zip

在这里阅读: https://developers.google.com/maps/documentation/javascript/places#LogoRequirements

要使用地点库,只需在 API 调用中包含该库,并为地点服务提供 HTML 元素而不是地图对象:

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?libraries=places"></script>

法典:

var request = {
    location: new google.maps.LatLng(52.48,-1.89),
    radius: '500',
    types: ['store']
};
var container = document.getElementById('results');
var service = new google.maps.places.PlacesService(container);
service.nearbySearch(request, callback);
function callback(results, status) {
    if (status == google.maps.places.PlacesServiceStatus.OK) {
        for (var i = 0; i < results.length; i++) {
            container.innerHTML += results[i].name + '<br />';
        }
    }
}

JSFiddle 演示