我试图画一个简单的方式,路线,在我的Android应用程序与Mapsforge。我遵循了一个例子,我创建了单个点,OverlayItems。但是当我试图画一条路线时,我在地图上什么也看不见。有人能帮帮我吗?下面是我的简单代码:
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);
我不知道我是否需要在某个地方做标记…
OverlayWay
api在v-0.4.0
时已弃用。因为我很难找到在地图上绘制叠加的新方法,所以我想把它贴在这里。Mapsforge
现在添加了以下类型的叠加:
1. Circle
2. FixedPixelCircle
3. Marker
4. Polygon
5. Polyline
所有的新类都扩展了Layer
类,使其易于实现。您实例化所需的对象并将其添加到MapView
中,如下所示。
// 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示例链接。
尝试设置wayPaint样式和描边宽度,如下所示:
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);
希望这对你有帮助!