I think you'll find it hard to do this for one big reason: a pixel is not
the same thing as a point. A LatLng represents a singular point in
space-time, but a pixel has both height and width dimensions. To illustrate
the problem, at zoom level 0, the entire earth is 256x256 pixels. This
means that 1 pixel is nearly 160 km (100 miles) on a side. While zooming in
will mitigate this issue, you will never achieve perfect accuracy
converting a pixel coordinate to LatLng.

jg

On Thu, Aug 23, 2012 at 3:23 PM, Jason <[email protected]> wrote:

> Hi,
>
> I'm trying to make it easier for users to add overlays to the my web app,
> and to do this I need to have an accurate lat/long point of the div
> corners.  Complicating this is the fact I've added the jquery rotate
> library available on google code.
>
> So what I do now is get the top, left, right and height values from the
> div's CSS.
>
> Assuming that *
> *
>
>    - *overlay* is the *OverlayView* object described in the custom
>    overlay secion of the documentation and has already been initialized
>    - *newElement* is the new image overlay
>    - *map* is the map view
>
>
> var overlay = new google.maps.OverlayView
> var container = getDocumentById("newElement);
>
> var top = container.style.top;
> var left= container.style.left;
> var right = container.style.right
> var height = container.style.height
>
> var topRight = overlay.getProjection().fromDivPixelToLatLng(new
> google.maps.Point(top, right));
> var bottomLeft = overlay.getProjection().fromDivPixelToLatLng(new
> google.maps.Point(left, top-height));
>
> My issue is that the topRight and bottomLeft coordinates are off quite a
> bit.  When I align the image,
>
> topRight has a location of 43.6812604043771, -70.45211922222899 when it
> should be 43.682516,-70.450773
> and bottomLeft has a location of 43.683333966614995, -70.45189391667174
> when it should be 43.681413,-70.45168
>
> These coordinates are off by at least 20 meters or so.  Is there a better
> way to actually calculate the coordinate locations without resorting to a
> marker drop and drag?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google Maps JavaScript API v3" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/google-maps-js-api-v3/-/U8dACZMacXEJ.
> 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.
>



-- 
Jeremy R. Geerdes
Generally Cool Guy
Des Moines, IA

If you're in the Des Moines, IA, area, check out Debra Heights Wesleyan
Church!
http://www.debraheightswesleyan.org

-- 
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.

Reply via email to