I am a student and am attempting to create an indoor positioning system for my department. I'm using a WiFi-based localization system utilizing the existing APs. Right now I'm researching different maps to use for my project.
Can Google Maps be used for a custom image (like a floor plan)? Or can a mobile application be interfaced with the existing Google Maps API? If so could you please link to references?
Thanks
Not too sure about indoor positioning, but I used Google Maps API for you know.. maps. Below is the link for the Google Maps APIs.
https://developers.google.com/maps/
My classmate did a project quite similar to yours. He drew the indoor layout (floor plan) himself and set it in his Android Application.
After reading this link: https://www.google.com/maps/about/partners/indoormaps/
It seems Google has made an API.
Found it, here you go:
https://developers.google.com/maps/documentation/android-api/map#indoor_maps
I've read Google Map API Terms of use, section 10.4.c.iii
I know that I cannot use Google Map/Places API for real-time navigation.
I only use Google API for finding the current place (Geocoding/Reverse Geocoding).
The data for navigation comes from another data source, I built it myself, not direction data from Google. I'm totally not using Google's data for real-time navigation. However, I started a Google Map Android app and need to draw the route on the Map Surface for the simulation.
I am not clear at this point that I can use Google API for my app or not.
Please advice. Thank you.
Today I've talked to a client and he wants to build a simple navigation APP on Android!
Basically we could use Google maps, place some of "our" markers to show some locations (restaurants, hotels etc.) .. also we need to show user's friends near by!
Everything of that is possible in Google Maps API on Android, except I can not find any useful information about Turn-by-turn navigation implementation inside my own app (without switching to Google Maps App) ..
Can someone simply clarify - is it possible to use Google Maps inside an Android app to create turn-by-turn GPS based app?
thanks
I agree with the answer stated above but there is also a key clause in section 10.4.c of the google maps API privacy terms here.
It states
No navigation. You will not use the Service or Content for or in connection with (a) real-time navigation or route guidance; or (b) automatic or autonomous vehicle control.
Therefore I'd like to proceed and answer your question and say No, it is not possible to create a turn-by-turn navigation application on android by using Google Maps API without breaching their privacy policy.
Edit: Read answer by Tushar below before using this answer
First Option
If you want to implement the navigation completely in your app you will have to use a combination of the Google Maps API and the Google Directions API. They are free to use up to a limit and then you have to pay for the api requests.(https://developers.google.com/maps/documentation/directions/)
Second Option
I would just send the latitude and longitude of the location you want to navigate to the devices Maps app. Here is some code to start you off with this method:
double lat = < latitude of the location you want to navigate to>
double lng = < longitude of the location you want to navigate to>
String format = "geo:0,0?q=" + lat + "," + lng + "( Location title)";
Uri uri = Uri.parse(format);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
This will open the device's Maps app and plot the location and the user can use the app to do what ever they want.
I would go with the Second Option, it is stupidly easy to implement.
After searching a lot, I have found two options for turn-by-turn navigation with voice instructions and arrow images.
skobbler or sk maps (http://developer.skobbler.com/)
HERE Maps (https://developer.here.com/)
HERE Maps is somewhat costly and does not allow free usage (only 90 days of trial period). But it has lots of advantages like:
Clear and perfect documentation: The documentation they provide is clear and easily understandable, also the demo app they provide has all the required things implemented. So you can copy-and-paste many things.
Developer friendly: Full control of maps for developers (no restrictions, you can do anything that you can think of with maps).
Coverage: Navigation is not only clear and good for some specific countries, but for almost all countries. I have checked it in India for example. Apple Maps is not providing routes in India, Google Maps are providing it, but from my perspective, HERE Maps is much clearer and even better than Google.
skobbler is good and allows free usage up to a limit, but it's not good for all countries (not covering India up to level). Also it is not that much developer friendly as HERE Maps.
I stumbled upon this thread by searching for a turn-by-turn solution myself and I searched a bit further and found this promising javascript project:
FFWDme.js - is a JavaScript toolkit that aims to bring interactive GPS driving directions to the mobile browser
It's open source.
It's configurable, but by default it uses leaflet.js for slippy maps, and configurable Tile-server, so you could run it off Open-street maps. It also uses an opensource Graphhopper for direction services, but you can add your own.
Looks promising!
Creating turn by turn navigation using Google Maps API is not allowed in the Google Maps API ToS, even after the July 2018 pricing change where they updated their ToS.
From Google Maps new ToS section 3.2.3 (emphasis mine):
(d) No Re-Creating Google Products or Features. Customer will not use
the Services to create a product or service with features that are
substantially similar to or that re-create the features of another
Google product or service. Customer’s product or service must contain
substantial, independent value and features beyond the Google products
or services. For example, Customer will not: (i) re-distribute the
Google Maps Core Services or pass them off as if they were Customer’s
services; (ii) use the Google Maps Core Services to create a
substitute of the Google Maps Core Services, Google Maps, or Google
Maps mobile apps, or their features; (iii) use the Google Maps Core
Services in a listings or directory service or to create or augment an
advertising product; (iv) combine data from the Directions API,
Geolocation API, and Maps SDK for Android to create real-time
navigation functionality substantially similar to the functionality
provided by the Google Maps for Android mobile app.
I am late here but it would help someone, I found something on this context. Google providing In-app Navigation and Google Maps turn-by-turn directions support. It's paid, you can check more about this on below link.
https://cloud.google.com/maps-platform/rides-and-deliveries
Not sure if it solve your problem or not.
Not yet possible but google has some private partnerships
Lyft introduced google maps navigation in-app
https://www.theverge.com/2017/10/12/16465414/lyft-google-maps-waze-navigation-app-drivers
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).
Im trying to create a very simple application that I will use to present a product that my team and I are creating. In my app, I would like to allow an option where if a specific textview is clicked, it will open up a map to that specific location. Of all the tutorials of the google maps that I have seen, it seems that the only way to use the maps is to have your class extend the mapactivity class. Is there any way to use this simple app other than to make my app a map based app? Also which version of the google maps would be the best to use in my situation. Thanks for everyone's help.
What do you mean by a "map based app"? if you want to embed Google Maps in your application, today you would use Google Map API V2 as V1 is deprecated. in that case you don't have to extend your Activity from MapActivity and you can use a simple Activity if you targeting API > V11. if you target lower API's you would extend you Activity from FragmentActivity to allow backward compatibility for Fragments.
Here is a blog post I wrote with all the details on how to embed Map capabilities in your application:
Google Maps API V2
If on the other hand you would like to avoid embedding Google Maps in your application, you could just fire an intent to turn on the native Google Maps application.
UPDATE:
Take a look at this page for intents you can fire for native Google applications (including Maps):
http://developer.android.com/guide/appendix/g-app-intents.html
and look at this questions:
Launching Google Maps Directions via an intent on Android
Using the pre-installed Google Maps instead of an own activity by using Intents?