- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我希望能够获得一些对正在绘制的当前对象的引用
@Override
public void draw(Canvas canvas, MapView mapView,boolean shadow) {
//Log.i("DRAW","MARKER");
super.draw(canvas, mapView, false);
}
上面是我的绘图方法,我想扩展绘图方法以在每个项目下面写下标题。这需要 OverlayItem 中的 .getTitle() 方法。可能在此方法之外跟踪对象,但不确定将其放在哪里....
最佳答案
我做过类似的事情。我在 MapView
中添加了一些标记,然后用一条线将它们连接起来。
我有一个扩展 Overlay
的类 LineOverlay
。在构造函数中,它获取要通过线连接的项目列表。
类似于:
public LineOverlay(ItemizedOverlay<? extends OverlayItem> itemizedOverlay, int lineColor) {
mItemizedOverlay = itemizedOverlay;
colorRGB = lineColor;
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaint.setColor(colorRGB);
mPaint.setStrokeWidth(LINE_WIDTH);
}
然后在 onDraw()
上我这样做:
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
if ( mItemizedOverlay.size() == 0 || mItemizedOverlay.size() == 1 )
return;
Projection projection = mapView.getProjection();
int i = 0;
while( i < mItemizedOverlay.size() - 1 ){
OverlayItem begin = mItemizedOverlay.getItem(i);
OverlayItem end = mItemizedOverlay.getItem(i+1);
paintLineBetweenStations(begin,end,projection,canvas);
i++;
}
super.draw(canvas, mapView, shadow);
}
private void paintLineBetweenStations(OverlayItem from, OverlayItem to, Projection projection, Canvas canvas){
GeoPoint bPoint = from.getPoint();
GeoPoint ePoint = to.getPoint();
Point bPixel = projection.toPixels(bPoint, null);
Point ePixel = projection.toPixels(ePoint, null);
canvas.drawLine(bPixel.x, bPixel.y, ePixel.x, ePixel.y, mPaint);
}
在您的情况下,您可以做一些类似的事情,创建一个 SubtitleOverlay
,它扩展 Overlay
,它接收构造函数中的所有项目,然后在 draw
上方法在正确的位置创建字幕。
关于android - 获取当前正在绘制的 OverlayItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3200897/
那是我的代码: OverlayItem overlayItem = new OverlayItem(point, "Test", "Hello"); itemizedOverlay.addOverla
我希望能够获得一些对正在绘制的当前对象的引用 @Override public void draw(Canvas canvas, MapView mapView,boolean sha
我正在使用 OSMdroid。 感谢这篇文章,我成功了 Adding Overlay to OSMDROID在特定位置创建叠加静态项目。 现在我正在尝试使 map 更加动态。因此,当位置发生变化时,O
我必须在特定点的 map 上放置一些叠加层,我从 API 获取点坐标。我在异步任务中进行抓取。我成功地放置了叠加层,当我放大 map 或跨越它时,响应非常慢。这是我的 overlayitem 类和我的
我想在我的 map 上显示不同的标记。我能找到的一种解决方案是为每个标记定义一个新的叠加层。但后来我发现用 可以更容易地完成 OverlayItme.set Marker(Drawable marke
我有一个简单的 Google map 叠加层:http://pastebin.com/Rg8miMSh我根据缩放级别在其上添加/删除项目。删除/添加后,我在叠加层上调用 populate 并在 map
我正在用单个 ItemizedOverlay 中的几十个 OverlayItem 构建 map 。我的 map 可以非常近地查看(大约 18+ 缩放级别),OverlayItems 彼此非常接近。放大
我创建了一个自定义的 OverlayItem 类,这样我基本上可以拥有一种 OverlayItem,其 Drawable 标记会根据我传递给它的某些数据的状态自行设置。 我试图通过在我的第一次尝试中使
我有一个类,它扩展了 OverlayItem 以包含更多字段。我已经使用 PointOfInterest 类更改了程序中出现的所有 OverlayItem。 当我尝试运行适用于 OverlayItem
如何从 OverlayItem 打开 Activity:现在这是我的代码: @Override protected boolean onBalloonTap(int index) { if (
我在获取某个 OverlayItem 正在使用的可绘制对象时遇到了一些麻烦,因此我可以计算它的高度并正确偏移显示 onTap 的注释。这是我尝试获取该可绘制对象的代码: Drawable marker
我有一个使用 mapview-overlay-manager 的应用程序使用 Web API 中的 LazyLoadManager 在 MapView 上绘制 map 标记的代码。当我拖动 map 时
我正在开发 android 应用程序,我能够使用 ItemizedOverlay 在 map 上显示多个图标,我还实现了 ItemizedOverlay 的 onTap(int index) 方法以在
我有一个可用的 MapView,上面有 Overlays。我已经完成了官方 MapView-Tutorial:http://developer.android.com/guide/tutorials/
我正在开发 MapView 应用程序,并想在程序中放置一个漂亮的小复活节彩蛋。我想要做的是有一个基本上不可见的叠加项,但是当点击时会触发一个事件来显示 View 。 现在在 iPhone 上,我通过在
我在使用 Android MapView API 时遇到了一些问题。我从要在 MapView 中显示的数据库中获取 OverlayItems。如果我显示 100 个图标,我没有问题,但如果它变得更多—
首先,我在这里继承了很多代码,虽然我已经梳理了几次以寻找这种行为的原因,但我很困惑。 我希望最后点击的 OverlayItem 位于其余部分之上,即使它看起来很傻。我看到的是,虽然 MapView 正
在我的应用中有一个MapView,我给它添加了OverlayItems,大约500个,但以后会更多甚至数千个... 我的问题是:当我切换到此 Activity 时,我遇到了 3-4 秒的大量停电,然后
我有一个 map View ,其中在不同的地址上绘制了多个图钉。一切都很好。当您有多个项目指向同一个地址时,就会出现问题。例如, 单元 1/45 ABC 街,XYZ XYZ ABC 街 45 号单元
我想进一步注释我放置在 MapView 上的自定义标记(使用 ItemizedOverlay),方法是显示一个简单的文本标签,该标签在触发 onTap 事件时针对特定项目显示。 这是 Google M
我是一名优秀的程序员,十分优秀!