QT QML Плагин карты QtLocation

У меня есть собственный локальный сервер плиток карты Z/X/Y, и я хочу использовать его в качестве фона карты в приложении QML. Глядя на пример кода, кажется, что это делается:

 Plugin {
    id: osmPlugin
    name: "osm"
 }

Поэтому мне нужно написать свой собственный плагин. Но документация кажется скудной, и я не могу найти исходный код для версии osm или инструкции по установке.

Это относительно легко сделать, или это можно сделать без написания нового плагина?

3 ответа

Вы можете установить osm.mapping.host так:

    Plugin {
        id: osmPlugin
        name: "osm"


        PluginParameter { name: "osm.mapping.host"; value: "https://tile.openstreetmap.org/" }
        PluginParameter { name: "osm.geocoding.host"; value: "https://nominatim.openstreetmap.org" }
        PluginParameter { name: "osm.routing.host"; value: "https://router.project-osrm.org/viaroute" }
        PluginParameter { name: "osm.places.host"; value: "https://nominatim.openstreetmap.org/search" }
        PluginParameter { name: "osm.mapping.copyright"; value: "" }
        PluginParameter { name: "osm.mapping.highdpi_tiles"; value: true }
    }

Но не забудьте установить тип пользовательской карты, используя следующий код:

    Map {
        id: map
        height: parent.width
        width: parent.width
        plugin: osmPlugin

        Component.onCompleted: {
            for( var i_type in supportedMapTypes ) {
                if( supportedMapTypes[i_type].name.localeCompare( "Custom URL Map" ) === 0 ) {
                    activeMapType = supportedMapTypes[i_type]
                }
            }
        }
    }

Хорошо, я нашел способ сделать это без написания плагина.

Плагин OSM использует сервер плиток для получения плиток. URL-адрес устанавливается с помощью опции плагина osm.mapping.custom.host. Установка этого параметра в качестве локального URL- адреса позволяет мне использовать свои собственные плитки, если они соответствуют структуре osm.

Если документация не охватывает что-то или не достаточно подробно, всегда полезно помнить, что исходный код Qt общедоступен.

Например плагин OSM здесь

Браузер кода Woboq также хорош для этого, если вы знаете название класса или файла, который вы ищете

Другие вопросы по тегам