I'm trying to make an app that uses Google maps API mapviews and my problem is that when building the app I realized that the roads on Google maps scale down on zoom in and wondering if there is any way to disable this scaling as I want the full size of the roads on maximum zoom. Hopefully this picture will clear any misunderstandings:
I don't believe that you will be satisfied with the result from what you are trying to do, fixing the zoom to a specific value, which will resukt in a very pour user experience ...
But if you really want to give it a try, just use the one of the solutions in this post
good luck.
Related
I'm currently using android-map-extensions to cluster markers on google map. However, sometimes two markers are clustered when they are really far, sometimes they have to be almost overlapping each other to be clustered together. I've been trying to wrap my head around this for a couple of days and haven't figured it out. Below is the examples (btw, sorry for the bad english and I don't have enough reputation to post images so imgur to the rescue):
should already clustered : http://imgur.com/MxyN9VI
should not clustered until zoom out far enough (1-2 more zoom level) : http://imgur.com/hVzMQfD
How can I fix this, changing the clusterSize as document does not really help
Android Maps Extensions uses grid based clustering and what you describe is part of how it works.
You have a couple of options:
writing your own clustering strategy for it (e.g. distance based)
finding a proper clusterSize for your case; this might work if all your markers have fixed and static positions; keep in mind choosing between 128 and 128.1 can make a big difference
trying out a different library, e.g. Clusterkraf or Android Maps Utils, which use distance based clusering
Disclosure: I'm a developer of Android Maps Extensions
After plenty of searching, I haven't yet found a solution that works for me and I'm really hoping someone here could help me. First I'll explain my problem, and then I'll mention some of the approaches I've attempted/considered so far.
Basically, I'm developing an Android app where markers randomly appear around the user's location. The catch is, the markers need to be placed on streets only.
I've been working with Google Maps Android API V2 but I'm trying to work around using anything with "limitations" such as 'geocoding'.
I've considered using different map API's such as Nutiteq but I've had some trouble implementing them. It would be nice to stick to Google since I've become familiar with it but I'm willing to try any suggestions you may have.
I have even considered loading up Google Maps API V3 in an html file so that I can use GDirections to load a path from one point to itself and then parse this data to Google Maps Android API V2 using JS but turns out GDirections has a limit as well.
Anyone have any idea how I can go about doing this? Even if the solution is hacky, it's still something.
I'm fairly new to Android Development.
Funny what you want to achieve. You don't need to load API V3 html. You can use directions api directly: http://maps.googleapis.com/maps/api/directions/json?origin=51,19&destination=51,19&sensor=false
It still has limitations, but is was like 2000 or something a day a device. And you don't want to put more than 2000 markers on single user's screen, do you?
This is easy to parse, for example with Gson.
This question is different than this another one
So, I have been observed the native google maps app when it draw long ways on the map.
When the zoom is too far, the lines are not full of details ... I mean, when we use the google maps api and request for a path between two different points we receive the whole coordinates for draw the most detailed path on the map.
As we change the zoom the drawn lines receive more details.
The question is. Is there a way to do something like the native google maps app ? Can we ask for less details to draw the path on the map using google maps api ? Can we improve the lines drawn details as we change the zoom ?
If the answer is "no" for all of my questions, here you go another one: How can we draw a long path on map without lag issues ?
I hope I've be clear, sorry about my English.
Google Maps is probably a bitmap of that path generated by the server. A new one for every zoom level.
You can do something similar but it's quite some work. But it should be faster to generate a transparent bitmap once instead of drawing the path each time the view needs to refresh. You can also draw a path with reduced details if you simply skip some points but finding an algorithm that does not skip the important parts is quite tricky.
I saw these maps in the websites of some universities and I just loved them:
http://www.uottawa.ca/maps/
http://www.washington.edu/maps/
http://map.nd.edu/#/placemarks//zoom/16/lat/41.6993288511065/lon/-86.23415926449582
I would really like to do something like that in an Android app. I've been looking for a way to do it but I've found no clue. Since I'm new to this API I feel quite disoriented.
So, could you please point me in the right direction? Give me some hints, somo tutorials or whatever you think it can be useful.
You can get the mapview easily enough using the Google Maps API. Then you need images of whatever buildings you are proposing to put on the map. The images can be added to a map overlay which will appear on top of the map. The tricky part then, is to match the geo-coordinates of your buildings to the map so that when a user scrolls the map, the images move as well and also to scale the images as the user zooms in and out.
I am developing a simple app that has a generalized, drawed, map image, but I want to add the ability to switch between this map and the sattelite image of Google Maps. However I do want the Google Maps oriented in a specific bearing. Is this in any way possible?
Any other idea of solution?
Regards, Jonas
Jonas,
I don't think the Google Maps JavaScript API supports arbitrary bearings. Google has a cache of rendered map tiles for the "normal" bearing, and I think rendering and caching tiles for other bearing points would be prohibitively expensive. Also, the mathematical algorithms would need to be updated to support that scenario.
However, Google Earth might do the trick. It's also possible you could render your own map tiles with something like MapServer.
Good luck!