首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Mapsforge绘制OverlayWays

用Mapsforge绘制OverlayWays
EN

Stack Overflow用户
提问于 2013-05-23 15:31:57
回答 2查看 5K关注 0票数 1

我正在尝试在我的Android应用程序中使用Mapsforge绘制一条简单的路线。我遵循了一个示例,并创建了单点OverlayItems。但是当我试着画一条路线时,我在地图上看不到任何东西。有人能帮我吗?下面是我的简单代码:

代码语言:javascript
运行
复制
    Paint wayPaint = new Paint();
    wayPaint.setColor(color.Chocolate);
    ArrayWayOverlay wayOverlay = new ArrayWayOverlay(wayPaint,wayPaint);
    GeoPoint gp1 = new GeoPoint(41.38, 2.15);
    GeoPoint gp2 = new GeoPoint(41.39, 2.15);
    GeoPoint gp3 = new GeoPoint(41.40, 2.15);
    GeoPoint gp4 = new GeoPoint(41.41, 2.15);
    OverlayWay way = new OverlayWay(new GeoPoint[][] { { gp1, gp2, gp3, gp4 } });
    wayOverlay.addWay(way);
    mapView.getOverlays().add(wayOverlay);

我不知道我是不是要在某个地方放记号。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-02 18:57:23

尝试设置wayPaint样式和笔触宽度,如下所示:

代码语言:javascript
运行
复制
Paint wayPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
wayPaint.setStyle(Paint.Style.STROKE);
wayPaint.setColor(Color.BLUE);
wayPaint.setAlpha(192);
wayPaint.setStrokeWidth(6);
wayDefaultPaintFill.setStrokeJoin(Paint.Join.MITER);

ArrayWayOverlay wayOverlay = new ArrayWayOverlay(wayPaint,wayPaint);
//your points
OverlayWay way = new OverlayWay(new GeoPoint[][] { {geoPoint1,geoPoint2,... } });
wayOverlay.addWay(way);
mapView.Overlays().add(wayOverlay);

希望这能有所帮助!

票数 4
EN

Stack Overflow用户

发布于 2014-09-11 14:18:36

v-0.4.0开始,OverlayWay api已被弃用。由于我很难找到在地图上绘制覆盖图的新方法,我想我应该在这里发布这篇文章。Mapsforge现在添加了以下类型的覆盖图:

代码语言:javascript
运行
复制
 1. Circle
 2. FixedPixelCircle
 3. Marker
 4. Polygon
 5. Polyline

所有新类都扩展了Layer类,使其易于实现。实例化所需的对象并将其添加到MapView中,如下所示。

代码语言:javascript
运行
复制
// instantiating the paint object 
Paint paint = AndroidGraphicFactory.INSTANCE.createPaint();
paint.setColor(color);
paint.setStrokeWidth(strokeWidth);
paint.setStyle(style);

// instantiating the polyline object
Polyline polyline = new Polyline(paint, AndroidGraphicFactory.INSTANCE);

// set lat lng for the polyline
List<LatLong> coordinateList = polyline.getLatLongs();
coordinateList.add(latlng1);
coordinateList.add(latlng2);
coordinateList.add(latlng3);
coordinateList.add(latlng4);
coordinateList.add(latlng5);

// adding the layer to the mapview
mapView.getLayerManager().getLayers().add(polyline);

还有一个mapsforge示例link可用。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16708071

复制
相关文章

相似问题

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