-2
我已經試圖找到答案,但沒有。如何增加谷歌地圖API的距離?
我創建一個網站,用戶可以搜索並選擇與谷歌的地理編碼API的地方,然後我得到那個地方的界限,但隨後用戶應該能夠提高這些界限。
例如,用戶可以在5公里增加距離那個地方,所以我將能夠增加5公里界限。
這是結果,當一些地方的用戶seacrh:
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 42.15420480,
"lng" : -6.19020910
},
"southwest" : {
"lat" : 32.403740,
"lng" : -31.2751580
}
},
現在我需要增加邊界與5公里。 考慮到我必須將km轉換爲度數,我該如何在JavaScript中做到這一點?
非常感謝。
編輯
我tryed這得益於@geocodezip但事情並不qorking。我試着說「here」在「目的地點給定的距離和從起點的方位」,但有些東西是不正確的。這是代碼:
//convert decimal to degree
function getDD2DMS(dms, type){
var sign = 1, Abs=0;
var days, minutes, secounds, direction;
if(dms < 0) { sign = -1; }
Abs = Math.abs(Math.round(dms * 1000000.));
//Math.round is used to eliminate the small error caused by rounding in the computer:
//e.g. 0.2 is not the same as 0.20000000000284
//Error checks
if(type == 'lat' && Abs > (90 * 1000000)){
//alert(' Degrees Latitude must be in the range of -90. to 90. ');
return false;
} else if(type == 'lng' && Abs > (180 * 1000000)){
//alert(' Degrees Longitude must be in the range of -180 to 180. ');
return false;
}
days = Math.floor(Abs/1000000);
minutes = Math.floor(((Abs/1000000) - days) * 60);
secounds = (Math.floor(((((Abs/1000000) - days) * 60) - minutes) * 100000) *60/100000).toFixed();
days = days * sign;
if(type == 'lat') direction = days<0 ? 'S' : 'N';
if(type == 'lng') direction = days<0 ? 'W' : 'E';
//else return value
return (days * sign) + 'º ' + minutes + "' " + secounds + "'' " + direction;
}
//calculate
var R = 6371; // km
var d = 10; //km
var brng = 0; //0 vertical, 90 horizontal
var lat1 = (42.15420480).toRad();
var lon1 = (-6.19020910).toRad();
var lat2 = Math.asin(Math.sin(lat1)*Math.cos(d/R) + Math.cos(lat1)*Math.sin(d/R)*Math.cos(brng));
var lon2 = lon1 + Math.atan2(Math.sin(brng)*Math.sin(d/R)*Math.cos(lat1), Math.cos(d/R)-Math.sin(lat1)*Math.sin(lat2));
console.log('lat2 = ' + getDD2DMS(lat2, 'lat'));
console.log('lon2 = ' + getDD2DMS(lon2, 'lng'));
結果與鏈接不一樣。 幫幫我。非常感謝你。
問問題不是更好嗎,而不是負面評估問題?謝謝。的 – Pedro
可能重複[如何從度轉化爲米的距離?(http://stackoverflow.com/questions/4102520/how-to-transform-a-distance-from-degrees-to-metres) – duncan
@duncan謝謝,但這個想法並不是把度數轉換成度量,而是相反,公里或度量轉化爲度數,或者至少知道多少度數等於1km(或者更小)。 – Pedro