
我试图在OSM中展示一个品牌,但不能.我可以显示OSM地图和手机的位置,但没有别的.
这是我的代码:
public class Carte2Activity extends Activity implements LocationListener { MapVIEw mapVIEw; MapController myMapController; MyLocationOverlay location = null; double lat; double lng; LocationManager lm; LocationListener ll; ArrayList<OverlayItem> anotherOverlayItemArray; String[] sources; /** Called when the activity is first created. */ @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); mapVIEw = (MapVIEw)findVIEwByID(R.ID.openmapvIEw); mapVIEw.setBuiltInZoomControls(true); mapVIEw.setMultitouchControls(true); lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); ll = new Myll(); lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000,0,ll); myMapController = mapVIEw.getController(); myMapController.setZoom(10); myMapController.setCenter(new GeoPoint((int)(48.785152*1E6), (int)(2.285156*1E6))); location = new MyLocationOverlay(getApplicationContext(), mapVIEw); //ajouter la loc mapVIEw.getoverlays().add(location); //afficher location.enableMyLocation(); } private class Myll implements LocationListener{ public voID onLocationChanged(Location location) { // Todo auto-generated method stub lat = location.getLatitude(); lng = location.getLongitude(); run(); } public voID run() { // Todo auto-generated method stub location.runOnFirstFix(new Runnable() { public voID run() { mapVIEw.getController().animateto(location.getMyLocation()); }}); } public voID onProvIDerDisabled(String provIDer) { // Todo auto-generated method stub } public voID onProvIDerEnabled(String provIDer) { // Todo auto-generated method stub } public voID onStatusChanged(String provIDer, int status, Bundle extras) { // Todo auto-generated method stub }} public voID onLocationChanged(Location location) { // Todo auto-generated method stub } public voID onProvIDerDisabled(String provIDer) { // Todo auto-generated method stub } public voID onProvIDerEnabled(String provIDer) { // Todo auto-generated method stub } public voID onStatusChanged(String provIDer, int status, Bundle extras) { // Todo auto-generated method stub }}androIDManifest:
<?xml version="1.0" enCoding="utf-8"?><manifest xmlns:androID="http://schemas.androID.com/apk/res/androID"package="comparateur.carte"androID:versionCode="1"androID:versionname="1.0" ><uses-sdk androID:minSdkVersion="15" /><uses-permission androID:name="androID.permission.ACCESS_NETWORK_STATE"/><uses-permission androID:name="androID.permission.INTERNET"/><uses-permission androID:name="androID.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission androID:name="androID.permission.ACCESS_FINE_LOCATION" /><uses-permission androID:name="androID.permission.ACCESS_COARSE_LOCATION"/><application androID:icon="@drawable/ic_launcher" androID:label="@string/app_name" > <activity androID:name=".Carte2Activity" androID:label="@string/app_name" > <intent-filter> <action androID:name="androID.intent.action.MAIN" /> <category androID:name="androID.intent.category.LAUNCHER" /> </intent-filter> </activity></application>我不明白我该怎么做.有人能帮助我吗?
解决方法:
看看这些代码行:
OverlayItem myLocationOverlayItem = new OverlayItem("Here", "Current position", currentLocation); Drawable myCurrentLocationMarker = this.getResources().getDrawable(R.drawable.person); myLocationOverlayItem.setMarker(myCurrentLocationMarker); final ArrayList<OverlayItem> items = new ArrayList<OverlayItem>(); items.add(myLocationOverlayItem); currentLocationOverlay = new ItemizedIconOverlay<OverlayItem>(items, new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>() { public boolean onItemSingleTapUp(final int index, final OverlayItem item) { return true; } public boolean onItemLongPress(final int index, final OverlayItem item) { return true; } }, resourceProxy); this.mapVIEw.getoverlays().add(this.currentLocationOverlay);我希望这能帮到您.
总结以上是内存溢出为你收集整理的java – osm中的标记使用osmdroid进行映射全部内容,希望文章能够帮你解决java – osm中的标记使用osmdroid进行映射所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)