Skip to content

Instantly share code, notes, and snippets.

@allieus
Created August 30, 2011 02:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save allieus/1180047 to your computer and use it in GitHub Desktop.
Save allieus/1180047 to your computer and use it in GitHub Desktop.
구글맵v3, 위도/경도 좌표를 지도상의 픽셀 상대좌표로 변환하기
//
// 구글맵v3 상에서 위도/경도 좌표를 지도 상의 픽셀 상대좌표로의 변환은 단순히
// projection 의 fromLatLngToPoint 만을 호출해서는 해결되지 않는다.
// 추가적으로 지도 레벨에 대한 처리가 필요하다.
//
// google-maps-js-api-v3
// (http://www.mail-archive.com/google-maps-js-api-v3@googlegroups.com/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