diff --git a/src/org/oscim/view/RegionLookup.java b/src/org/oscim/view/RegionLookup.java
deleted file mode 100644
index 90372876..00000000
--- a/src/org/oscim/view/RegionLookup.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * Copyright 2012 Hannes Janetzek
- *
- * This program is free software: you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License along with
- * this program. If not, see .
- */
-package org.oscim.view;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Properties;
-
-import org.oscim.core.GeoPoint;
-import org.oscim.core.MapPosition;
-import org.oscim.core.MercatorProjection;
-
-import android.os.AsyncTask;
-import android.util.FloatMath;
-import android.util.Log;
-import android.widget.Toast;
-
-public class RegionLookup {
- final static String TAG = RegionLookup.class.getName();
-
- class BBox {
- String level, name, boundary;
- GeoPoint min, max;
- float area;
- }
-
- private Connection connection = null;
- private PreparedStatement prepQuery = null;
-
- /* package */MapView mMapView;
- /* pacakge */BBox mSelected;
-
- // __get_regions_around(lat double precision, lon double precision)
- // returns table (level text, boundary text, name text, xmin double precision, ymin double precision, xmax double
- // precision, ymax double precision)
- // language sql as
- // $$
- // select admin_level, boundary, name, xmin(box), ymin(box), xmax(box), ymax(box) from
- // .. (select distinct on (box) * from
- // .... (select *, st_transform(st_envelope(way),4326) box
- // ...... from planet_polygon, st_transform(st_setsrid(st_makepoint($2,$1),4326),900913) point
- // ...... where (boundary is not null) and st_contains(way, point)
- // .... )p
- // .. )p order by st_area(box)
- // $$;
- private static final String QUERY = "SELECT * from __get_regions_around(?,?)";
-
- public RegionLookup(MapView mapView) {
- mMapView = mapView;
- }
-
- boolean connect() {
- Connection conn = null;
- String dburl = "jdbc:postgresql://city.informatik.uni-bremen.de:5432/gis";
-
- Properties dbOpts = new Properties();
- dbOpts.setProperty("user", "osm");
- dbOpts.setProperty("password", "osm");
- dbOpts.setProperty("socketTimeout", "50");
- dbOpts.setProperty("tcpKeepAlive", "true");
-
- try {
- DriverManager.setLoginTimeout(20);
- Log.d(TAG, "Creating JDBC connection...");
-
- Class.forName("org.postgresql.Driver");
- conn = DriverManager.getConnection(dburl, dbOpts);
- connection = conn;
- prepQuery = conn.prepareStatement(QUERY);
- } catch (Exception e) {
- Log.d(TAG, "Aborted due to error:" + e);
- return false;
- }
- return true;
- }
-
- boolean updatePosition() {
- if (connection == null) {
- if (!connect())
- return false;
- }
-
- ResultSet r;
-
- MapPosition pos = mMapView.getMapPosition().getMapPosition();
-
- try {
- if (mPos == null) {
- prepQuery.setDouble(1, pos.lat);
- prepQuery.setDouble(2, pos.lon);
- } else {
- prepQuery.setDouble(1, mPos.getLatitude());
- prepQuery.setDouble(2, mPos.getLongitude());
- }
-
- Log.d(TAG, prepQuery.toString());
-
- prepQuery.execute();
- r = prepQuery.getResultSet();
-
- } catch (SQLException e) {
- e.printStackTrace();
- connection = null;
- return false;
- }
-
- ArrayList boxes = new ArrayList(10);
-
- try {
- while (r != null && r.next()) {
- BBox bbox = new BBox();
-
- bbox.level = r.getString(1);
- bbox.boundary = r.getString(2);
- bbox.name = r.getString(3);
- bbox.min = new GeoPoint(r.getDouble(5), r.getDouble(4));
- bbox.max = new GeoPoint(r.getDouble(7), r.getDouble(6));
-
- bbox.area = (float) Math.abs((bbox.max.getLatitude()
- - bbox.min.getLatitude())
- * (bbox.max.getLongitude()
- - bbox.min.getLongitude()));
- Log.d(TAG, "got:" + bbox.area
- + " " + bbox.level + " b:" + bbox.boundary +
- " n:" + bbox.name + " " + bbox.min + " " + bbox.max);
- boxes.add(bbox);
- }
- } catch (SQLException e) {
- e.printStackTrace();
- connection = null;
- return false;
- }
-
- double w = (mMapView.getWidth() >> 1) / pos.scale;
- double h = (mMapView.getHeight() >> 1) / pos.scale;
-
- float minx = (float) MercatorProjection
- .pixelXToLongitude(pos.x - w, pos.zoomLevel);
- float maxx = (float) MercatorProjection
- .pixelXToLongitude(pos.x + w, pos.zoomLevel);
- float miny = (float) MercatorProjection
- .pixelYToLatitude(pos.y - h, pos.zoomLevel);
- float maxy = (float) MercatorProjection
- .pixelYToLatitude(pos.y + h, pos.zoomLevel);
-
- float area = Math.abs((maxx - minx) * (miny - maxy));
-
- Log.d(TAG, " BBOX " + area + " " + minx + " "
- + miny + " " + maxx + " " + maxy);
-
- w = mMapView.getWidth();
- h = mMapView.getHeight();
- mSelected = null;
- if (mDirection < 0) {
- // get the next larger bbox, union with current and set view region to it.
- for (int i = 0, n = boxes.size(); i < n; i++) {
- BBox bbox = boxes.get(i);
- if (bbox.area > area || i == n - 1) {
- mSelected = bbox;
- break;
- }
- }
- } else {
- for (int i = boxes.size() - 1; i >= 0; i--) {
- BBox bbox = boxes.get(i);
- // if (bbox.area < area) {
- //
- // double clat = bbox.min.getLatitude()
- // + (bbox.max.getLatitude() - bbox.min.getLatitude()) / 2;
- double clon = Math.abs(bbox.max.getLongitude()
- - bbox.min.getLongitude());
-
- float zoom = (float) (-Math.log(4) * Math.log(clon / 360) + 0.25);
- // float scale = 1 + (zoom - FloatMath.floor(zoom));
- // MapPosition mapPos = new MapPosition(clat,
- // bbox.min.getLongitude() + clon / 2,
- // (byte) zoom, 1 + (zoom - FloatMath.floor(zoom)), 0);
-
- mSelected = bbox;
- Log.d(TAG, "jump to: " + bbox.name + " " +
- -Math.log(4) * Math.log(clon / 360) + " " + (byte) zoom);
-
- if ((byte) zoom > pos.zoomLevel) {
- break;
- }
- }
- }
- if (mSelected != null) {
- BBox bbox = mSelected;
-
- double clat = bbox.min.getLatitude()
- + (bbox.max.getLatitude() - bbox.min.getLatitude()) / 2;
- double clon = Math.abs(bbox.max.getLongitude() - bbox.min.getLongitude());
-
- Log.d(TAG, "jump to: " + bbox.name + " " +
- -Math.log(4) * Math.log(clon / 360));
-
- float zoom = (float) (-Math.log(4) * Math.log(clon / 360) + 0.25);
-
- MapPosition mapPos = new MapPosition(clat,
- bbox.min.getLongitude() + clon / 2,
- (byte) zoom, 1 + (zoom - FloatMath.floor(zoom)), 0);
-
- mMapView.setMapCenter(mapPos);
-
- }
- return true;
- }
-
- private int mDirection;
- private GeoPoint mPos;
-
- public synchronized void updateRegion(int direction, GeoPoint pos) {
- mDirection = direction;
- mPos = pos;
-
- new AsyncTask