위도와 경도를 메르카토르 투영 픽셀 좌표로 변환
메르카토르 투영 영상에 지리적 좌표를 표시하려면 위도와 경도를 변환해야 합니다. 값을 해당 픽셀 좌표로 변환합니다.
메르카토르 투영 속성
메르카토르 투영은 교차하는 선 사이의 각도를 유지하는 등각 지도 투영입니다. 위도는 수평 직선으로 표시되고 경도는 수직 직선으로 표시됩니다.
변환 공식
동쪽(x) 및 북쪽(y) 좌표를 파생하려면 위도와 경도에 대해 다음 공식을 사용할 수 있습니다. 사용됨:
E = R * (λ - λₒ) N = R * ln[tan(π/4 + φ/2)]
여기서:
구형 메르카토르 투영 공식 단순화:
x = R * λ y = R * ln[tan((π/4) + (φ/2))]
코드 구현
다음은 Python에서 다음 작업을 수행하는 예입니다. 변환:
import math earth_radius = 6371000 # in meters def mercator_projection(latitude, longitude, map_width, map_height): """Converts latitude and longitude to Mercator projection pixel coordinates. Args: latitude (float): Latitude in degrees. longitude (float): Longitude in degrees. map_width (float): Width of the map image in pixels. map_height (float): Height of the map image in pixels. Returns: tuple: A tuple containing the x and y pixel coordinates. """ # Convert latitude and longitude to radians latitude_radians = math.radians(latitude) longitude_radians = math.radians(longitude) # Calculate x and y pixel coordinates x = (longitude_radians + math.pi) * (map_width / (2 * math.pi)) y = (map_height / 2) - (map_height * math.log(math.tan((math.pi / 4) + (latitude_radians / 2))) / (2 * math.pi)) return x, y
사용 예
map_width = 991 map_height = 768 latitude = 58.07 longitude = -5.93 x, y = mercator_projection(latitude, longitude, map_width, map_height) print(f"x: {x}, y: {y}")
지정된 위도와 경도에 대한 메르카토르 투영 이미지의 픽셀 좌표를 표시합니다.
위 내용은 위도와 경도를 메르카토르 투영 픽셀 좌표로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!