Android and iOS SDK to display maps and geodata of swisstopo. Owner: simonroesch, Deputy: gjn

Overview

Open Swiss Maps SDK




Android and iOS SDK to display maps and geodata of swisstopo

Free map layers and geo data by swisstopo in your app

Offer your mobile users the official maps of Switzerland and many other maps and data of swisstopo in your app! Integrate them easily with the "Open Swiss Maps SDK". The data is available for free thanks to Open Government Data (OGD) and can be used freely. More Information about OGD: www.swisstopo.ch/ogd

Getting started

Readme Android

Readme iOS

Features

  • Displays swisstopo map layers:
    • Landeskarten (farbig)
    • Landeskarte 1:1 Million | LK1000
    • Landeskarten (grau)
    • Landeskarte Winter | LK10, LK25, LK50, LK100
    • SWISSIMAGE Hintergrund
    • Luftfahrtkarte ICAO
    • Segelflugkarte
    • Sperr- und Gefahrenzonenkarte
    • Dufourkarte Erstausgabe
    • Siegfriedkarte Erstausgabe
    • Eisenbahn swissTLM3D
    • Strassen und Wege swissTLM3D
    • Seilbahnen swissTLM3D
    • Wanderwege
    • Wanderland
    • Veloland Schweiz
    • Mountainbikeland Schweiz
    • Hangneigung ab 30°
    • Hangneigungsklassen ab 30°
    • Wildtierschutzgebiete
    • Wildruhezonen
    • Schneeschuhrouten
    • Skirouten
    • Einschränkungen für Drohnen
  • Numerous more layers available through the WMTS service of Swisstopo
  • Combine multiple layers on top of each other
  • Full mobile map experience with touch & gesture handling
  • Update camera to show or animate to different parts of the map
  • Add your own polygon layers or icon layers

...and more to come soon!

Architecture

To support both the Android and iOS platform, most of the code-base is written in C++ and shared between the two platforms. The Kotlin and Swift interface bindings are generated with a fork of the Djinni library. The library intentionally is designed to have a modular structure, so that most parts of it can be adjusted or completely replaced with custom implementations. Most of the interfaces are also exposed to Swift and Kotlin, so extensions can also conveniently be programmed in those languages.

OpenMobileMaps

The Open Swiss Maps SDK uses Open Mobile Maps as its core. Open Mobile Maps is a lightweight and modern Map SDK for Android and iOS. More information about this can be found on openmobilemaps.io or on Github.

License

This project is licensed under the terms of the MPL 2 license. See the LICENSE file.

Terms of use for free geodata and geoservices (OGD) from swisstopo

Comments
  • Cannot add layer

    Cannot add layer "ch.swisstopo.amtliches-gebaeudeadressverzeichnis"

    Platform: Android, SDK Version: 1.2.0

    I've tried using the following code to add a map layer:

    val layer = mapView.addSwisstopoLayer("ch.swisstopo.amtliches-gebaeudeadressverzeichnis")
    // same behaviour when trying like this:
    val layer = mapView.swisstopoWmtsResource.createLayer("ch.swisstopo.amtliches-gebaeudeadressverzeichnis", mapView.loader)
    mapView.addLayer(layer.asLayerInterface())
    

    With other map layers this works fine. But this layer ch.swisstopo.amtliches-gebaeudeadressverzeichnis is always failing with the following exception:

    java.lang.NullPointerException: Attempt to invoke virtual method 'io.openmobilemaps.mapscore.shared.map.LayerInterface io.openmobilemaps.mapscore.shared.map.layers.tiled.raster.Tiled2dMapRasterLayerInterface.asLayerInterface()' on a null object reference
    

    The map layer is available in the Geocatalog. For example with following link: https://map.geo.admin.ch/?layers=ch.swisstopo.amtliches-gebaeudeadressverzeichnis

    Is this layer currently not supported in the SDK?

    opened by yannickpulver 2
  • openmobilemaps dependency

    openmobilemaps dependency

    Hello, is it possible to set the openmobilemaps dependency within the Gradle file to update automatically up to the next major version? This would be useful in order to instantly receive all the library fixes. For example, there are some super important fixes (memory leak and crash).

    In the iOS project is already set like that: dependencies: [ .package(name: "MapCore", url: "https://github.com/openmobilemaps/maps-core.git", .upToNextMajor(from: "1.1.0")), ],

    Thank you very much, Fabio

    opened by FabioMartignoni89 2
  • Swisstopo Map - ZoomInfo

    Swisstopo Map - ZoomInfo

    Allow for ZoomInfo-customization on the SwisstopoMapView and in the SwisstopoOffscreenMapRenderer, don't use adaptScalelToScreen in offscreen rendering by default

    opened by maurhofer-ubique 0
  • Offline XYZ tile generation

    Offline XYZ tile generation

    In my iOS app I need the XYZ tiles (http://api.geo.admin.ch/services/sdiservices.html#xyz) like the ones that are available from the GeoAdmin API online service. Is this SDK able to produce those files? And if so, can it produce them also in an offline fashion so that one can download the material and then have the SDK generate those files without the need for an internet connection?

    Should I instead check out the Open Mobile Maps SDK or is my requirement completely out of the scope?

    The background for my question is that I need to provide that data to a Google Maps SDK GMSTileLayer (https://developers.google.com/maps/documentation/ios-sdk/reference/interface_g_m_s_tile_layer).

    Any pointers would be much appreciated!

    opened by luzianscherrer 4
  • No such module 'SwisstopoMapSDK'

    No such module 'SwisstopoMapSDK'

    I added this plugin on iOS following the installation guide, and I'm correctly see the packages under 'Swift Package Dependencies', but when I try to use this plugin under Pods sub project, the build fails with this error: <No such module 'SwisstopoMapSDK'>.

    opened by francescodrag 0
  • Any easy way to use this with SwiftUI?

    Any easy way to use this with SwiftUI?

    Hi :)

    What is the easy way to use this SDK in SwiftUI?

    The whole "UIViewRepresentable" road seems a bit cumbersome, especially if a lot of data has to be passed both ways.

    Admittedly I am very inexperienced with the old UIKit and mostly know the newer SwiftUI

    Thanks for the help!

    opened by N3XT191 0
Releases(1.2.0)
Owner
geo.admin.ch
Swiss Geoportal
geo.admin.ch
Enabling services on your device 81 Jan 6, 2023
Encapsulates the two protocols of OpenVpn and Ikev2, you only need to enter the server IP and port number to realize the connection and status display, and the specific situation of the connection can be displayed at the same time。

NewVpnCore 封装了OpenVpn和Ikev2两种协议,只需要输入服务器IP和端口号即可实现连接和状态显示,同时可以显示连接的具体情况。 UniteVpn Core(第一版) 1. 模块说明 unitevpn:封装了vpn的操作和统一不同协议信息的模块 ikev2:IKEV2协议的源码 op

ZFashion 3 Jun 8, 2022
SixtyFPS is a toolkit to efficiently develop fluid graphical user interfaces for any display: embedded devices and desktop applications

SixtyFPS is a toolkit to efficiently develop fluid graphical user interfaces for any display: embedded devices and desktop applications. We support multiple programming languages, such as Rust, C++, and JavaScript.

SixtyFPS 5.5k Jan 2, 2023
Show pressure & temperature readings from Home Assistant/MQTT on a mini display

home-assistant-barometer-display A mini Home Assistant display to show pressure & temperature readings (and made to look pretty with 'freeform pcb' br

David Barton 4 Jan 4, 2022
A socket daemon to multiplex connections from and to iOS devices

usbmuxd A socket daemon to multiplex connections from and to iOS devices. Features usbmuxd stands for "USB multiplexing daemon". This daemon is in cha

libimobiledevice 1.2k Jan 7, 2023
File detection bypass for iOS

CP-Bypass Public ****による脱獄検知を回避するTweak/Patch 動作環境 non-KPP/KTRR devices KPP devices (iOS 10.0-10.3.3) 使い方 kernel patch 32-bitの場合: インストール後、Terminalからsys

dora2ios 20 Sep 4, 2022
Run SSH on iOS 12 device.

Shelly12 Run SSH on iOS 12 device. Only worked on iPad Air 1, iOS 12.4 Working Get root Set tfp0 to hsp4 Escape Sandbox Restore/Remount RootFS Defeat

null 6 May 11, 2021
The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services.

Welcome! The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design

Microsoft 7.2k Dec 30, 2022
Firmware and SDK for the ER-301

ER-301 Sound Computer Table of Contents Introduction Emulator Compiling the emulator Running the emulator Configuring the emulator Installing packages

Orthogonal Devices 109 Dec 14, 2022
A modding SDK that allows you to interact with a modified version of Cocos 2DX v2.2.3 utilized by Geometry Dash

What is CappuccinoSDK CappucinoSDK is a modding utility that allows you to interact with a modified version of the game engine Cocos-2DX v2.2.3, which

null 18 Oct 29, 2022
Good Game, Peace Out Rollback Network SDK

(日本語ドキュメントはこちら) What's GGPO? Traditional techniques account for network transmission time by adding delay to a players input, resulting in a sluggish,

Tony Cannon 2.7k Dec 29, 2022
grey sdk

grey是龙游天下公司的产品"汉末霸业"的一个附属产品。开始是为了解决产品的扩展性,自由度,热更新,视频流播放,用户DIY,3d扩展,人工智能等功能而开发。后来把这些功能集成整理后,从而形成了一个完整的应用级解决方案。 grey是一套应用开发解决方案,使用类似c++的语言(cplus)进行开发。 让

grey-platform 51 Jun 18, 2022
MCUXpresso SDK

Overview MCUXpresso SDK is a comprehensive software enablement package designed to simplify and accelerate application development with Arm® Cortex®-M

NXP Micro 204 Dec 31, 2022
A modding SDK for Hitman 3

ZHM Mod SDK A modding SDK and mod loader for HITMAN 3. Description This is a community-made modding SDK and mod loader for HITMAN 3. Its purpose is to

Orfeas Zafeiris 54 Jan 3, 2023
Tuya IoTOS Embeded SDK WiFi & BLE for BK7231T

Tuya IoTOS Embedded Wi-Fi and BLE SDK for BK7231T 中文版 | English Overview Developed independently by Tuya Smart, Tuya IoTOS is the world's only IoT ope

Tuya 35 Dec 5, 2022
C++ Kite Connect API library / SDK

Kite Connect API C++ client Overview Dependencies Getting dependencies Linux Others & uWS v0.14 Building & installation Examples REST API Ticker Docum

Zerodha Technology 27 Dec 30, 2022
Tuya MCU SDK Arduino Library is developed based on the Tuya Wi-Fi general integration solution

Tuya MCU SDK Arduino Library is developed based on the Tuya Wi-Fi general integration solution. The device's MCU is connected to a Wi-Fi module through a serial port to implement a network connection. The development is based on general firmware, which supports the adaptative 9600 and115200 baud rate

Tuya 85 Dec 28, 2022
Teamspeak FriendSystem Plugin written in C/C++ (Teamspeak SDK)

Teamspeak-FriendSystem Teamspeak FriendSystem Plugin written in C/C++ (Teamspeak SDK) Install it into AppData / Roaming / Ts3Client / plugins Its only

null 2 Sep 24, 2021
Minecraft Windows 10 Bedrock SDK (1.17.30)

MCBE SDK Minecraft Windows 10 Bedrock SDK (1.17.30) Simple usage: cmake_minimum_required(VERSION 3.20) project(DummieProj VERSION 0.1.0) SET(CMAKE_CX

null 21 Oct 15, 2022