I know I can write an android app using open street mobile map api but I also want to support offline mode in my map. Is there a way to download the map of a city or a country and use it locally on android phone?
thanks.
Have you looked at the Open Street Maps Wiki page for Android? There seems to be a number of open source libraries some of which may have offline caching.
You can use the following combination (it worked very well for me):
OsmAndMapCreator: for downloading map for offline usage OsmAndMapCreator
Osmand : andrdoid application for map navigation and tracking Osmand google project
Once you install the osmand application on your android you can set the directory on which you will save the offline maps (beside osm, you can use various other sources as google map for example and easily switch between them).
The application have already a very complete set of features, and having the code you can extend/learn from it.
Related
I'm using Here maps evaluation (90 days) now.
My purpose is to use HERE offline (i.e., with Android phones that do not have cellular data, and even do not have WiFi, but can only make and get calls) and I want the map data to be avaailable only in 1 country.
How can I do this with HERE api?
EDIT
What I did so far:
1. I downloaded the evaluation of HERE, and built simple app. This app is only working with WiFi/Cellular data.
2. I downloaded HERE apk from Google Play and there it gave me to navigate offline after I downloaded the country map from the application.
I want this offline feature in an application that I write.
1) Be sure that you are using Premium version of SDK. Starter version didn't support offline mode. Difference between versions shown on this page https://developer.here.com/develop/mobile-sdks
2) Look at example for how to download a map for specific region https://tcs.ext.here.com/sdk_examples/MapDownloader.zip
I want to use HERE map offline capabilities, for this i downloaded map for my country using "here we go" app.
Now in my android project i am setting this
MapEngine.setOnline(false);
But my android project app is unable to load map, it is showing blank area. Since map is already downloaded, I am expecting this to show map from downloaded map version. Do i need to add MapLoader even if i already have downloaded map ? OR I need to call some other method?
I am using premium SDK that does have offline support.
App is working fine with Data connection on if i don't add setOnline(false)
Maps downloaded with HERE WeGo app wouldn't be available for your app. You need to download maps through your app.
For downloading maps:
- look at the description in documentation https://developer.here.com/mobile-sdks/documentation/android-hybrid-plus/topics/maps-offline.html
- look at an example app https://tcs.ext.here.com/sdk_examples/MapDownloader.zip
I am developing an Android app using Google Maps API, and I want to know if I can download or cache the part of map that the user is watching to use it offline.
Thanks!
There is no way for precaching Google Maps. And also it is illegal .If you want to use precaching , you can go for Open Street Maps and other open alternatives .
Is it possible to develop an application for Android and iOS that uses offline maps with routes and use GPS to navigate on them? (On foot and vehicle)
I found another answers but the question that is still in my head is, is it possible to user Google Maps or Apple Maps for this?
I also tried to search for a good 3rd party service that gives me what i want, but still nothing.
Regards,Elkas
You can't use Google Map for offline usage. It's against TOS (Terms Of Service)
(any caching or downloading of google maps is against Google Map TOS)
and is illegal.
You can use OpenStreetMaps(OSM) and a map serving service like Mapbox. OSM uses open mapping data that has been provided by users and other contributors and is free to use. With mapbox you can host your maps online but you can also store maps offline. With Mapbox Studio you can custom design your maps to create the kinds of visual hierarchy, affordances, and brand standards that your app needs.
Check out these links for more details:
http://mapbox.com and
http://openstreetmap.org
Also Mapbox uses a pretty straight forward API and lots of documentation. Implementation into IOS is also very easy and you can almost just copy/paste to Xcode (almost).
Does anyone know where I can find the open street maps api for android?
I have searched the site and all I can see is other peoples implementations of it.
I'm looking for one which can be integrated into another app and fully customized.
You can integrate OSM by using the Osmdroid API. This gives you functionality very similar to Google maps but you can also use OSM tiles offline if you prepare the tiles with Mobile Atlas Creator (MOBAC)
See Osmdroid home page (GitHub)
You just need the osmdroid-android-3.0.5.jar in your build path. You don't need an API key like Google demands and tiles get cached, so next time you visit that location you save on data download costs/time.
It's got a few tiny bugs, but overall it's pretty good
If you are going for a commercial app them it's worth taking a look at "commercial grade Android SDKs" - all vendors allow you to customise your app (depending on the vendor, the degree of customisation may vary), and I believe all vendors have "free tiers" (payment plans where you actually don't have to pay :) ) that might be good enough for your app (or at least you don't have to pay until your app is commercially successful).
To name a couple Android SDK providers:
skobbler (now Telenav) has an SDK which is able to render maps & display turn by turn navigation on your Android phone. It also supports offline mode. Check out their developer platform for details
OsmSharp also does map rendering and turn by turn navigation. You can pull their code from github
MapQuest has a nice map & routing engine for Android. I think you could also use their routing service with Mapbox maps (see this as a starting point). I don't think they can do offline mode