Я хочу рассчитать радиус в метрах или км в зависимости от уровня масштабирования.радиус изменения по уровню зума
Я нашел эту формулу - что дает мне примерно вычисленных метров на пиксель: https://groups.google.com/forum/#!topic/google-maps-js-api-v3/hDRO4oHVSeM
Кроме того, эти ссылки помогли мне понять, что я пытался достичь именно: google map API zoom range How to get center of map for v2 android maps?
и это реализация:
double calculateScale(float zoomLevel, LatLng centerPos){
double meters_per_pixel = 156543.03392 * Math.cos(centerPos.latitude * Math.PI/180)/Math.pow(2, zoomLevel);
return meters_per_pixel;
}
и это, как я слушаю уровень масштабирования изменение:
_map.setOnCameraIdleListener(new GoogleMap.OnCameraIdleListener() {
@Override
public void onCameraIdle() {
Log.d(Consts.TAGS.FRAG_MAIN_MAP,"Current Zoom : " + _map.getCameraPosition().zoom);
Log.d(Consts.TAGS.FRAG_MAIN_MAP,"Center Lat : " + _map.getCameraPosition().target.latitude +
", Center Long : " + _map.getCameraPosition().target.longitude);
}}
Теперь, когда пользователь изменяет уровень масштабирования, я хочу, чтобы определить, какой максимальный радиус, который может отображаться в виде карты ...
Этот ответ показал мне, как вычислить максимальный радиус таким образом, который подходит для моего использования (я использовал компоновку контейнера карты вместо _map). – lionheart
Извините, я использую слишком много деталей. Главное было получить половину диагонали зрения, и это будет maxRadius. :) Рад, что у тебя есть этот момент. –