【IDL代码库】经纬度转换为Web墨卡托坐标
经纬度转化为Web墨卡托坐标的公式在网上都能搜得到,现在利用IDL实现此功能。废话不多说,代码如下:
;经纬度转换为Web墨卡托
PRO WGS84_to_WebMercator, Lon=Lon, Lat=Lat, WebX=WebX, WebY=WebY
;计算Web Mercator X坐标
IF KEYWORD_SET(Lon) && ARG_PRESENT(WebX) THEN $
WebX = (Lon/180.0D)*20037508.34D
;计算Web Mercator Y坐标
IF KEYWORD_SET(Lat) && ARG_PRESENT(WebY) THEN BEGIN
WebY=DBLARR(N_ELEMENTS(Lat))
FOR i=0,N_ELEMENTS(Lat)-1 DO BEGIN
IF Lat[i] GT 85.05112D THEN BEGIN
WebY[i] = 85.05112D
ENDIF ELSE IF Lat[i] LT -85.05112D THEN BEGIN
WebY[i] = -85.05112D
ENDIF ELSE BEGIN
WebY[i] = ALOG(TAN((90.0D + Lat[i])*!PI/360))/(!PI/180D)
WebY[i] = WebY[i]*20037508.34D/180
ENDELSE
ENDFOR
ENDIF
END
调用方法如下:
首先在IDL工作台中新建文件,将代码拷贝到编辑器中,保存为WGS84_to_WebMercator.pro文件,编译后即可在控制台调用,格式如下:
IDL> Lon = [111.4, 120.54, 123.23]
IDL> Lat = [34.56, 48.65, 54.32]
IDL> WGS84_to_WebMercator, Lon=Lon, Lat=Lat, WebX=WebX, WebY=WebY
IDL> print, WebX, WebY