javascript - findPlaceFromQuery 返回错误的“PlacesServiceStatus”
问题描述
我遵循了https://developers.google.com/maps/documentation/javascript/places#find_place_from_query中 findPlaceFromQuery() 方法的代码示例。
我有查询部分的确切代码。但是,PlacesServiceStatus
返回的总是不行。我尝试更改对象query
中的值,request
但结果始终相同。
知道为什么会这样吗?
我在下面粘贴相关的代码片段以方便参考。它与示例代码基本相同。我只是else
在末尾添加了该子句:
var map;
var service;
var infowindow;
function initMap() {
var mapCenter = new google.maps.LatLng(-33.8617374,151.2021291);
map = new google.maps.Map(document.getElementById('map'), {
center: mapCenter,
zoom: 15
});
var request = {
query: 'Museum of Contemporary Art Australia',
fields: ['photos', 'formatted_address', 'name', 'rating', 'opening_hours', 'geometry'],
service = new google.maps.places.PlacesService(map);
service.findPlaceFromQuery(request, callback);
}
function callback(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
var place = results[i];
createMarker(results[i]);
}
}
else{
alert("status bad");
}
}
解决方案
人们需要注意一些预先请求才能使此代码正常工作。要使场所 API 请求正常工作,必须执行以下操作:
- 必须像这样从调用方法显式添加位置库
&libraries=places
。这是因为地方 API 不是地图 API 的标准。
<script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY& libraries=places&callback=YOUR_CALLBACK_METHOD"></script>
- 使用的 API 密钥必须具有来自 google 控制台的正确位置凭据。这个链接解释了如何做到这一点。
推荐阅读
- java - java中adb命令的等效版本?
- java - 跨调用链传递可选参数
- java - 需要通过java查询tile38
- mysql - 如何将原始查询(Sequelize)的结果返回到 GraphQL
- html - Ionic 3 cordova 按钮点击错误
- javascript - 如何在 Camunda JavaScript 服务任务中实例化“执行”对象?
- pandas - 2个数据帧的列之间的相关系数
- laravel - Laravel 5.6 - 错误页面上的用户状态检查不确认登录用户
- numbers - 数 n 使得 sigma(F(n)) > 2*F(n) 其中 F(n) 是第 n 个斐波那契数
- testing - 如何去测试多个包