0

これは私が取り組んでいるコードです:

http://jsfiddle.net/njDvn/36/

奇妙なことに、オートサジェストは、ジオコード ボタンをクリックした後の最後の入力ボックスでのみアクティブになるようです。これは、作業中のコードです:

<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>

何を与える? これまでにこれを行ったことはありませんが、これは私がまとめようとした最初のスクリプトです。

4

2 に答える 2

1

これは、次の行によるものです。

var autocomplete = new google.maps.places.Autocomplete(input, options);

inputリンク先:

var input = document.getElementById('searchTextField');

これが最後の入力ボックスです。

さらに、Geocode ボタンのクリックに呼び出しをgeocodeバインドしているため、Google オートコンプリート リンクの前にボタンをクリックする必要があります。getLatLng()

<input type="button" value="Geocode" onclick="getLatLng()">

Google オートコンプリートはこの関数内からアクティブになるため、ボタンを押さないと初期化できません。

于 2012-11-03T21:36:39.290 に答える
0

関数内でオートコンプリートを初期化しているgetLatLngため、ボタンがクリックされて関数が呼び出されるまで使用できません

于 2012-11-03T21:41:32.970 に答える