Как работает CopyrightOverlay.setCopyrightNotice () osmdroid? - PullRequest
0 голосов
/ 22 мая 2019

Я добавил на карту уведомление об авторских правах, например:

/* add copyright overlay */
val copyrightOverlay = CopyrightOverlay(this)
copyrightOverlay.setCopyrightNotice("This doesn't do anything :(")
mapView.overlays.add(copyrightOverlay)

В документации не указано, что должен делать setCopyrightNotice(String pCopyrightNotice).

Я ожидал, что это как-то изменит текст наложения авторских прав.Но, как показано на скриншоте ниже, наложение по-прежнему гласит: © OpenStreetMap contributors

Кто-нибудь знает, как предполагается использовать этот метод?Я что-то пропустил?

screenshot

(причина, по которой я попытался отредактировать уведомление, заключалась в том, чтобы найти способ сделать пожертвования для OSM, аналогично наложениюна openstreetmap.org

1 Ответ

0 голосов
/ 23 мая 2019

Вы можете заглянуть в исходный код : так как он с открытым исходным кодом.

Там мы видим, что установщик должен установить текст:

public void setCopyrightNotice(final String pCopyrightNotice) {
        mCopyrightNotice = pCopyrightNotice;
}

Но мытакже видно, что метод draw получает уведомление об авторском праве из источника листов:

@Override
public void draw(Canvas canvas, MapView map, boolean shadow) {
    setCopyrightNotice(map.getTileProvider().getTileSource().getCopyrightNotice());  
    draw(canvas, map.getProjection());
}

Это практически переопределяет значение, которое вы устанавливаете при каждом рисовании оверлея.

Я думаю, что этоошибка в API.Метод setCopyrightNotice не должен быть публичным, это просто сбивает с толку.

Я бы посоветовал применять ваше собственное уведомление об авторских правах повсеместно - вы можете использовать исходный код и воспроизводить код в точности так, как вы хотите.

...