J'ai déjà googlé en essayant de trouver la réponse, mais rien.Comment augmenter la distance avec google maps api?
Je crée un site où l'utilisateur peut rechercher et choisir un endroit avec api de géocodage de Google, alors j'obtiens les limites de cet endroit, mais alors l'utilisateur devrait pouvoir augmenter ces limites. Par exemple, l'utilisateur pourrait augmenter la distance de cet endroit dans 5 km, donc je serais en mesure d'augmenter les limites de 5 km.
Ceci est le résultat lorsque l'utilisateur d'un endroit Critères de recherche:
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 42.15420480,
"lng" : -6.19020910
},
"southwest" : {
"lat" : 32.403740,
"lng" : -31.2751580
}
},
Maintenant je dois augmenter les limites à 5km. Comment puis-je faire cela en javascript étant donné que je dois convertir km en degrés?
Merci beaucoup.
EDIT
I tryed cela grâce à @geocodezip mais quelque chose ne qorking. J'essaie comme il est dit here à "Point de destination distance donnée et relèvement du point de départ", mais quelque chose ne fonctionne pas correctement. Ceci est le code:
//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'));
Le résultat est différent de celui du lien. Aidez-moi. Merci beaucoup.
Ne serait-il pas préférable de me dire ce qui ne va pas avec la question, au lieu d'évaluer négativement la question? Je vous remercie. – Pedro
duplicata possible de [Comment transformer une distance de degrés en mètres?] (Http://stackoverflow.com/questions/4102520/how-to-transform-a-distance-from-degrees-to-metres) – duncan
@duncan merci, mais l'idée n'est pas de convertir les degrés en metters, mais le contraire, km ou metters en degrés, ou au moins de savoir combien de degrés sont iqual à 1km (ou metters). – Pedro