У меня есть MapView, что я показываю «полезный радиус» (думаю, точность координаты). Используя MapView
ProjectionmetersToEquatorPixels, который, по общему признанию, только для экваториального расстояния) не дает мне достаточно точного расстояния (в пикселях). Как бы вы вычислили это, если бы вы хотели отображать круг вокруг вашей координаты, учитывая радиус?Как вычислить радиус вокруг точки в Android MapView?
ответ
Таким образом, Карты Google используют Mercator projection. Это означает, что чем дальше вы выходите от экватора, тем больше искажается расстояние. Согласно this discussion, правильному способу преобразования для расстояний нечто вроде:
public static int metersToRadius(float meters, MapView map, double latitude) {
return (int) (map.getProjection().metersToEquatorPixels(meters) * (1/ Math.cos(Math.toRadians(latitude))));
}
Благодарим вас за ответ. Но у меня был запрос об этом уравнении. Является ли это уравнение достаточно тяжелым, чтобы замедлить работу приложения? Просто любопытно. – Ahmed
Единственной возможной частью формулы является Math.cos(). Вы можете использовать функцию android.util.FloatMath.cos(), чтобы ускорить работу или даже сохранить таблицу с заранее вычисленными факторами, например. для каждой полной степени. Тогда вы можете просто сказать return (int) (map.getProjection(). MetersToEquatorPixels (meters) * factor [(int) latitude]. – Ridcully
projection.toPixels(GeoP, pt);
float radius = projection.metersToEquatorPixels(50);
Попробуйте это увидеть ... я использовал его на моей MapRadius и это, кажется, работает
Если вы увидите мой ответ, вы точно увидите, почему это не будет работать во всех случаях . –
mMap.addCircle(
new CircleOptions().center(
new LatLng(
bounds.getCenter().latitude,
bounds.getCenter().longitude
)
)
.radius(50000)
.strokeWidth(0f)
.fillColor(0x550000FF)
);
Ответ требует форматирования и добавить немного больше контекста о том, как работает ваш код и как он решает проблему OP! – abhiarora
- 1. Рисовать радиус 15 км вокруг точки в Android
- 2. Вычислить радиус вокруг точки GPS lat/lon в PHP
- 3. Радиус Google Maps вокруг точки
- 4. Радиус розыгрыша вокруг точки в карте Google
- 5. Вычислить поворот, выполняемый вокруг точки
- 6. Как найти радиус (в метрах) элемента overlay в MapView
- 7. Как вычислить прямоугольник вокруг географической точки?
- 8. Радиус вокруг касания позиции
- 9. Javascript - вычислить точки геокоординирования четырех углов вокруг центральной точки
- 10. Радиус круга вокруг угла прямоугольника
- 11. Как добавить радиус вокруг местоположения?
- 12. Радиус круга вокруг точки lat/long на созданном ggmap графике
- 13. Флот Радиус точки наведения
- 14. Как нарисовать круг вокруг точки на карте?
- 15. MapView v2 Сохранение контекста вокруг
- 16. Вращение точки вокруг центральной точки
- 17. Вращение точки вокруг другой точки
- 18. Угол точки вокруг определенной точки
- 19. MapView - изменить координаты центральной точки
- 20. Как повернуть фотокамеру вокруг точки?
- 21. Как повернуть фигуру вокруг точки
- 22. найти точки в районе вокруг идентифицированной точки
- 23. Нужен радиус вокруг местоположения широты и долготы
- 24. Вывод Неправильный при вычислении точки вокруг круга
- 25. Радиус рамки CSS div вокруг изображения
- 26. Показ ошибки в mapview Android
- 27. Получить заданное число радиус символов вокруг подстроки
- 28. Генерация точки вокруг прямой
- 29. Поворот прямоугольника вокруг точки
- 30. UIimageView вращается вокруг точки
Возможно, это также можно назвать следующим: у меня есть координата GPS и расстояние, как я могу нарисовать круг, который охватывает радиус от точки GPS? –
Я не уверен, что понимаю проблему - что вы имеете в виду, когда говорите, что это не дает вам достаточно точного расстояния? То, что вы имели в виду для него, говорит 100 м, но он показывает только круг в 50 м или что-то еще? –
Да. Это на значительную сумму. –