首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在itemizedOverlay期间删除onLocationChanged

在itemizedOverlay期间删除onLocationChanged
EN

Stack Overflow用户
提问于 2012-04-25 15:01:34
回答 2查看 511关注 0票数 0

我想要实现的是在地图上显示两种标记。

1)显示从数据库中提取的事件的红色标记(完成- itemizedOverlay)

2)橙色标记,它将动态显示用户在地图(ItemizedOverlay2)上的位置。

我使用ItemizedOverlay来拥有两个不同的层(一个用于事件,另一个用于用户位置),但是显示用户位置的动态标记有问题。

发行:

所发生的事情是,LocationListener成功地获取了纬度/经度,并在地图上放置了一个点,但前面的点仍然存在。因此,我有一个标记跟踪显示用户的位置。

我已经实现了一些方法,我发现搜索互联网,但没有发生在调用onLocationChanged。

代码语言:javascript
复制
class myLocationListener implements LocationListener{
        OverlayItem overlayItem;


        @Override
        public void onLocationChanged(Location location) {

            if (location != null){

                mapOverlays.remove(itemizedOverlay2);
                mapView.invalidate();

                lat = location.getLatitude();
                longi = location.getLongitude();
                GeoPoint point = new GeoPoint((int) (lat * 1E6), (int) (longi * 1E6));
                mControl.animateTo(point);

                overlayItem = new OverlayItem(point, "My Location", "This is probably where you are");
                itemizedOverlay2.addOverlay(overlayItem);
                mapOverlays.add(itemizedOverlay2);

            }

        }

我知道你可能需要更多的我的代码,但让我们留在这个街区看看是否有人看到我哪里弄错了。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-25 15:30:27

您还没有发布itemizedOverlay2所属类的代码,但我猜它扩展了ItemizedOverlay。因为它有一个addOverlay()方法,所以我也猜测它有一个.clear()方法。

如果是这样的话,那么在添加新位置之前,应该调用clear()

代码语言:javascript
复制
itemizedOverlay2.clear();
itemizedOverlay2.addOverlay(overlayItem);
票数 1
EN

Stack Overflow用户

发布于 2012-04-25 15:32:38

使用在类MyLocationOverlay中构建的:

代码语言:javascript
复制
position = new MyLocationOverlay(this, mapView);
position.enableMyLocation();
mapOverlays.add(position);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10318343

复制
相关文章

相似问题

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