java–osm中的标记使用osmdroid进行映射

java–osm中的标记使用osmdroid进行映射,第1张

概述我试图在OSM中展示一个品牌,但不能.我可以显示OSM地图和手机的位置,但没有别的.这是我的代码:publicclassCarte2ActivityextendsActivityimplementsLocationListener{MapViewmapView;MapControllermyMapController;MyLocationOverlaylocation=null;

我试图在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进行映射所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1109920.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存