Ich möchte den Radius in Meter oder km entsprechend der Zoomstufe berechnen.Radius durch Zoomstufe ändern
ich diese Formel gefunden habe -, die mir die grob berechneten Meter pro Pixel ergibt: https://groups.google.com/forum/#!topic/google-maps-js-api-v3/hDRO4oHVSeM
Auch mir diese Links unterstützt zu verstehen, was ich genau zu erreichen versuchte: google map API zoom range How to get center of map for v2 android maps?
und dies ist die Umsetzung:
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;
}
und das ist, wie ich auf die Zoomstufe hören Wechsel:
_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);
}}
Nun, wenn der Benutzer Zoomstufe ändert, möchte ich, um zu bestimmen, was der maximalen Radius ist, die innerhalb der Kartenansicht angezeigt werden können ...
Diese Antwort zeigte mir, wie man den maximalen Radius auf eine Weise berechnet, die zu meinem Anwendungsfall passt (ich habe das Map-Container-Layout anstelle von _map verwendet). – lionheart
Entschuldigung, ich benutze zu viele Details. Der Hauptpunkt war, die Hälfte der Diagonale der Ansicht zu bekommen, und es wird maxRadius sein. :) Ich bin froh, dass du diesen Punkt verstanden hast. –