GoogleMaps API v3: convert LatLng object to actual pixels

author: Krasimir Tsonev 2011-01-07 by Krasimir
in JavaScript
If you enjoy this, share it!
It is not so easy as it looks like. You should get the map object's projection and the map's zoom to be able to calculate it.

function fromLatLngToPoint(latLng, map) {
	var topRight = map.getProjection().fromLatLngToPoint(map.getBounds().getNorthEast());
	var bottomLeft = map.getProjection().fromLatLngToPoint(map.getBounds().getSouthWest());
	var scale = Math.pow(2, map.getZoom());
	var worldPoint = map.getProjection().fromLatLngToPoint(latLng);
	return new google.maps.Point((worldPoint.x - bottomLeft.x) * scale, (worldPoint.y - topRight.y) * scale);
}
The function returns Point object, which has .x and .y property - the actual pixels of your map's container.
Did you enjoy this?
Be sure to check out the other articles in the same category.

blog comments powered by Disqus