Created
August 30, 2011 02:44
-
-
Save allieus/1180047 to your computer and use it in GitHub Desktop.
구글맵v3, 위도/경도 좌표를 지도상의 픽셀 상대좌표로 변환하기
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// 구글맵v3 상에서 위도/경도 좌표를 지도 상의 픽셀 상대좌표로의 변환은 단순히 | |
// projection 의 fromLatLngToPoint 만을 호출해서는 해결되지 않는다. | |
// 추가적으로 지도 레벨에 대한 처리가 필요하다. | |
// | |
// google-maps-js-api-v3 | |
// (http://www.mail-archive.com/[email protected]/msg08752.html) | |
// 메일링 에서 그 해답을 찾을 수 있었다. | |
// | |
// 구글맵 기본 API에서 지원해주면 좋겠는데. | |
// Polygon 의 경우, 마우스클릭 이벤트에서 픽셀 좌표 정보가 없으므로, | |
// 아래 함수를 통해 픽셀좌표를 계산할 수 있겠다. | |
// | |
var map = new google.maps.Map(map_options); | |
var projection = map.getProjection(); | |
function convert_point(latLng) { | |
var point = projection.fromLatLngToPoint(latLng); | |
var ne = projection.fromLatLngToPoint(map.getBounds().getNorthEast()); | |
var sw = projection.fromLatLngToPoint(map.getBounds().getSouthWest()); | |
var scale = Math.pow(2, map.getZoom()); | |
return new google.maps.Point( | |
(point.x - sw.x) * scale | |
(point.y - ne.y) * scale); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment