1
Я загружаю и добавляю булавки на карту форм Xamarin.Карта Xamarin Forms - обновление центра и расстояния Несколько штифтов
Используя следующий метод, чтобы получить центр широта/долгота:
public static Position GetCenter(List<Position> geoCoordinates)
{
if (geoCoordinates.Count == 1)
{
return geoCoordinates.Single();
}
double x = 0;
double y = 0;
double z = 0;
foreach (var geoCoordinate in geoCoordinates)
{
var latitude = geoCoordinate.Latitude * Math.PI/180;
var longitude = geoCoordinate.Longitude * Math.PI/180;
x += Math.Cos(latitude) * Math.Cos(longitude);
y += Math.Cos(latitude) * Math.Sin(longitude);
z += Math.Sin(latitude);
}
var total = geoCoordinates.Count;
x = x/total;
y = y/total;
z = z/total;
var centralLongitude = Math.Atan2(y, x);
var centralSquareRoot = Math.Sqrt(x * x + y * y);
var centralLatitude = Math.Atan2(z, centralSquareRoot);
var dtoReturn = new Position(centralLatitude * 180/Math.PI, centralLongitude * 180/Math.PI);
return dtoReturn;
}
Это заставляет меня ЦЕНТР:
map.MoveToRegion(MapSpan.FromCenterAndRadius(CENTER, Distance.FromMiles(X));
Мой вопрос о втором параметре для Radius
. Каков наилучший способ рассчитать радиус в милях?
Distance.FromMiles(X)
У вас есть центр местоположений, поэтому ради радиуса вы не хотите находить точку, расположенную дальше всего от центра, и уходите с расстояния между этой точкой и центром? Насколько велика ваша потенциальная база данных? –
Эй, @ deckertron_9000, это именно то, что я делаю сейчас! Однако, похоже, что он не работает правильно, когда точки находятся в нескольких сотнях миль друг от друга. Не знал, был ли более точный способ. – aherrick