0

私は JavaScript とジオコーディングが初めてで、この 2 つを一緒に使用する方法を学ぼうとしています。

ユーザーが郵便番号を入力するフォームを作成し、それを経度と緯度に変換するコードを作成しました。郵便番号を含めてアラートを表示して、どれだけの作業が行われたかを把握できるようにしました(独学に役立つようにもっと)

入力された郵便番号を含むアラートボックスを返しますが、他には何もありません!?

アラートボックスに経度と緯度を表示したいと思います。経度と緯度があることがわかったら、それらをMySQLテーブルに追加することを検討しますが、値を取得したことがわかったら心配します

コードは次のとおりです。

    <html>
<head>
<script type="text/javascript"> 
function getPostCode() {
var postcode = document.getElementById("pcode").value;
    alert("Your Post Code is: " + postcode);
var gc = new google.maps.Geocoder();
gc.geocode({'address' : postcode}, function(results, status){ 
if (status == google.maps.GeocoderStatus.OK) {
        alert( "latitude : " + results[0].geometry.location.lat() ); 
        alert( "longitude : " + results[0].geometry.location.lng() ); 
} else {
    alert("Geocode was not successful for the following reason: " + status);
}
}); 
}
</script>
</head>
<body>
 <form name="search" METHOD="GET" onsubmit="return getPostCode()">
 Post Code: <input type="text" name="pcode" />
 <input type="submit" value="Search"/>
 </form>
</body>
</html>

どんな助けでも大歓迎です

- - - - - - - - アップデート - - - - - - - - - -

Matt さん、これまでご協力いただきありがとうございました。値を段落タグに出力するようにコードを編集し、アラート ボックスを削除しましたが、それでも緯度と経度が表示されません。ジオコード コードは正しいですか? 郵便番号は取得しますが、緯度と経度または誤差は取得しません。

    <html>
<head>
<script type="text/javascript"> 
function getPostCode() {
var postcode = document.getElementById("pcode").value;
    var postcode = "Your Post Code is: " + postcode;
    document.getElementById("p1").innerHTML=postcode;
var mygc = new google.maps.Geocoder();
mygc.geocode({'address' : postcode}, function(results, status){ 
if (status == google.maps.GeocoderStatus.OK) {
        var lat = results[0].geometry.location.lat();
document.getElementById("lat").innerHTML=lat; 
        var lat = results[0].geometry.location.lng();
document.getElementById("long").innerHTML=long; 
} else {
    var err = "Geocode was not successful for the following reason: " + status;
document.getElementById("error").innerHTML=err;
}
}); 
}
</script>
</head>

<body>

 <form name="search">
 Post Code: <input type="text" name="pcode" />
 <input type="button" value="Search" onclick="getPostCode()" />
 </form>

<p id="p1"></p>
<p id="long"></p>
<p id="lat"></p>
<p id="error"></p>


</body>
</html> 
4

1 に答える 1

0

API の v3 を使用しているとのことですが、v3 用に google.maps.geocoder を構築する必要はありません。これはバージョン 2 のものです。それに加えて、<script>タグを使用してページに Google の Javascript を含めることさえしていません。Javascript コンソールを見てください。おそらくエラーが発生しています。

v3 でジオコーディングするには、次の URL に対してリクエストを行うだけです。

http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false

応答はすぐに解析できる JSON です。クラス、インスタンス化などは必要ありません。

それはあなたがやろうとしていることですか?

于 2012-07-13T15:55:58.463 に答える