有很多时候我们在画线或者点点的时候都是在地图上点击然后添加点,这就需要进行屏幕坐标和地图经纬度坐标的投影转化。
感觉OSM地图本身应该会有更好的接口来实现地图点点放置标记,但是目前我使用的是先在地图上添加一层监听图层,然后自己进行坐标的投影再进行放置的方式来实现的此功能,如果有更好的方法欢迎交流。
如下代码
只需要将本自定义图层类添加到项目,并在地图中添加该图层即可
在导入本类之后,在地图上添加如下一行代码
map.getOverlays().add(new MyMarkerOverlay(getApplicationContext(),map));
自定义监听类如下
类似的,要实现画线画面自定义监听也可以通过如下方法来实现。
/**
* @author Wendy
* @time 2019/12/25
* @Email ${EMAIL}
*/
public class MyMarkerOverlay extends Overlay {
/**
* 基本属性
*/
private Context context;//cons
private MapView mMapView;//cons
private OverlayItem overlayItem;
private Point point;
private GeoPoint geo;
private ItemizedOverlayWithFocus itemItemizedOverlayWithFocus;
private ArrayList<OverlayItem> overlayItems = new ArrayList<>();
/**
* 传入context
* constructrue
*/
public MyMarkerOverlay(Context co

本文介绍了一种在OSM地图上实现自定义标记放置的方法,通过添加监听图层,实现屏幕坐标到地图经纬度坐标的转换,从而在地图上精准放置标记。提供了具体的代码示例,包括如何创建自定义监听类和图层,以及如何响应地图点击事件。
最低0.47元/天 解锁文章
4973

被折叠的 条评论
为什么被折叠?



