【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.4120.54123.23]

IDL> Lat = [34.5648.6554.32]

IDL> WGS84_to_WebMercator, Lon=Lon, Lat=Lat, WebX=WebX, WebY=WebY

IDL> print, WebX, WebY

      12400991.      13418452.      13717901.

      4104247.0      6215681.8      7230995.4

posted @ 2022-05-27 17:07  ENVI-IDL技术殿堂  阅读(321)  评论(0编辑  收藏  举报