OSMDroid(3)地图监听图层

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

有很多时候我们在画线或者点点的时候都是在地图上点击然后添加点,这就需要进行屏幕坐标和地图经纬度坐标的投影转化。

感觉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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值