- 积分
- 9238
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2017-3-30
- 最后登录
- 1970-1-1
|
发表于 2019-5-5 11:17:34
|
显示全部楼层
本帖最后由 Gloria_ouc 于 2019-5-5 11:19 编辑
蟹蟹楼主回复!
这个坐标是墨卡托投影对吧?我昨天用matlab函数minvtran转换为经纬度坐标,还有直接公式计算,两者的结果是一样的,但都有偏差。是不是因为墨卡托的原点没设置好的关系?
方法一 minvtrancj=shaperead('bound-albers.shp');
xx=cj.X';
yy=cj.Y';
% mercator to lonlat
mstruct=defaultm('mercator');
mstruct.geoid=almanac('earth','wgs84','meters');
mstruct.origin = [0 90 0]; %% 这里不懂要怎么设置原点
mstruct=defaultm(mstruct);
[lat0,lon0] = minvtran(mstruct,xx,yy);
方法二 公式计算
lon0 = xx./20037508.34*180;
lat0 = yy./20037508.34*180;
lat0 = 180/pi*(2*atan(exp(ty.*pi/180))-pi/2);
|
|