I heard that Google is using only PublicApi's for their apps. However I supect this to be wrong if I have a look at the official "GoogleMaps" App.
In GoogleMaps V2 there is only a "setMyLocationEnabled" Method. It shows a blue dot (with accuracy) but WITHOUT a Direction. There seems to be NO Api to do the same, and you have to emulate all the behavior (e.g. register LocationListener, place a Location Marker drawable, handle bearing and rotation correctly and click Events on the "myLocation" Button).
Same applies to Marker Windows. If you set a Title to a Marker it is shown automatically on Click and you can additionally show an "InfoWindow" (which is basically a layout rendered as bmp, so no Click-Events, Scrolling etc).
In The official App there is a Window coming from the bottom of the Screen, expandable, clickable and nice looking. You are able to emulate this with much effort, too, but again no public API for it.
Next is the Master/Detail Layout Flow of the official App. I cannot get it to work, because the Maps is eating all Events (no chance to apply an OnTouchListener to the GoogleMap object.
So my question:
Is google really using public API's ONLY and implemented any GoogleMaps feature around it, or is it just using private API's? Am I just lazy or is it just a crappy API that really could give the user more freedom?
Google Maps application doesn't use Google Maps Android API v2. What was meant by public APIs was probably Directions, Places, etc.
Related
How to add a polyline to google map in android above street/area name?
I think this is not possible in an easy way due to how google maps API handles the "background".
If you set the background to normal or hybrid, the map is drawn as a background either in road view like your screenshot or in satellite view if hybrid is selected.
Then all the users features are drawn (and eventually overlays, lines, poligons, then points and lastly, street names. You can't really change this, but you could do a trick:
- Use just the satellite view (so no roads will be added).
- Remove the google background and add an alternative one (there are different services like Open Street Map, Mapnik ecc that allows it).
Following the second choice could also allow to add googlemaps background from web api, but I really don't advice to do it, since you are downloading tiles in a non standard way for google.
I'm looking to create a circle menu for markers in my app that uses Google maps.
I've found this online example of what I am trying to do:http://demo-ee.com/index.php/examples/view/circle-menu-for-marker-with-mx-google-maps-for-expressionengine#
The problem is that this is for google maps in a webview, I'm looking to do this on Android.
Does anyone know if this is possible to achieve with google maps for Android and if it is, how much work would be involved to do it?
Is it possible to rebuild this example code in java to use in an Android app?
thanks
I put this as an answer and not as a comment, but I don't think you can achieve the same.
First of all, on android you don't have the "hover" callback for maps, you can only use the onMarkerClick listener.
You could try to build a custom infowindow (there are a few tutorial online but never followed, so I can't give you a trusted one, you have to try :( ) and check if the iw can be placed around your item. Unfortunately on android there is a limited set of functionalities, but to be honest, I would explore a different UX for that (cards, dialogfragment or other).
Check how google maps behaves when clicking on a place (a view scrollable from bottom with details).
You can also think about using a toolbar/expandingtoolbar
We're building an application where the user has the ability to overlay lots of geospatial data on top of a map. The google apis have terrific support for this; allowing vector features to be drawn as well as a tileoverlay class.
The downside is that their map is ALWAYS the basemap. The only way this is a downside is if a user says "i dont want that" or something. I don't think that's likely, but it's possible. I'm curious if there's a way to turn the google tiles portion off, or tell it to hide it's google tiles, and tell it to stop trying to get tiles from google? I want to use the api, but be able to not show the google map, do-able?
Have you tried setting the map type to MAP_TYPE_NONE?
I would like to implement an indoor positioning system on an Android device (galaxy tab)
I have a picture of the map I intend to use. However I am not sure what is the right way to do
this.
I want my application to have some of the abilities of google maps, such as zoom and scroll, and the ability to use overlay items.
However, as I understand, it is not possible to use google maps with a custom map.
What is the right way to do this? Is there a library which enables us to zoom and scroll images/maps?
Can you use the overlay package without google maps? If not, how can you present a location in such a map?
Thanks in advance
Ariel
Have a look at these two Android apps:
MapCalibrator by Martin Ohlin
Custom Maps by Marlo Teittinen
To develop a full-blown indoor navigation system, have a look at these platforms:
http://insiteo.com/
http://cloudmade.com/
Googling aroud for "indoor positioning" and/or "indoor navigation" you will find many more solutions.
If it was a large location - say a shopping centre - you could possibly map it out in a KML layer and add it to google maps but I'm not sure how well that would work. Google maps does not allow the user to zoom in very far - probably not far enough for your needs if you want to map down to the room level.
Here is a tutorial on "Map your business inside and out".
The google maps API v3 supports "custom maps"
Discussions from the v3 group
one example from a search.
Is there any way to implement falling pins/markers animation for google maps in android like that in iPhone ???
Android has overlay markers (see ItemizedOverlay) that make it easy to add images to maps, BUT note that, in my experience at least, animated images do not work when added to overlays.
I found it necessary to add a View on top of the MapView, and add imagery to that, and I've successfully added animated drawable images to the map using that approach. For more details see here:
Can I use AnimationDrawable in an overlay on a MapView?
But to be honest, you should remember that it's Android, and copying every little feature from iOS is unnecessary. Google Maps on Android doesn't use a pin marker, it uses a static blue spot - I'd say it's best to replicate that and remember your users are Android users, not iOS users - they want consistency across Android apps.
You could have a look in this docmentation: https://developers.google.com/maps/documentation/javascript/overlays
Here is an example map.
Just add this in your code:
marker.setAnimation(google.maps.Animation.DROP);