首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从osmdroid MapView获取MyLocationOverlay

从osmdroid MapView获取MyLocationOverlay
EN

Stack Overflow用户
提问于 2012-08-20 06:11:08
回答 2查看 1.3K关注 0票数 1

我正在创建一个应用程序,您可以使用MyLocationOverlay打开和关闭FollowLocation。

我的问题是,当我之前已经设置了MyLocationOverlay,并想打开FollowLocation,但我似乎无法在MapView的OverlayManager中找到/获取MyLocationOverlay对象。OverlayManager似乎只返回Overlay对象,而不返回MyLocationOverlay对象。

下面是我添加MyLocationOverlay的方法:

代码语言:javascript
复制
main_mapView = (MapView) findViewById(R.id.main_mapView);   
MyLocationOverlay mMyLocationOverlay = new MyLocationOverlay(mContext, main_mapView);
mMyLocationOverlay.enableMyLocation();
mMyLocationOverlay.enableCompass();
mMyLocationOverlay.main_mapView.getOverlays().add(mMyLocationOverlay);
main_mapView.invalidate();

稍后我会发现MyLocationOverlay正在做类似的事情,但正如前面提到的,它返回一个Overlay对象。

代码语言:javascript
复制
MyLocationOverlay mMyLocationOverlay = main_mapView.getOverlayManager().get(i);
mMyLocationOverlay.enableFollowLocation()

有没有人?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-23 22:32:44

只需保留对MyLocationOverlay的引用即可……不需要从覆盖管理器那里拿回它。

票数 2
EN

Stack Overflow用户

发布于 2012-10-17 22:51:01

或者,检查返回的Overlay对象的getClass()方法。它可能会向您显示所请求的覆盖实际上是一个MyLocationOverlay,在这种情况下,您可以转换它。例如:

代码语言:javascript
复制
Overlay overlay = main_mapView.getOverlayManager().get(i);

if ( overlay.getClass().equals(MyLocationOverlay.class) ) {
    ((MyLocationOverlay)mMyLocationOverlay).enableFollowLocation()
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12030422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档