2012-01-17 4 views
2

MaxMind에서 도시 데이터베이스를 모아 데이터베이스에있는 각 도시의 위도/경도 값을 포함합니다. 저는 또한 북미지도를 작성했습니다. 도시 데이터베이스 기록의 위도/경도 좌표에서 파생 된지도의 x/y 좌표에 아이콘을 표시하고 싶습니다.위도/경도 좌표를 주어진지도의 픽셀로 변환 (JavaScript 포함)

내 이해에서지도의 왼쪽/위쪽 경계를 먼저 찾아야합니다 (lat/lng -> x/y). 그런 다음 북미 도시 x/y 좌표. 마지막으로,지도의 크기에 따라 포인트를 배치 할 위치를 파악하기위한 몇 가지 간단한 나누기 및 빼기 작업이 있습니다.

그러나 나는 방법 다음 할 일 알아낼 수 없습니다

  1. 나는 위도/LNG 매핑 시스템이 무엇인지 확실하지 않다. 어떻게 알 수 있습니까?
  2. 자바 스크립트 라이브러리를 사용하여 lat/lng를 0,0 좌표 및 각 도시 좌표의 픽셀로 변환하려면 어떻게해야합니까? Proj4js를 사용해 보았지만 좌표 맵 유형을 지정해야합니다. 비슷한 질문을 한 다른 질문이 있습니다. Convert long/lat to pixel x/y on a given picture

아이디어가 있으십니까? "밀러 도법"

- - EDIT (북미)

출력 맵은 연속적인 실린더이다. http://en.wikipedia.org/wiki/Miller_cylindrical_projection

+1

수학은 매우 간단 할 수 있지만지도의 유형, 즉 어떤 투영이 렌더링 된지도입니까? http://en.wikipedia.org/wiki/Map_projection – Umbrella

+0

출력 맵은 연속 원통형입니다. "밀러 원통 투영". http : // en.wikipedia.org/wiki/Miller_cylindrical_projection – matsko

+0

당신이 링크 한 Wikipedia 기사는 수식을 제공합니다 ... 왜 그것들을 사용하지 않습니까? – derobert

답변

5

위도 및 경도는 지구상에 그려진 가상 선으로, 세계의 모든 위치를 정확하게 나타낼 수 있습니다. 간단히 말하면 평면의 X 및 Y 좌표입니다. 위도는 북쪽에서 90도, 남쪽에서 -90 도로 그려져 북쪽에서 남쪽으로 이어지는 수직선입니다.

경도는 서쪽에서 -180도, 동쪽에서 180 도인 동서를 가로 지르는 수평선입니다.

당신은 HTML 컨테이너의 너비가 세계의 너비이고 높이는 높이에 해당한다고 가정하여 latLng을 픽셀 좌표로 변환 할 수 있습니다.

화학식 - 경도 - 픽셀

(givenLng*widthOfContainerElement)/360 

360

화학식 -Latitude도 총 경도가 - 360 여기서

(givenLat*heightOfContainerElement)/180 

을 pixed 총 l 정도 ongitude

//Height is calculated from the bottom 

는 여전히 어떤 해명이 필요하면 알려주세요.

관련 문제