OSMDroid - 文本叠加

时间:2014-01-21 15:59:57

标签: osmdroid

我有一张国家分隔符到旅游区域的地图(PathOverlay),我希望能够得到它上面每个区域的名称,只有纯文本,没有任何气泡。
我已经搜索过如何执行此操作但我在osmdroid的svn主干中找到的只有ItemizedOverlayWithFocus
有没有人知道如何在地图上添加简单文字(当然还有纬度和经度)?

3 个答案:

答案 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);