我在地图上添加了版权声明,如下所示:
/* add copyright overlay */
val copyrightOverlay = CopyrightOverlay(this)
copyrightOverlay.setCopyrightNotice("This doesn't do anything :(")
mapView.overlays.add(copyrightOverlay)
documentation没有提到setCopyrightNotice(String pCopyrightNotice)
应该做什么。
我希望它能以某种方式更改版权叠加文字。但是,如下面的屏幕快照所示,叠加层仍显示© OpenStreetMap contributors
有人知道应该使用这种方法吗?我有想念吗?
(我尝试编辑该通知的原因是找到一种向OSM捐款的方法,类似于openstreetmap.org上的叠加层
答案 0 :(得分:0)
您可以查看源代码:https://github.com/osmdroid/osmdroid/blob/473046516b73f16b9e4709500fd2171052d7ae9e/osmdroid-android/src/main/java/org/osmdroid/views/overlay/CopyrightOverlay.java,因为它是开源的。
我们可以看到设置器应该设置文本:
public void setCopyrightNotice(final String pCopyrightNotice) {
mCopyrightNotice = pCopyrightNotice;
}
但是我们还可以看到draw方法从tile来源获取了版权声明:
@Override
public void draw(Canvas canvas, MapView map, boolean shadow) {
setCopyrightNotice(map.getTileProvider().getTileSource().getCopyrightNotice());
draw(canvas, map.getProjection());
}
这实际上会覆盖您每次绘制叠加层时设置的值。
我认为这是API中的错误。 setCopyrightNotice
方法不应该公开,这很令人困惑。
我建议过分实施您自己的版权声明-您可以放任原始来源,并完全按照自己的意愿复制代码。