我的脚本有问题。 我已正确设置所有内容,但地理编码不起作用,当我以创建的表单输入城市名称然后单击“地理编码器”时,什么也没有发生。 这是我的代码:
变量:
var geocoder;
var map;
var markers = new Array();
var i = 0;
地理编码脚本:
<!-- GEOCODER -->
function codeAddress() {
var address = document.getElementById("address").value;
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
document.getElementById('lat').value = results[0].geometry.location.lat();
document.getElementById('lng').value = results[0].geometry.location.lng();
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
markers.push(marker);
if(markers.length > 1)
markers[(i-1)].setMap(null);
i++;
} else {
alert("Le geocodage n\'a pu etre effectue pour la raison suivante: " + status);
}
<!-- GEOCODER -->
表格:
<div>
Adresse : <input id="address" type="text" value="paris">
<input type="button" value="Geocoder" onsubmit="codeAddress()">
</div>
完整代码(仅html):http://jsfiddle.net/hCmQb/
最佳答案
地理编码器未运行的原因是:
<input type="button" value="Geocoder" onsubmit="codeAddress()">
您不需要“onsubmit”,而需要“onclick”:
<input type="button" value="Geocoder" onclick="codeAddress()">
您遇到的另一个问题是您的“map”变量是初始化函数的本地变量。变化:
var map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
至:
map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
关于javascript - 谷歌地图地理编码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15187368/