![](/img/trans.png)
[英]Google Maps API (3) computeDistanceBetween returns NaN
[英]Use google maps computeDistanceBetween to get the closest location returns NaN
好的,我在测试网站上设置了一个地图和一个自动填充字段。
我的目标是让用户将他/她的地址输入到该字段中,然后当他/她点击确认根据提供的信息确定最近的商店。
我有每个商店的lat / long,并且在自动完成的帮助下,我现在有lat / long的用户地址但是当我使用文档中提供的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));
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.