У меня есть приложение asp.net mvc, в котором хранятся данные пользователей (основная информация, адресная информация и т. Д.). Теперь мне нужно, чтобы пользователь X искал другого пользователя, а затем отобразил всех других пользователей Y вместе с расстоянием между X и Y, используя их адресную информацию. Адресная информация пользователя содержит адрес, город, штат, почтовый индекс и страну. Я очень новичок в геолокации, карте google. Пожалуйста, предложите мне «как рассчитать фактическое расстояние между двумя адресами в asp.net mvc».Asp.net mvc вычисляет расстояние между двумя адресами
0
A
ответ
2
Взято из: http://www.geodatasource.com/developers/c-sharp
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//::: :::
//::: This routine calculates the distance between two points (given the :::
//::: latitude/longitude of those points). It is being used to calculate :::
//::: the distance between two locations using GeoDataSource(TM) products :::
//::: :::
//::: Definitions: :::
//::: South latitudes are negative, east longitudes are positive :::
//::: :::
//::: Passed to function: :::
//::: lat1, lon1 = Latitude and Longitude of point 1 (in decimal degrees) :::
//::: lat2, lon2 = Latitude and Longitude of point 2 (in decimal degrees) :::
//::: unit = the unit you desire for results :::
//::: where: 'M' is statute miles :::
//::: 'K' is kilometers (default) :::
//::: 'N' is nautical miles :::
//::: :::
//::: Worldwide cities and other features databases with latitude longitude :::
//::: are available at http://www.geodatasource.com :::
//::: :::
//::: For enquiries, please contact [email protected] :::
//::: :::
//::: Official Web site: http://www.geodatasource.com :::
//::: :::
//::: GeoDataSource.com (C) All Rights Reserved 2014 :::
//::: :::
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
private double distance(double lat1, double lon1, double lat2, double lon2, char unit) {
double theta = lon1 - lon2;
double dist = Math.Sin(deg2rad(lat1)) * Math.Sin(deg2rad(lat2)) + Math.Cos(deg2rad(lat1)) * Math.Cos(deg2rad(lat2)) * Math.Cos(deg2rad(theta));
dist = Math.Acos(dist);
dist = rad2deg(dist);
dist = dist * 60 * 1.1515;
if (unit == 'K') {
dist = dist * 1.609344;
} else if (unit == 'N') {
dist = dist * 0.8684;
}
return (dist);
}
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//:: This function converts decimal degrees to radians :::
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
private double deg2rad(double deg) {
return (deg * Math.PI/180.0);
}
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//:: This function converts radians to decimal degrees :::
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
private double rad2deg(double rad) {
return (rad/Math.PI * 180.0);
}
Console.WriteLine(distance(32.9697, -96.80322, 29.46786, -98.53506, "M"));
Console.WriteLine(distance(32.9697, -96.80322, 29.46786, -98.53506, "K"));
Console.WriteLine(distance(32.9697, -96.80322, 29.46786, -98.53506, "N"));
0
Сначала вам нужно будет получить координаты ваших адресов клиентов с Google Map Api. Это можно сделать так: http://dotnet.dzone.com/news/using-google-geocode-get-gps
Тогда вы можете получить расстояние между 2 координатами:
var pointA = DbGeography.FromText("POINT (-2.232121 53.477724)", 4326);
var pointB = DbGeography.FromText("POINT (-2.231105 53.478121)", 4326);
var distanceAB = pointA.Distance(pointB); //distanceAB = 80.6382796064941 metres
Смежные вопросы
- 1. Расстояние между двумя адресами
- 2. найти расстояние между двумя адресами Великобритании
- 3. android app: получить расстояние между двумя адресами
- 4. Получите географическое расстояние между двумя IP-адресами?
- 5. Рассчитать расстояние между двумя адресами php
- 6. php mysql вычисляет расстояние между двумя точками
- 7. STDistance - вычисляет расстояние между двумя объектами
- 8. Используйте mapkit, чтобы рассчитать расстояние между двумя адресами?
- 9. PHP: расстояние между двумя адресами с Картами Google?
- 10. Как найти расстояние между двумя адресами? (Сторона сервера Java)
- 11. Java - API карт Google - расстояние между двумя адресами
- 12. Использование ajax и json для ge расстояние между двумя адресами
- 13. Расстояние между двумя геолокациями в java: NaN
- 14. Расстояние между двумя метками
- 15. Расстояние между двумя координатами
- 16. Расстояние между двумя значениями
- 17. Расстояние между двумя точками
- 18. Расстояние между двумя прямоугольниками
- 19. Расстояние между двумя строками
- 20. Расстояние между двумя кривыми
- 21. как рассчитать расстояние между двумя местоположениями
- 22. Расстояние между двумя точками, используя расстояние формулу
- 23. Как получить расстояние между двумя точками?
- 24. Рассчитать расстояние между двумя дескрипторами
- 25. Расстояние между двумя местоположениями GEO
- 26. Рассчитать расстояние между двумя точками
- 27. Расстояние между двумя телефонами Android
- 28. Расстояние между двумя гео координатами
- 29. Вычислить расстояние между двумя точками
- 30. Расстояние между двумя двоичными строками
Stack Overflow ответы должны стоять в одиночку, даже если их ссылки разбиты. Вы должны включить соответствующий контент из этой ссылки в свой ответ. –