0

これは私が作業しているコードです:

http://jsfiddle.net/njDvn/75/

var GeoCoded = {done: false};

$(document).ready(function(){
    console.log('ready!');
    autosuggest();
    console.log($('#myform input[type="submit"]'));
    $('#myform').on('submit',function(e){


        if(GeoCoded.done)
            return true;

        e.preventDefault();
        console.log('submit stopped');
        var geocoder = new google.maps.Geocoder();
        var address = document.getElementById('location').value;

        $('#myform input[type="submit"]').attr('disabled',true);

        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());
                //if you only want to submit in the event of successful geocoding, you can only trigger submission here.
                GeoCoded.done = true;
                $('#myform').submit();
            } else {
                console.log("Geocode was not successful for the following reason: " + status);
                //enable the submit button
                $('#myform input[type="submit"]').attr('disabled',false);
            }


        });        

    });    

});

これは私が望む方法で機能しますが、誰かがオートコンプリートをクリックしたときにジオコードを完了したかったのです。そのため、ユーザーが何かを入力して autosuggest リストから提案をクリックすると、結果をクリックするとジオコード呼び出しが実際に完了します。

これが可能かどうかを誰かに教えてもらえれば、本当に感謝しています。</p>

4

1 に答える 1

1

オートコンプリートには、ジオコーディングが自動的に組み込まれます。例はこちら。

編集:

その例の要点は次のとおりです。

オートコンプリート コントロールを作成するための重要な行は次のとおりです。

var input = document.getElementById('searchTextField');
var options = {
    types: [],
    componentRestrictions: {country: 'us'}
};

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

Places ライブラリもロードする必要があります。

<script src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"></script>

そしてあなたのHTMLで:

<input id="searchTextField" type="text" size="50" value="">

ちなみに、「ジオコーダーにオートコンプリートを追加する」わけではありません。Places Autocomplete クラスには、ジオコーディング機能が含まれています。

于 2012-11-12T11:38:34.003 に答える