Google Map API 3: dynamic circle with zoom level - google-maps

In google maps v3, it is possible to have a dynamic circle that based on the zoom level, for example, in zoom level 1, the radius of circle is 5m, while in zoom level, the radius become 20m?
Thanks in advance!

if i get this right you have to do it manually.Create a circle in the body of the zoom_change() event of the map everytime the user changes the zoom.The radius of the circle depends on the logic of your application

Related

Xamarin: Can I add an image to Google Maps with bounds on iOS?

How do I add an image to google maps that has bounds? I have a rectangle image and would like to layer it on the map using its north-east and south-west points. Since the image is location based, I also want that image to re-size when the user zooms in and out.
Also posted on Xamarin forums: https://forums.xamarin.com/discussion/92528/can-i-add-an-image-to-google-maps-with-bounds

How can I set the zoom point of a Google Map in iOS to be off-center?

I am implementing a Google Maps for iOS SDK map in my app. I have a UISlider that controls the level of zoom in the map. I want to be able to have the map zoom in on a point that is not directly in the center of the map -- and after zooming in, this point should be offset from the center of the map by the same number of pixels as before.
I tried setting mapView.layer.anchorPoint to an off-center point, but if I do that, then it screws up the map drawing and it draws the whole map off-center, leaving black areas.
I tried zooming in on the point itself, but that moves it to the center of the map, which I don't want.
Is there a convenience method for simply telling the SDK to treat a different point other than the direct center, as being the "fulcrum", if you will, of the zooming?

Google Maps API v3 - Get bounds of Map using div size, centre and zoom

Given the size of my map div, lat-lng of the centre and the zoom, I want to find out what are the bounds of the map (i.e. the top-left and bottom-right lat-lngs)
The problem is that I need to know this before the map is loaded. Therefore, I cannot simply call map.getBounds to get this information.
How should I calculate this information?

How to translate mercator map coordinates to relative screen coordinates?

I have a database with various map locations (latitude, longitude).
I've been using a map api (e.g. google maps) to plot these locations.
I am now experimenting to see if I can totally remove dependency of map apis and simply replace the map control with an image (an .png image).
Question:
How can I translate the map locations to be displayed properly onto this map image?
More details:
Basically, the map will be a rectangular area (i.e. Div element), where the top-left corner of the rectangle is obviously (0, 0). So basically the map locations will be displayed with respect to this top-left corner.
First off, where are you getting your geocodes from? If they are from Bing or Google Maps then you can only use those coordinates with those map controls. Using this coordinates without the map controls is against the terms of use of these API's. Assuming that these coordinates come from somewhere else you can overlay them on an image by first knowing some information about the image. At a minimium you will need to know two coordinates on the image and their relative pixel locations. From that you can then determine the scale and top left coordinate of the image. With this you can then fairly accurately position coordinates on the image using a lot of math. You can find a lot of useful math for this here: http://msdn.microsoft.com/en-us/library/bb259689.aspx I've writing a few blog posts on this a while back which you can find here: http://rbrundritt.wordpress.com/2008/10/25/ve-imagery-service-and-custom-icons/
If these coordinates come from Bing Maps you can easily display them on a map image using the Bing Maps Imagery Service: http://msdn.microsoft.com/en-us/library/ff701724.aspx

How can I have a smooth animated move between 2 Google Maps locations?

When clicking from one marker to another in Google Maps, the map screen animates the move smoothly if both markers are within them initial map view but jumps if one of the markers is off screen.
I'm trying to set up a map which has several locations within the main map area but has one which is 'off screen'. I have a signpost icon to the more distant location within the initial map area which I want to smoothly scroll to the off screen location when clicked (so as to give a better sense of it's relative location). I can't find anything in the Maps API which would let me do this however.
I could zoom out, move and then zoom in again but this looks a bit jarring. Am I missing something in the API, or does anyone have any suggestions?
Unfortunately, I don't think this is possible (without a change from Google). From the v3 API reference for panTo:
Changes the center of the map to the given LatLng. If the change is less than both the width and height of the map, the transition will be smoothly animated.
which implies that if that change is not less than the dimensions of the map, the transition won't be smoothly animated. The other pan methods are similar.
You could try moving in multiple steps but that's a bit of a hack and I suspect the result will be poor.
Sorry that's not very helpful (I have the same problem).
For me this method works, but i'm using Google Maps API v2.
LatLng latLng = new LatLng(lat,lng);
map.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, ZOOM_FACTOR));
This animates the camera from current position to the new one.
If you are using Gmaps API V2, then you can implement smooth animated move very easily by using panBy() method. You have to use fromLatLngToContainerPixel() method to find the amount of pixels to pan by.
Here is the bit of code:
var newLoc = map.fromLatLngToContainerPixel(new GLatLng(lat, lng));
map.panBy(new GSize( newLoc.x, newLoc.y ));
However, what I am trying to do is to achieve the same thing in maps API V3, but sadly fromLatLngToContainerPixel() method does not work anymore the way it did :(