Javascript执行-googleapi
这是我使用的代码:Javascript执行-googleapi,javascript,google-api,Javascript,Google Api,这是我使用的代码: <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 = d
<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>
奇怪的是,autosuggest似乎只在我点击geocode按钮后的最后一个输入框中激活。这是我使用的代码:
<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>
函数getLatLng(){
var geocoder=new google.maps.geocoder();
var address=document.getElementById('address')。值;
var input=document.getElementById('searchTextField');
变量选项={
类型:[],
};
var autocomplete=new google.maps.places.autocomplete(输入,选项);
地理编码({
“地址”:地址
},功能(结果、状态){
if(status==google.maps.GeocoderStatus.OK){
var latLng=results[0]。geometry.location;
$('#lat').val(结果[0].geometry.location.lat());
$('#lng').val(结果[0].geometry.location.lng());
}否则{
警报(“地理编码因以下原因未成功:“+状态”);
}
});
}
有什么好处?我以前从未使用过此脚本,但这是我尝试编写的第一个脚本。这是由于以下几行:
var autocomplete = new google.maps.places.Autocomplete(input, options);
input
将其链接到:
var input = document.getElementById('searchTextField');
这是最后一个输入框
此外,您必须在Google自动完成链接之前单击geocode
按钮,因为您已将getLatLng()
调用绑定到单击geocode按钮:
<input type="button" value="Geocode" onclick="getLatLng()">
由于Google autocomplete在此函数中激活,因此您无法在不按下按钮的情况下对其进行初始化。您正在
getLatLng
函数中初始化autocomplete,因此它不是;'在单击按钮并调用函数之前,此功能不可用,但为什么我必须在searchTextField充当自动搜索器之前单击geocode按钮?我明白了,你能解释一下我如何将其放入自己的函数中,这样我就不必单击按钮了吗?啊,我明白了,你能解释一下我如何把它放在它自己的函数中,这样我就不必点击按钮了吗?你从来不调用函数。需要在onload处理程序中,以便在调用函数时输入存在。顺便说一句,他反对Google Maps TOS在没有实现地图编码的情况下使用地理编码。我已经在他们的论坛上查看过了,可以在下一页中显示,因为用户实际使用的是地理编码。