【问题标题】:OSMDroid - Text overlayOSMDroid - 文本叠加
【发布时间】:2021-03-16 17:18:41
【问题描述】:

我有一张我的国家分界线到旅游区的地图(PathOverlay),我希望能够在上面显示每个地区的名称,只有纯文本,没有气泡,没有任何东西。
我已经搜索过如何做到这一点,但我发现的只是 osmdroid 的 svn 主干中的ItemizedOverlayWithFocus
有谁知道如何在地图上添加简单的文字(当然是纬度和经度)?

【问题讨论】:

    标签: osmdroid


    【解决方案1】:

    子类覆盖(例如“SimpleTextOverlay”)。

    在构造函数或设置器中,初始化您的文本、其位置 (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);
    }
    

    【讨论】:

      【解决方案2】:

      答案在这里发布

      How to add text below/above in the middle of the polyline in osmdroid

      使用 Marker 覆盖类,它是在 v5.2 左右添加到 osmdroid 中的。 设置标题,然后将图标设置为空,然后将其添加到地图中(按此顺序)

      【讨论】:

        【解决方案3】:
        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);
        

        【讨论】:

          猜你喜欢
          • 2011-09-23
          • 1970-01-01
          • 2012-05-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多