add overzoom

start implement different densities

git-svn-id: https://osmand.googlecode.com/svn/trunk@413 e29c36b1-1cfa-d876-8d93-3434fc2bb7b8
This commit is contained in:
Victor Shcherb 2010-07-29 22:03:53 +00:00
parent fe0d12fb96
commit 0c0d15f2f5
7 changed files with 39 additions and 22 deletions

View file

@ -10,10 +10,11 @@ public class ToDoConstants {
// TODO
// 78. Add ruler to the main tile view (100m, 200m,...)
// 82. Add overzoom +2 for Mapnik (!)
// 80. Export/import favorite points
// 81. Add some objects to POI category (1) to add them into OSM 2) to help navigation)
// highway (?), traffic_calming (?), barrier(?), military(?-), landuse (?), office(?), man_made(?), power(?).
// 84. Send letter to developer
// Improvements
@ -24,6 +25,7 @@ public class ToDoConstants {
// 69. Add phone information to POI
// 70. Show building numbers over map (require changing address index - index 2 more columns lat/lon for fast search)
// 66. Transport routing (show next stop, total distance, show stop get out, voice) (needed ?).
// 85. Enable on/off screen for bike navigation (?)
// 83. Add monitoring service to send locations to internet (?)
// Unscheduled (complex)
@ -47,6 +49,7 @@ public class ToDoConstants {
// BUGS Swing
// DONE ANDROID :
// 82. Add overzoom +2 for Mapnik
// 64. Traffic information - yandex traffic
// 79. Download any WMS layer and add to swing version (add tile manager ${x}, ${y}, ${z} to swing and to android)
// 77. Implement upload gps track onto osm server (? not implemented yet on OSM?) -

View file

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 120 KiB

View file

@ -2,9 +2,9 @@
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="@drawable/background_rot">
<TableLayout android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="fill_parent" android:background="@drawable/background">
<TableLayout android:layout_gravity="center_vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TableRow>
<Button
@ -13,8 +13,11 @@
android:background="@drawable/btn_orange"
android:textColor="#FFFFFF"
android:textStyle="bold"
android:layout_width="180dip"
android:layout_height="70dip"
android:layout_weight="0.5"
android:layout_marginLeft="1dp"
android:layout_marginRight="2dp"
android:layout_width="fill_parent"
android:layout_height="80dip"
android:drawableLeft="@drawable/map"/>
<Button
@ -23,8 +26,11 @@
android:background="@drawable/btn_orange"
android:textColor="#FFFFFF"
android:textStyle="bold"
android:layout_width="180dip"
android:layout_height="70dip"
android:layout_weight="0.5"
android:layout_marginLeft="1dp"
android:layout_marginRight="2dp"
android:layout_width="fill_parent"
android:layout_height="80dip"
android:drawableLeft="@drawable/find"/>
</TableRow>
<TableRow>
@ -34,8 +40,11 @@
android:background="@drawable/btn_orange"
android:textColor="#FFFFFF"
android:textStyle="bold"
android:layout_width="180dip"
android:layout_height="70dip"
android:layout_marginLeft="1dp"
android:layout_weight="0.5"
android:layout_marginRight="2dp"
android:layout_width="fill_parent"
android:layout_height="80dip"
android:drawableLeft="@drawable/favorites"/>
<Button
android:id="@+id/SettingsButton"
@ -43,8 +52,11 @@
android:background="@drawable/btn_orange"
android:textColor="#FFFFFF"
android:textStyle="bold"
android:layout_width="180dip"
android:layout_height="70dip"
android:layout_weight="0.5"
android:layout_marginLeft="2dp"
android:layout_marginRight="1dp"
android:layout_width="fill_parent"
android:layout_height="80dip"
android:drawableLeft="@drawable/settings"/>
</TableRow>
</TableLayout>

View file

@ -9,7 +9,7 @@
<TextView android:id="@+id/poidistance_label"
android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center"
android:textSize="22px" android:maxWidth="80dp" android:minWidth="80dp"/>
android:textSize="22sp" android:maxWidth="80sp" android:minWidth="80sp"/>
<TextView android:id="@+id/poi_label" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:textSize="22px" />

View file

@ -3,9 +3,9 @@
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView android:id="@+id/folder_icon" android:layout_width="25px"
<ImageView android:id="@+id/folder_icon" android:layout_width="25dip"
android:paddingLeft="2px" android:paddingRight="2px"
android:paddingTop="2px" android:layout_height="fill_parent" />
<TextView android:id="@+id/folder_label" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:textSize="25px" />
android:layout_height="wrap_content" android:textSize="25sp" />
</LinearLayout>

View file

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="poi_namefinder_query_empty">Input search query to find POI</string>
<string name="any_poi">Any</string>
@ -102,7 +102,7 @@
<string name="search_history_street">Straße: {0}, {1}</string>
<string name="search_history_int_streets">Querstraße : {0} x {1} in {2}</string>
<string name="search_history_building">Gebäude: {0}, {1}, {2}</string>
<string name="search_history_navigate_to">Navigiere zu {0}'N {1}'O</string>
<string name="search_history_navigate_to">Navigiere zu {0}\'N {1}\'O</string>
<string name="favorite">Favoriten</string>
<string name="clear_all">Alles löschen</string>
<string name="history">Verlauf</string>

View file

@ -46,6 +46,8 @@ import com.osmand.views.MultiTouchSupport.MultiTouchZoomListener;
public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCallback,
Callback, AnimateDraggingCallback, OnGestureListener, OnDoubleTapListener, MultiTouchZoomListener {
public static final int OVERZOOM_IN = 2;
protected final int emptyTileDivisor = 16;
protected final int timeForDraggingAnimation = 300;
protected final int minimumDistanceForDraggingAnimation = 40;
@ -225,7 +227,7 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
public void setZoom(float zoom){
if (map == null || (map.getMaximumZoomSupported() >= zoom && map.getMinimumZoomSupported() <= zoom)) {
if (map == null || ((map.getMaximumZoomSupported() + OVERZOOM_IN) >= zoom && map.getMinimumZoomSupported() <= zoom)) {
animatedDraggingThread.stopAnimating();
this.zoom = zoom;
refreshMap();
@ -235,7 +237,7 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
// for internal usage
@Override
public void zoomTo(float zoom, boolean notify) {
if (map == null || (map.getMaximumZoomSupported() >= zoom && map.getMinimumZoomSupported() <= zoom)) {
if (map == null || ((map.getMaximumZoomSupported() + OVERZOOM_IN) >= zoom && map.getMinimumZoomSupported() <= zoom)) {
this.zoom = zoom;
refreshMap();
if(notify && locationListener != null){
@ -272,8 +274,8 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
public void setMap(ITileSource map) {
this.map = map;
if(map.getMaximumZoomSupported() < this.zoom){
zoom = map.getMaximumZoomSupported();
if(map.getMaximumZoomSupported() + OVERZOOM_IN < this.zoom){
zoom = map.getMaximumZoomSupported() + OVERZOOM_IN;
}
if(map.getMinimumZoomSupported() > this.zoom){
zoom = map.getMinimumZoomSupported();
@ -428,7 +430,7 @@ public class OsmandMapTileView extends SurfaceView implements IMapDownloaderCall
if (canvas != null) {
ResourceManager mgr = ResourceManager.getResourceManager();
boolean useInternet = OsmandSettings.isUsingInternetToDownloadTiles(getContext()) && map.couldBeDownloadedFromInternet();
int maxLevel = OsmandSettings.getMaximumLevelToDownloadTile(getContext());
int maxLevel = Math.min(OsmandSettings.getMaximumLevelToDownloadTile(getContext()), map.getMaximumZoomSupported());
canvas.save();
canvas.rotate(rotate, w , h);
boundsRect.set(0, 0, getWidth(), getHeight());