package org.osmdroid.samplefragments.events; 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 android.widget.TextView; import android.widget.Toast; import org.osmdroid.R; import org.osmdroid.api.IGeoPoint; import org.osmdroid.api.IMapView; import org.osmdroid.events.MapListener; import org.osmdroid.events.ScrollEvent; import org.osmdroid.events.ZoomEvent; import org.osmdroid.samplefragments.BaseSampleFragment; import org.osmdroid.tileprovider.MapTile; import org.osmdroid.tileprovider.tilesource.OnlineTileSourceBase; import org.osmdroid.tileprovider.tilesource.TileSourceFactory; import org.osmdroid.views.MapView; import java.text.DecimalFormat; /** * used for testing this issue * https://github.com/osmdroid/osmdroid/issues/248 * Created by alex on 2/22/16. */ public class SampleMapEventListener extends BaseSampleFragment { TextView textViewCurrentLocation; public static final DecimalFormat df = new DecimalFormat("#.000000"); @Override public String getSampleTitle() { return "Map Event Listener"; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = inflater.inflate(R.layout.map_with_locationbox, container,false); mMapView = (MapView) root.findViewById(R.id.mapview); textViewCurrentLocation = (TextView) root.findViewById(R.id.textViewCurrentLocation); return root; } @Override protected void addOverlays() { super.addOverlays(); updateInfo(); mMapView.setTileSource(TileSourceFactory.USGS_SAT); mMapView.setMapListener(new MapListener() { @Override public boolean onScroll(ScrollEvent event) { Log.i(IMapView.LOGTAG, System.currentTimeMillis() + " onScroll " + event.getX() + "," +event.getY() ); //Toast.makeText(getActivity(), "onScroll", Toast.LENGTH_SHORT).show(); updateInfo(); return true; } @Override public boolean onZoom(ZoomEvent event) { Log.i(IMapView.LOGTAG, System.currentTimeMillis() + " onZoom " + event.getZoomLevel()); updateInfo(); return true; } }); } private void updateInfo(){ IGeoPoint mapCenter = mMapView.getMapCenter(); textViewCurrentLocation.setText(df.format(mapCenter.getLatitude())+","+ df.format(mapCenter.getLongitude()) +",zoom="+mMapView.getZoomLevel()); } }