package org.osmdroid.bugtestfragments; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import org.osmdroid.R; import org.osmdroid.samplefragments.BaseSampleFragment; import org.osmdroid.util.GeoPoint; import org.osmdroid.views.MapView; /** * Created by alex on 9/25/16. */ public class Bug419Zoom extends BaseSampleFragment implements View.OnClickListener { @Override public String getSampleTitle() { return "Zoom scaling calculations"; } Button btnCache, executeJob; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = inflater.inflate(R.layout.sample_cachemgr, container, false); mMapView = (MapView) root.findViewById(R.id.mapview); btnCache = (Button) root.findViewById(R.id.btnCache); btnCache.setOnClickListener(this); btnCache.setText("Zoom Test"); return root; } @Override public void onClick(View v) { if (v.getId() == R.id.btnCache) { //center as tne middle of the us to get a visual reference point mMapView.getController().setCenter(new GeoPoint(38.73, -99.66)); new Thread(new Runnable() { @Override public void run() { startTest(); } }).start(); } } int i = 0; int x = 0; //call this from off the UI thread public void startTest() { try { for (i = mMapView.getMinZoomLevel(); i < mMapView.getMaxZoomLevel(); i++) { for (x = mMapView.getMaxZoomLevel(); x > mMapView.getMinZoomLevel(); x--) { Log.i(TAG, "Zoom out test " + i + " to " + x); getActivity().runOnUiThread(new Runnable() { @Override public void run() { mMapView.getController().setZoom(i); mMapView.invalidate(); } }); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } getActivity().runOnUiThread(new Runnable() { @Override public void run() { mMapView.getController().zoomTo(x); //mMapView.invalidate(); } }); try { //to let the tiles load Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } } } for (i = mMapView.getMaxZoomLevel(); i > mMapView.getMinZoomLevel(); i--) { for (x = mMapView.getMinZoomLevel(); x < mMapView.getMaxZoomLevel(); x++) { Log.i(TAG, "Zoom out test " + i + " to " + x); getActivity().runOnUiThread(new Runnable() { @Override public void run() { mMapView.getController().setZoom(i); mMapView.invalidate(); } }); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } getActivity().runOnUiThread(new Runnable() { @Override public void run() { mMapView.getController().zoomTo(x); //mMapView.invalidate(); } }); try { //to let the tiles load Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } } } } catch (Throwable t) { t.printStackTrace(); } } public boolean skipOnCiTests(){ return true; } }