android - use of osmdroid for a map base application -
i trying write map base application via osmdroid , want when user opens application, can see googlemaps online. write codes in eclipse can't see google maps when run application on virtual device androidmanifest file:
<uses-sdk android:minsdkversion="10" /> <uses-permission android:name="android.permission.access_fine_location"/> <uses-permission android:name="android.permission.access_coarse_location"/> <uses-permission android:name="android.permission.access_wifi_state" /> <uses-permission android:name="android.permission.access_network_state" /> <uses-permission android:name="android.permission.internet" />` <uses-permission android:name="android.permission.access_fine_location"/> <uses-permission android:name="android.permission.access_coarse_location"/> <uses-permission android:name="android.permission.access_wifi_state" /> <uses-permission android:name="android.permission.access_network_state" /> <uses-permission android:name="android.permission.internet" /> <uses-feature android:name="android.hardware.location.network" /> <uses-feature android:name="android.hardware.location.gps" /> <uses-feature android:name="android.hardware.wifi" /> <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name="com.example.osm.mainactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <meta-data android:name="com.google.android.gms.version" android:value="myapikey" /> </application> </manifest> it codes:
import org.osmdroid.tileprovider.tilesource.tilesourcefactory; import org.osmdroid.util.geopoint; import org.osmdroid.views.mapview; import android.os.bundle; import android.app.activity; import android.view.menu; public class mainactivity extends activity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); mapview mapview=new mapview(this, 256); // mapview mapview = new m(this, 256); mapview.setclickable(true); mapview.setbuiltinzoomcontrols(true); mapview.getcontroller().setzoom(14); mapview.getcontroller().setcenter(new geopoint(34.638293,50.876312)); setcontentview(mapview); mapview.setusedataconnection(false); mapview.settilesource(tilesourcefactory.mapnik); } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.main, menu); return true; } }
try implement this:
private void setmapview() { if (mmap != null) { mmap.setmylocationenabled(false); } final com.google.android.maps.mapview mapview = new com.google.android.maps.mapview(this, manifestutil.retrievekey(this, "com.google.android.geo.api_key")); setcontentview(mapview); mmap = mapfactory.getmap(mapview); final position position = new position(52.370816, 9.735936); // hannover position.setzoomlevel(14); mmap.setposition(position); mmap.setmylocationenabled(false); addmarkers(); addpolyline(); mmap.setoncamerachangelistener(new oncamerachangelistener() { @override public void oncamerachange(final iposition position) { log.d(constants.logtag, "oncamerachange"); } }); } this osmdroid sample. can see need google geo api key obtain google map tiles app. maybe better solution use different maps google maps. official documentation lists "out of box" map sources can use https://github.com/osmdroid/osmdroid/wiki/map-sources
Comments
Post a Comment