I've been browsing the internet for two days now looking for the best way to do this, here is my concern :
I'm currently developing an Android application where the user has to browse a map (preferably satellite view), add markers etc. The problem is that the user will often be in a spot without internet access.
Some info i gathered (correct me if I'm wrong):
Google earth doesn't have an Android API
Last Google map api for Android allows the developer to implement his own TileProvider (http://guides.cocoahero.com/google-maps-android-custom-tile-providers.html).
It's forbidden to cache google maps data
So at the end my questions are :
Is it possible to use the Android Google Map API to display tiles from another data source than google maps ?
If so what would be a good source of satellite map, available offline ?
I'm new to Android development so I wanted to ask you guys before trying it out!
Thanks in advance
Related
I have watched tutorials on how to integrate google maps in an android application. Before I put google maps in my android application, I want to know if you need internet connection to run the application that runs google maps?
--------------------Answer to question above has been solved---------------------
I have another question. What are the things that an offline map can do? Can the offline map do pathfinding? Can you get coordinates, distances and other map data from it? Or is it just a map that can only be viewed?
If you have watched tutorials about that you might have noted that the maps api needs permission.INTERNET which is also obvious as the maps need to be loaded from Google. How else should they come to your device or simulator?
I am doing an app that allows users to get directions from one room to the next room of the same building and require the application to show the user indoor directions. I have tried and tested the Google Maps Intent which opened the Google Maps app and gave directions from one room to the next. I am required to not allow the user to open up an external map app and then receive directions. Instead they must use the Google Map built into my application. I was wondering if it's at all possible to do indoor directions on Google Maps Android API. Would genuinely appreciate any help I get. Thanks!
The Google Maps Android API v2 has options for indoor maps. See https://developers.google.com/maps/documentation/android/ under 'Indoor Maps' for a quick example.
Of course, that doesn't prevent them from using an external app by itself, but it does let you provide them indoor map data in your app.
Well I think you should have to start by using internal sensors to navigate. Add an indoor map of the building so that you would know where you are at in the building.
I'm starting developing a project of an android app.
For this project i need a map where i can draw circles, polylines and polygons and click in all of this draw shapes to show informations about each one. At this point, googlemaps + spatialite or googlemaps + quadtree + utils to identify if a LatLng belongs to a circle/polyline/polygon can solve the problem but i have one more requirement: i need to cache a zone of the map to work with it on the street without internet. I know that google maps official app can do this with th typing of "Ok Maps" but there are anyway to use that cache in my application? There are another way to do a cache of the map before going to the street and go without internet?
Preferably i would like to use google maps but I'll have to use another api? What?
Regards
Due to the need for Google to check your api key, I have not seen any way for third party apps to access google maps offline. If you need offline capabilities, one of the main solutions is something called osmdroid which has a similar interface to google maps but you can cache tiles for offline use.
OSMDroid
I'm developing an android application which contains info of certain places. So when the user select one place(an item of a listview) an android map is shown (I'm using android api v2 of google maps), but of course this happens when the user has internet access.
Does anyone know a way of showing a map without connection?
Thanks!
If your application has write external storage permission, maps API v2 keeps a cache, so the map is normally displayed for area shown recently.
If you want to have a full offline map, you would have to embeed your own tiles, which possibly brings your app size to hundreds of MB or you can try to use open street map. See here: open street maps api for android.
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