我是javascript的新手,我正在做一个需要谷歌地图的项目。我需要使用文本搜索功能来查找附近的兽医请求,邮政编码不起作用,我有几个问题。
我需要API密钥才能使用服务场所吗?
我复制了谷歌地图的代码文档,但不理解回调函数,我不知道我做的事情是否有错。如果有人知道代码出了什么问题,我将非常感谢您的回复。
这是我的代码:
<script src="https://maps.googleapis.com/maps/api/js?callback=ini&sensor=false&libraries=places"></script>
<script type="text/javascript">
var map;
var vet= " veterinarys";
ini();
function ini()
{
var mapOptions =
{
center: new google.maps.LatLng(37.7831, -122.4039 ),
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map"), mapOptions);
var request =
{
radius: '500',
query: vet,
type: ['veterinary_care']
};
service = new google.maps.places.PlacesService(map);
service.textSearch(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]);
}
}
}
</script>
- API键是可选的,但您必须注意这一点
谷歌地图JavaScript API不需要API键即可正常工作。但是,我们强烈建议您使用API Console键加载Maps API,该键允许您监控应用程序的Maps API使用情况。
-
如果异步加载资源,则脚本URL中的回调参数是必需的。在这种情况下,一旦加载谷歌地图脚本,它就会调用您的函数。在您开始使用它的情况下,您应该向
<script>
标记添加async属性,并从代码中删除直接的ini()
函数调用。在这里,您可以找到回调参数的文档说明 -
您的代码不起作用,因为您指定了
radius
参数,该参数也需要指定location
。如果您要将与mapOptions
中的center
参数相同的位置添加到请求对象,那么它应该会起作用。只需查看可用选项描述即可。
你从@Mihails Boturins的回答中得到了其余的帮助。我将回答你在上次评论中提出的问题。
您的代码中没有定义这样的createMarker
函数。你必须像这个一样创建这个函数