问题描述
好的,我已经在测试站点上设置了地图和自动完成字段.
Ok so I have set up a map and an autocomplete field on a testing site.
我的目标是让用户在字段中输入他/她的地址,然后在他/她点击时根据提供的信息确定离他们最近的商店.
My goal is to get the user to input his/her address into the field and then when he/she clicks confirm work out the closest store to them based on the information provided.
我有每个商店的经纬度,在自动完成的帮助下,我现在有用户地址的经纬度,但是当我使用文档中提供的 computeDistanceBetween 方法时,我得到 NaN 而不是所需的结果.
I have the lat/long for each store and with the help of autocomplete I now have the lat/long of the users address but when I use the computeDistanceBetween method provided in the documentation I get NaN instead of a desired result.
这里是一个测试站点的链接,以获得一个想法 - http://dev.touch-akl.com/map/
Here is a link to the test site to get an idea - http://dev.touch-akl.com/map/
以下是我迄今为止尝试过的
And Below is what I have tried so far
//----------------------------------------------------------------
//--- 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.sphereal.computeDistanceBetween 要求您在使用字符串时为其提供两个 google.maps.LatLng 对象,这将不起作用.以下应该...
google.maps.geometry.spherical.computeDistanceBetween requires that you feed it two google.maps.LatLng objects whereas you are using strings, and that won't work. The following should...
$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));
});
这篇关于使用谷歌地图 computeDistanceBetween 获取最近的位置返回 NaN的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!