当前位置: 首页 > 知识库问答 >
问题:

Android-osmbonuspack-如何在地图上旋转标记标题

澹台建华
2023-03-14

我的mapview(osmbonuspack)旋转到行走的方向。

我如何在地图上旋转标记的标题,使它们是水平的--即易于阅读?我看到标记本身不需要任何旋转,而地图是转动的。

mapview.setMapOrientation( (float) -headingByCompass);
marker.setRotation( rotation);

可以肯定的是:这是关于文字,是在倒置的眼药水附近。这不是气泡中的信息。

共有1个答案

徐帅
2023-03-14

标记本身没有附加标签。所以,我创建了一个名为MarkerWithLabel的Marker子类。在这个子类中,会绘制标题或标签。

当映射被旋转时,该旋转随后被传递给所有MarkerWithLabel对象。mapview上的后续无效操作将使更改可见。因此,标记和标签总是水平的,以便于阅读。

MarkerWithLabel类:

public class MarkerWithLabel extends Marker {
    Paint textPaint = null; 
    String mLabel = null; 
    float rotation = 0.0f;

    public MarkerWithLabel( MapView mapView, String label) {
        super( mapView);
        mLabel = label; 
        textPaint = new Paint();
        textPaint.setColor( Color.RED);
        textPaint.setTextSize( WaypointActivity.textSizeCanvas25sp);
        textPaint.setAntiAlias(true);
        textPaint.setTextAlign(Paint.Align.LEFT);
        setTitle( label);
    }
    public void draw( final Canvas c, final MapView osmv, boolean shadow) {
        draw( c, osmv); 
    }
    public void draw( final Canvas c, final MapView osmv) {
        super.draw( c, osmv, false); 
        Point p = this.mPositionPixels;  // already provisioned by Marker
        if( rotation <= -1 || rotation >= 1) { // could be left out
            c.save();
            c.rotate( rotation, p.x, p.y);
            c.drawText( getTitle(), p.x, p.y+20, textPaint);
            c.restore();
        } else { 
            c.drawText( getTitle(), p.x, p.y+20, textPaint); 
        }
    }
}
List<Overlay> markersOnTheMap = mv.getOverlays();
if( markersOnTheMap == null || markersOnTheMap.isEmpty()) { 
    return ; 
}
for( int i = 0; i < markersOnTheMap.size(); i++) { 
    Object o = markersOnTheMap.get( i);
    if( o instanceof MarkerWithLabel) {
        MarkerWithLabel m = (MarkerWithLabel) o;
        m.rotation = rotation;
    }
}

希望这对你有帮助。

 类似资料:
  • 我无法使用OSMbonuspack标记,因为无法识别导入 给出的错误不能解析符号“marker”,尽管项目中有osmdroid(v5.6.4)和osmbonuspack(v6.3)。 有没有人知道这为什么不行?

  • 问题内容: 我正在从事类似于UBER,Lyft或OLA的项目。使用可用的移动汽车在家里进行地图。我正在寻找某种图书馆,可以像UBER一样使汽车平稳行驶和转弯。现在,我可以使用以下代码将汽车平稳地从一个纬度移动到另一个纬度。但是棘手的部分是转弯,并确保汽车在转向时朝前。 平稳行驶的汽车代码: 问题答案: 我最近遇到了相同的用例。这是我的解决方案。 首先,我要感谢@VipiN分享了“ The Movi

  • 问题内容: 如何在Google Map V3 上旋转图像(标记图像)? 没有为V2一个很好的例子在这里,到底做什么,我需要的。但是对于GMap2!他们用旋转的画布来做。 经常使用JS / JQuery旋转图像。但是如何将其应用于地图图像? 一种提到的方法是针对不同的角度使用不同的图像并在它们之间切换-这不是我想要的。我不喜欢有这么多图像,我想按代码旋转。 备注:有类似的问题,但所有问题仅针对V2而

  • 问题内容: 我通过以下方式向GoogleMap添加默认标记: 如何使标记始终显示标题和摘要而无需触摸?我也想禁用隐藏它们。 问题答案: 这很简单:

  • 我想更改Google Maps上选定的标记图标,因此我有以下代码: 在这一行,我从下面得到错误: 例外情况如下: