I am currently using MapBox SDK to display raster map tiles within an Java/Kotlin implemented Android app. However, I want to replace the Mapbox SDK with an alternative primarily because, as far as I understand, when I use MapBox SDK in my app even just to display other third party map tiles, it will result in some location information about my user's being intermittently sent to Mapbox. I am now considering osmdroid and was looking for some input on whether this will be an appropriate alternative. I am using Here maps as the primary source of raster map tiles [though I also have limited coverage map tile server (generated from OSM) of my own which I do not currently use but might as an alternative if needed]. Within the app, the functionality that I want to implement is relatively simple:
(1) Display map tiles based on standard X,Y,Z system
(2) Display tap-able icons overlaid at certain (GPS) locations on the displayed maps
(3) Allow user to zoom in-out or scroll across the displayed map
However, one absolute key requirement is that none of my user location information will be shared as part of the terms of usage for the SDK.
Is Osmdroid SDK a possible suitable alternative to mapbox SDK for this ?
Thanks for any comments.
Since 2017, I've been using the OsmDroid SDK quite frequently. The SDK is primarily used to create my situational awareness map application and to manage my offline GeoPackage raster and vector map collections via OsmDroid GeoPackage API support, though the core GeoPackage API allows me to use online GeoPackage-based map providers.
To respond to your inquiry: No user data, including location, is stored by the OsmDroid APIs. It is merely an SDK for manipulating its MapView (which extends from Android's ViewGroup) and supports loading tile sources from online/offline map databases.
It will be our responsibility to implement our own location positioning codes so that any user position, in addition to other map objects you want to include in the map, can be drawn on the map.
Unlike the Google Maps SDK, no API key is required for the OsmDroid SDK. In fact, it attempts to emulate what the Google Maps SDK can do while remaining royalty-free and open-source license compliant. It primarily serves OpenStreetMap purposes. To improve the OsmDroid experience, a free OsmBonusPack SDK simplifies application use-cases.
https://github.com/MKergall/osmbonuspack
Except that you'll need a TOKEN/API key from the map database provider of your choice for any non-free map databases you want to use as base maps or tile sources. This requires you to code in the necessary parameters for the tile module provider to work.
https://github.com/osmdroid/osmdroid/wiki/Map-Sources
Related
I'm currently using (Here maps freemium plan), integrated Here maps Android SDK (Premium Edition -version 3.18) with Android studio project.
Also created a Data Hub project at (https://studio.here.com/) with a layer that contains POIs data with customized points style.
What I'm trying to do is, integrating data from Data Hub with my Android project, so customized POIs will be visible on the map once it's loaded. I do know that adding a MapContainer can work as a map layer, then can hold multiple MapMarker objects, but I don't think this would be a wise move when working with huge amount of POIs and other Data.
So, it there a method to build a connection between Data Hub and Android project, to automatically sync data and styles?
Is this because of the freemium plan?
And if it's a plan limitation, where's the documentation for building such connection?
Since, the only thing I'm receiving once publishing Data Hub project is a viewer link.
You can use XYZ API to request your data on HERE Data Hub, download per tile or full data set or even search with location or attributes. You need to defile the caller in your app to call XYZ API, then convert them to MapObject and render them on the map.
I am trying to create an indoor map navigation in android studio for my thesis project in school and I'd like to know some basics or where should I start.
I'm also planning to use images as a map with 8 floors in it unless if there's anything simpler way to do it
You can use the Navigine SDK for this task, it allows indoor navigation through WiFi, BLE, WiFi-RTT, Eddystone.
You just create the map on web client using your floor images, set there transmitters, download mobile app and will see the navigation.
I want to change from google maps API to Mapbox but some details and routes are missing in KSU campus I uploaded an image of comparison between google maps with lots with details and Mapbox, my question here can I add them manually using Mapbox API (routes and locations) and if I successfully do so, the routing still works perfectly?
mapbox
google maps
Mapbox maps rely on data from OpenStreetMap, a global volunteer project that everyone can contribute to. If you are familiar with this area in the KSU campus, I encourage you to go to openstreetmap.org, create an account, and make improvements directly. You'll have the option to go through an interactive tutorial to get you started. There are more details for advanced editing here as well: https://labs.mapbox.com/mapping. The Mapbox Streets tileset is updated regularly as features are edited or added to the map, which means that if you edit OpenStreetMap, you will eventually see your changes reflected on your Mapbox map.
These changes made to the road network in OSM will also be ingested by the Mapbox Directions API, so that you can use them when routing in your application.
I want to use Google Maps on my java based application.
My application would overlay images on maps based on latitude and longitude and change position of these images with time. The time interval will be very short so it needs to be efficient.
Currently I can find following solution, but none of these works :
1) Using Qt WebKit through Qt Jambi : This will just open Google Maps in browser over my application, I would not have control of overlaying images on top of the Map, according to the lat/long.
2) Using Google Maps Image API : This would open image, but I would not be able to translate the location in lat/long into coordinates in image, also as the position of images are changing I will need zoom-in and zoom out feature, which will be unavailable here.
Is there an exiting solution which fits my need?
Thanks!
I have a tracking application and uses osmdroid library. My prolbem is that osmrdroid does not support routing. By the way the application is purely offline. Are there any suggestions that you can provide with regards to a library that supports routing, which can coordinate with the osmdroid map overlay. What I need to do is only calculate shortest path and draw it on the offline map from one point to the next.
I found this link:
http://code.google.com/p/j2memaprouteprovider/source/browse/trunk/J2MEMapRouteAndroidEx/src/org/ci/geo/route/android/MapRouteActivity.java
but I don't know how to integrate it on osmdroid application.
I think in all osmdroid apps the map data come from a code line like this:
map.setTileSource(TileSourceFactory.MAPQUESTOSM);
This means the maps are downloaded as raster tiles, or if you have an offline application the maps are cached as tiles. So you do not have a graph of streets that could be used to calculate a route. So routing isn't supported in osmdroid for a reason.
To do offline route calculation you will need the street network data on your phone. Then you can use a simple wayfinding algorithm to calculate the shortest path. (like Dijkstra)