当前位置: 首页 > 工具软件 > OSMDroid > 使用案例 >

android实现3种定位的切换,android osmdroid 实现谷歌地图之定位 替换为其他

滑令
2023-12-01

osmdroid 显现自己的位置图标是通过GPS,虽然提供了接口替换为其他,但是不知道为什么我没有试成功。

下面通过另一种方式实现   通过百度定位显示个人图标。

原始实现 默认的个人定位图标。

// if (mLocationOverlay==null){

// mLocationOverlay= new MyLocationNewOverlay(mMapView);

// Bitmap bitmap = MyUtils.zoomImg(BitmapFactory.decodeResource(mContext.getResources(), R.mipmap.renyuan), 80, 80);

//

// mLocationOverlay.setDirectionArrow(bitmap,

// ((BitmapDrawable)

// mMapView.getContext().getResources().getDrawable(org.osmdroid.library.R.drawable.person)).getBitmap());

// }

// mMapView.getOverlays().add(mLocationOverlay);

// mLocationOverlay.enableMyLocation(); //设置可视

通过 自己实现 IMyLocationProvider这个接口理论可以实现 定位,但是我个人尝试的时候并没有实现。

不过好在

Marker可以不断设计位置。所有可以不断维护一个Marker,不断设置位置就可以了。所以

/**

*

设置个人新的位置

* @return

*/

public void setMyLocationInfo(GeoPoint latLng){

if (latLng == null) return;

initLocationMarker();

mLocationMarker.setPosition(latLng);

setPositionCenter(latLng);

}

private void initLocationMarker() {

if (mLocationMarker!=null){

return;

}

mLocationMarker = new Marker(mMapView);

mLocationMarker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);

mLocationMarker.setInfoWindow(null);

Bitmap bitmap = MyUtils.zoomImg(BitmapFactory.decodeResource(mContext.getResources(),R.mipmap.renyuan), 300, 300);

BitmapDrawable bd= new BitmapDrawable(bitmap);

mLocationMarker.setIcon(bd);

mMapView.getOverlays().add(mLocationMarker);

}

/**

* 设置中心点

*/

public void setPositionCenter(GeoPoint latLng) {

mMapView.getController().setCenter(latLng);

}

 类似资料: