On Dec 24, 10:52 am, THE_AI <[email protected]> wrote: > Hey Phil, > The code I posted was for google maps api2 (I also wrote in my first > post: "In gmaps2 I was using"..). > > I saw this example you are referring to, but the problem is that I > want a circle that is restricted by pixels, so it won't change with > each zoom level. > > With the default api3 circle object - the radius is given in km and > when I zoom in, the circle becomes bigger and bigger. > > I could use the getZoom function on the map and change the radius of > the circle every time when the user zooms in or out, but I find this > somehow stupid. > > On Dec 24, 12:59 pm, Pil <[email protected]> wrote: > > > > > > > > > This code is unclear: is it v2 or v3 or a mix of both? > > > If you want to use v3 there is already an example within the code > > samples - although it's not been seen in the documentation. But it's > > documented in the v3 reference. > > >http://gmaps-samples-v3.googlecode.com/svn/trunk/circle-overlay/circl... > > > On Dec 24, 11:43 am, THE_AI <[email protected]> wrote: > > > > Hey guys! > > > In gmaps2 I was using the following code to draw a circle around the > > > marker the user mouse is currently on: > > > > //currentMarker is a marker object > > > var markerPoint = currentMarker.getPoint(); > > > > var polyPoints = Array(); > > > > if (highlightCircle) { > > > map.removeOverlay(highlightCircle); > > > } > > > > var mapNormalProj = G_NORMAL_MAP.getProjection(); > > > var mapZoom = map.getZoom(); > > > var clickedPixel = > > > mapNormalProj.fromLatLngToPixel(markerPoint, > > > mapZoom); > > > > var polySmallRadius = 20; > > > > var polyNumSides = 20; > > > var polySideLength = 18; > > > > for (var a = 0; a<(polyNumSides+1); a++) { > > > var aRad = polySideLength*a*(Math.PI/180); > > > var polyRadius = polySmallRadius; > > > var pixelX = clickedPixel.x + 5 + polyRadius * > > > Math.cos(aRad); > > > var pixelY = clickedPixel.y - 10 + polyRadius * > > > Math.sin(aRad); > > > var polyPixel = new GPoint(pixelX,pixelY); > > > var polyPoint = > > > mapNormalProj.fromPixelToLatLng(polyPixel,mapZoom); > > > polyPoints.push(polyPoint); > > > } > > > // Using GPolygon(points, strokeColor?, strokeWeight?, > > > strokeOpacity?, fillColor?, fillOpacity?) > > > highlightCircle = new > > > GPolygon(polyPoints,"#000000",2,0.0,"#FF0000",. > > > 5); > > > map.addOverlay(highlightCircle); > > > > In google maps api3 I saw that there is a circle object and it is > > > really easy to use, but it doesn't have the effect I'm looking for. > > > > The circle size should not change when the user zooms in. > > > > I tried to transform the above example to api3, but I couldn't find > > > fromLatLngToPixel and fromPixelToLatLng functions.
I think these are what you were looking for: http://code.google.com/apis/maps/documentation/javascript/reference.html#MapCanvasProjection -- Larry > > > > What would be the best way to draw a circle and bind it to the > > > currently active marker? Thank you in advance! -- You received this message because you are subscribed to the Google Groups "Google Maps JavaScript API v3" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-maps-js-api-v3?hl=en.
