これは私が持っているものです:
Googleマップv3、ジオコードを使用しています。
関数 showAddress( param ) を作成しました。これはパラメーターを取り、アドレスであるかどうかを確認し、そうであればコードを返し、そうでなければ0を返します。
リンクを確認すると、このコードを書いていることがわかりますが、「未定義」というアラートが表示されます。
ここで何が問題なのですか?
これは私が持っているものです:
Googleマップv3、ジオコードを使用しています。
関数 showAddress( param ) を作成しました。これはパラメーターを取り、アドレスであるかどうかを確認し、そうであればコードを返し、そうでなければ0を返します。
リンクを確認すると、このコードを書いていることがわかりますが、「未定義」というアラートが表示されます。
ここで何が問題なのですか?
おお、やっと事件に気がついた。問題は Google マップにはありません。コールバックからではなく、結果を返してshowAddress
います。だから、それは実際にはどこにも行きません。コールバックも使用して結果を表示する必要があります。ちょうどこのような:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=geometry&sensor=false"></script>
<script type="text/javascript">
var geocoder;
function showAddress(address, callback)
{
if (typeof(geocoder) == 'undefined') geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
callback(results[0].geometry.location);
} else {
callback(0);
}
});
}
$(document).ready(function(){
$('#address').blur(function(){
showAddress( $('#address').val(), function(result)
{
if (result === 0)
alert('Adressen not found');
else{
alert(result);
$('#cords').val( result );
}
});
});
});
</script>
<input type="text" name="address" id="address">
ここで動作を確認できます: http://jsfiddle.net/BgDQc/2/