这是我从:
的代码http://jsfiddle.net/njdvn/36/
很奇怪的是,在我单击地理编码按钮后,AutoSuggest似乎仅在最后一个输入框上激活。这是IM的代码:
<html>
<head>
<script src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"></script>
<script>
function getLatLng() {
var geocoder = new google.maps.Geocoder();
var address = document.getElementById('address').value;
var input = document.getElementById('searchTextField');
var options = {
types: [],
};
var autocomplete = new google.maps.places.Autocomplete(input, options);
geocoder.geocode({
'address': address
}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var latLng = results[0].geometry.location;
$('#lat').val(results[0].geometry.location.lat());
$('#lng').val(results[0].geometry.location.lng());
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
</script>
</head>
<body>
<div>
<input id="address" type="textbox" value="Sydney, NSW">
<input type="button" value="Geocode" onclick="getLatLng()">
<input id="lat" type="textbox" value="lat">
<input id="lng" type="textbox" value="lng">
<input id="searchTextField" type="text" size="50" value="">
</div>
</body>
</html>
什么给?我以前从未有过这个,但这是我试图组合的第一个脚本。
这是由于以下行:
var autocomplete = new google.maps.places.Autocomplete(input, options);
input
将其链接到:
var input = document.getElementById('searchTextField');
这是最后一个输入框。
此外,您必须在Google自动完成链接之前单击geocode
按钮,因为您已将getLatLng()
调用绑定到单击地理标准按钮:
<input type="button" value="Geocode" onclick="getLatLng()">
因为Google自动完成从此功能内部激活,因此您不能在不按按钮的情况下初始化它。
您是在getLatLng
函数中初始化自动完成的,因此它是不可用的,直到单击按钮并称为函数