我有一张国家分隔符到旅游区域的地图(PathOverlay),我希望能够得到它上面每个区域的名称,只有纯文本,没有任何气泡。
我已经搜索过如何执行此操作但我在osmdroid的svn主干中找到的只有ItemizedOverlayWithFocus
。
有没有人知道如何在地图上添加简单文字(当然还有纬度和经度)?
答案 0 :(得分:0)
子类叠加(例如“SimpleTextOverlay”)。
在构造函数或setter中,初始化文本,其位置(GeoPoint)和要使用的Paint。
然后以这种方式实现draw方法:
@Override protected void draw(Canvas canvas, MapView mapView, boolean shadow) {
if (shadow) return;
//Get the screen position:
final Projection pj = mapView.getProjection();
pj.toMapPixels(geoPosition, screenPosition);
//And draw your text at screenPosition:
canvas.drawText(text, screenPosition.x, screenPosition.y, paint);
}
答案 1 :(得分:0)
此处发布的答案
How to add text below/above in the middle of the polyline in osmdroid
使用标记覆盖类,它在v5.2附近的某处添加到osmdroid。 设置标题,然后将图标设置为null,然后将其添加到地图(按此顺序)
答案 2 :(得分:0)
distanceMarker = new Marker(mapView);
distanceMarker.setIcon(null);
distanceMarker.setTextIcon(distance);
distanceMarker.setOnMarkerClickListener((marker, mapView) -> true);
GeoPoint p3 = new GeoPoint((loc.getLatitude()+poi.getLat())/2,(loc.getLongitude()+poi.getLon())/2);
distanceMarker.setPosition(p3);
mapView.getOverlayManager().add(distanceMarker);