目录
1、问题提出
GIS工作者,经常出现坐标格式转换的问题,将十进制度转换为度分秒格式(十进制度->度分秒)例如:
87.509614 | 44.075376 | -----> | 87°30′34.6104″ | 44°4′31.3536″ |
或者度分秒格式转换成十进制度(度分秒-->十进制度),例如:
87°30′34.6104″ | 44°4′31.3536″ | -----> | 87.509614 | 44.075376 |
如何完成以上两个格式自由快速的转换,是每一个地理信息工作者,或者涉及相关工作的人员的痛点。按照以下进制进行数值计算
2、面向对象
GIS工作者、工作中遇到坐标转换的人群。
2 、计算依据
;
,
,
进行计算。针对这一问题,利用excel中的函数
转换 | excel函数 | 释义 |
十进制度--->度分秒 | INT | 取整数 |
ROUND | 四舍五入 | |
CONCATENATE | 字符串连接 | |
十进制度--->度分秒 | MID | 截取一段数值 |
FIND | 查找字符位置 | |
LEFT | 从左侧截取指定长度字符 |
3、解决方式
下面逐步分解两个转换的解决思路。
3.1 十进制度转换为度分秒格式
为了描述方便,假设代表十进制度
第一步,对十进制度取整(INT()),获取整数度
第二步,用十进制度减去取证的整数度(INT(60*(- INT(
)))),获取整数分
第三步,十进制度减去取证的十进制度为十进制度的小数部分,将该小数部分乘以3600为该小数部分转化为分的数值,然后减去第二部中求得分的60倍,公式为(-INT(
))*3600-INT(60*(
-INT(
)))*60
第四步,将以上数值用字符串连接函数连接起来,最终公式为:CONCATENATE(INT(),"°",INT(60*(
-INT(
))),"′",ROUND((
-INT(
))*3600-INT(60*(
-INT(
)))*60,4),"″")
3.2 度分秒转换为十进制度格式
为了描述方便,假设代表度分秒
第一步,查找(°)分割符的位置,查找(′)分隔符的位置,查找(″)分隔符的位置
第二步,获取度,LEFT(,FIND("°",
)-1)
第三步,获取分,MID(,FIND("°",
)+1,FIND("′",
)-FIND("°",
)-1)/60
第四步,获取秒,MID(,FIND("′",
)+1,FIND("″",
)-FIND("′",
)-1)/3600
第五步,将度分秒结果相加,最终公式为 LEFT(,FIND("°",
)-1)+ MID(
,FIND("°",
)+1,FIND("′",
)-FIND("°",
)-1)/60+ MID(
,FIND("′",
)+1,FIND("″",
)-FIND("′",
)-1)/3600
4、说明
1、公式中的K2标时单元格
2、注意°、′、″的全角半角输入等,不然解析不正常,可以根据自己数据替换。
3、个别不规范的坐标,转换可能不成功,需要规范化处理,或者转化后检查
Excel公式下载,直接可以复制https://download.csdn.net/download/zhang_232/87436502