我的脚本有问题。 我已正确设置所有内容但地理编码不起作用,当我以我创建的形式输入城市名称时,我点击“地理编码器”它没有任何反应。 这是我的代码:
变量:
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/
答案 0 :(得分:2)
地理编码器未运行的原因是:
<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);