9

わかりましたので、テスト サイトにマップとオートコンプリート フィールドを設定しました。

私の目標は、ユーザーに自分の住所をフィールドに入力してもらい、クリックすると、提供された情報に基づいて最寄りの店舗を確認することです。

各店舗の緯度/経度を取得し、オートコンプリートの助けを借りてユーザーの住所の緯度/経度を取得しましたが、ドキュメントで提供されている computeDistanceBetween メソッドを使用すると、目的の結果ではなく NaN が返されます。

アイデアを得るためのテストサイトへのリンクは次のとおりです - http://dev.touch-akl.com/map/

そして、以下は私がこれまでに試したことです

    //----------------------------------------------------------------
    //--- Search Box -------------------------------------------------

    var input = document.getElementById('address');
    var $confirm = $('#confirm');

    var options = {
       types: ['geocode'],
       componentRestrictions: {country: 'nz'}//Turkey only
    };        

    var autocomplete = new google.maps.places.Autocomplete(input,options);
    autocomplete.bindTo('bounds', map);

    $confirm.click(function(){

        var _street = $('#address').val();
        var place = autocomplete.getPlace();
        var _coordinates = place.geometry.location.toString();
        var _delivery = _coordinates.substring(1, _coordinates.length - 1);
        var _kCord = '-36.874694,174.735292';
        var _pCord = '-36.858317,174.782284'

        console.log(_coordinates);
        console.log(_delivery);

        console.log(google.maps.geometry.spherical.computeDistanceBetween(_pCord, _delivery));
        console.log(google.maps.geometry.spherical.computeDistanceBetween(_kCord, _delivery));


    });
4

1 に答える 1

34

google.maps.geometry.spherical.computeDistanceBetween では、文字列を使用しているときに 2 つの google.maps.LatLng オブジェクトをフィードする必要がありますが、これは機能しません。以下は...

$confirm.click(function(){
    var _street = $('#address').val();
    var place = autocomplete.getPlace();
    var _coordinates = place.geometry.location; //a google.maps.LatLng object
    var _kCord = new google.maps.LatLng(-36.874694, 174.735292);
    var _pCord = new google.maps.LatLng(-36.858317, 174.782284);

    console.log(_coordinates);

    console.log(google.maps.geometry.spherical.computeDistanceBetween(_pCord, _coordinates));
    console.log(google.maps.geometry.spherical.computeDistanceBetween(_kCord, _coordinates));
});
于 2013-09-16T08:36:19.053 に答える