Java Android osm kartendarstellung

Ken Masters

Lt. Junior Grade
Registriert
Dez. 2006
Beiträge
334
Hallo,

ich hoffe ihr könnt mir helfen. ich möchte nur eine mapview von openstreetmaps auf dem display angezeigt bekommen. aber irgendwie erscheint keine karte sondern nur quadrate (siehe bild). die angaben vom longitude und latitude ist nicht zu berücksichtigen. es geht lediglich nur um die anzeige der karte.

java klasse:

Code:
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapController;
import org.osmdroid.views.MapView;
import org.osmdroid.views.overlay.ScaleBarOverlay;
import org.osmdroid.views.overlay.SimpleLocationOverlay;

import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends Activity {

        TextView longitude, latitude;
        private MapView mapView;
        private MapController mapController;
        private ScaleBarOverlay mScaleBarOverlay;
        private SimpleLocationOverlay mMyLocationOverlay;
    
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        longitude = (TextView)findViewById(R.id.textViewLong);
        latitude = (TextView)findViewById(R.id.textViewLat);
        
        mapView = (MapView) this.findViewById(R.id.mapview);
        mapView.setClickable(true);
        mapView.setBuiltInZoomControls(true);              
        mapView.getController().setZoom(15);
        mapView.getController().setCenter(new GeoPoint(52.221,6.893));
        
        LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        LocationListener ll = new myLocationListener();
        
        lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
    }
    
    class myLocationListener implements LocationListener {

        @Override
        public void onLocationChanged(Location location) {
            if(location != null)
            {
                double pLong = location.getLongitude();
                double plat = location.getLatitude();
                
                longitude.setText(Double.toString(pLong));
                latitude.setText(Double.toString(plat));
            }
            
        }

        @Override
        public void onProviderDisabled(String provider) {
            Intent intent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
            startActivity(intent);                
        }

        @Override
        public void onProviderEnabled(String provider) {
            // TODO Auto-generated method stub
            
        }

        @Override
        public void onStatusChanged(String provider, int status,
                Bundle extras) {
            // TODO Auto-generated method stub
            
        }
        
    }
    
    public void ExitKlick(View v){
        this.finish();
    }

  
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}
layout.xml:

Code:
RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="30dp" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Longitude:"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <TextView
            android:id="@+id/textViewLong"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="2dp"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/linearLayout1"
        android:layout_marginTop="5dp" >

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Latitude:"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <TextView
            android:id="@+id/textViewLat"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="2dp"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Your Position via OSM"
            android:textStyle="bold" />
    </LinearLayout>

    
    <org.osmdroid.views.MapView
        android:id="@+id/mapview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@+id/buttonExit"
        android:layout_below="@+id/linearLayout2">

    </org.osmdroid.views.MapView>
    
    <Button
        android:id="@+id/buttonExit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:onClick="ExitKlick"
        android:text="Exit" />

</RelativeLayout>
folgende bibliotheken wurden in das projekt geaddet:
osmdroid-android-3.0.8 und
slf4j-android-1.5.8

ich hänge hier schon seit mehr als ein tag und da frag ich lieber jetzt. komme so nicht weiter. hoffe ihr könnt mir helfen. danke im voraus.
Ergänzung ()

keiner eine idee? :(
 
Spontan fällt mir jetzt nur Folgendes ein: Hast du bei den Berechtigungen Internetzugriff erlaubt?
 
Ken Masters schrieb:
ich hoffe ihr könnt mir helfen. ich möchte nur eine mapview von openstreetmaps auf dem display angezeigt bekommen. aber irgendwie erscheint keine karte sondern nur quadrate (siehe bild).
Kleine Korinthenkackerei: Bei OSM heißt es OpenStreetMap (ohne "s"), bei Google heißt es GoogleMaps.

Ich denke Deine Frage ist in diesem Forum zu speziell, ich würde Dir entweder

OSM Developer

OSM Android

oder als meinen persönlicher Favoriten das

deutsche OSM Forum

vorschlagen, um Deine Frage dort zu stellen.

Du könntest vorher auch die Suchfunktion des OSM-Forums mit dem Stichwort "osmdroid" nutzen.


HTH

BigNum
 
@sash2k2: ja das habe ich.

@BigNum: danke, dann werde ich es mal dort versuchen.


Ich habe gerade bemerkt das ich oben bei meinem 1. post das wort "bild" nicht verlinkt habe.

hier falls noch einer es genauer wissen möchte: http://s1.directupload.net/file/d/3082/dz7tm4ei_jpg.htm

PS: @ bignum: wie kann man sich denn dort registrieren?
 
Zuletzt bearbeitet:
Zurück
Oben