【发布时间】:2017-10-13 11:53:38
【问题描述】:
我是 Google 地图 API 的新手,您能帮忙吗?到目前为止,我设法获得了自动完成的输入。我让地图运行起来。从这里我如何将两者结合起来,以便当我从自动完成列表中选择一个区域(输入)时,地图会转到所选区域。 我找到了一种使用自动完成功能启动地图的方法。但我希望它们单独启动并使输入影响地图。这是我的代码,我从这里去哪里。
<!DOCTYPE html>
<html>
<body>
<input id="pac-input" class="controls" type="text" placeholder="Enter a location"/>
<pre id="placeInfo"></pre>
<div id="map"></div>
<script>
var map;
function initMap1() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
zoom: 8
});
}
function initMap2() {
var input = document.getElementById('pac-input');
var autocomplete = new google.maps.places.Autocomplete(input);
autocomplete.addListener('place_changed', function() {
var place = autocomplete.getPlace();
if (!place.geometry) {
window.alert("Autocomplete's returned place contains no geometry");
return;
}
var address = '';
if (place.address_components) {
address = [
(place.address_components[0] && place.address_components[0].short_name || ''),
(place.address_components[1] && place.address_components[1].short_name || ''),
(place.address_components[2] && place.address_components[2].short_name || '')
].join(' ');
}
document.getElementById('placeInfo').innerHTML = '<div><strong>' + place.name + '</strong><br>' + address;
});
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=[API-key]&libraries=places&callback=initMap2"
async defer></script>
<script src="https://maps.googleapis.com/maps/api/js?key=[API-key]&callback=initMap1"
async defer></script>
</body>
</html>
【问题讨论】:
-
You have included the Google Maps API multiple times on this page. This may cause unexpected errors.
标签: javascript jquery google-maps autocomplete google-api