javascript - 使用谷歌地图 computeDistanceBetween 获取最近的位置返回 NaN

标签 javascript jquery google-maps google-maps-api-3

好的,我已经在测试站点上设置了 map 和自动完成字段。

我的目标是让用户在该字段中输入他/她的地址,然后当他/她点击确认时,根据提供的信息找出离他们最近的商店。

我有每个商店的纬度/经度,在自动完成的帮助下,我现在有用户地址的纬度/经度,但是当我使用文档中提供的 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));


    });

最佳答案

google.maps.geometry.spherical.computeDistanceBetween 要求您在使用字符串时为其提供两个 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));
});

关于javascript - 使用谷歌地图 computeDistanceBetween 获取最近的位置返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18822948/

相关文章:

javascript - 刷新 URL 中包含 ID 的页面时找不到bundle.js

javascript - 如何让 angular.js 不覆盖其他库的链接功能?

jquery - .append()、选择列表和 Chrome 81 的问题

google-maps - Google Maps MarkerLabel不是功能

javascript:循环嵌套对象/数组并添加属性

javascript - Vue 3 从字符串动态加载组件

jquery - HTML5 datalist - 模拟点击事件暴露所有选项

javascript - 重置表并停止表复制

javascript - 检查多边形是否在视口(viewport)中

html - 使用 css 和 html 的圆形谷歌地图