写在代码之前:

有一条小河,因为怕湿了脚,所以去搭桥。

结果是脚没有湿,却弄脏了全身。

谷歌地图下载器下载的图片四个角点的经纬度坐标为十进制的度,在ArcGIS里做配准,由于图比较大,导出的时候做了分割,

分割成了很多张图片。需要找出其中一张与研究区一致的影像,一个个配准需要输入经纬度,但ArcGIS中输入的是度分秒,

所以,写程序对txt文件进行批量处理。代码如下:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

namespace 十进制度转度分秒

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

string folderpath = "";

private void button1_Click(object sender, EventArgs e)

{

FolderBrowserDialog fbd = new FolderBrowserDialog();

fbd.Description = "选择包含谷歌地图下载器经纬度的文件夹";

if (fbd.ShowDialog() == DialogResult.OK)

{

folderpath = fbd.SelectedPath;

}

textBox1.Text = folderpath;

}

private void button2_Click(object sender, EventArgs e)

{

char[] split = new char[] { ':', ',' }; //分割字符串

folderpath = textBox1.Text;

//获取所选文件夹路径下的所有txt文档

List list = new List();

string[] strlist = Directory.GetFiles(folderpath);

for (int i = 0; i < strlist.Length; i++)

{

FileInfo f = new FileInfo(strlist[i]);

if (f.Extension == ".txt")

list.Add(strlist[i]);

}

for (int i = 0; i < list.Count; i++)

{

try

{

StringBuilder sb = new StringBuilder();

StreamReader sr = new StreamReader(list[i],Encoding.GetEncoding(936),true);

string s;

while (!sr.EndOfStream)

{

s = sr.ReadLine();

string[] tempstr = s.Split(split);

if (!tempstr[0].Contains("角"))

{

MessageBox.Show("所选择的不是谷歌地图下载器的坐标文件");

return;

}

else

{

//转换并写入文件

double[] dt1 = trandu2m(tempstr[1]);

double[] dt2 = trandu2m(tempstr[2]);

string s1 = tempstr[0]+dt1[0].ToString()

+ "°" + dt1[1].ToString()+"′"+dt1[2].ToString()+"″";

string s2 = dt2[0].ToString()

+ "°" + dt2[1].ToString() + "′" + dt2[2].ToString() + "″";

sb.AppendLine(s1 + "," + s2);

}

}

sr.Close();

FileStream fs = new FileStream(list[i], FileMode.Append);

StreamWriter sw = new StreamWriter(fs,Encoding.GetEncoding(936));

sw.WriteLine(); //写入一空行

sw.WriteLine(sb);

sw.Close();

}

catch (System.Exception ex)

{

throw new Exception(ex.Message);

}

}

MessageBox.Show("操作成功");

}

///

/// 十进制度转化为度分秒

///

///

///

private double[] trandu2m(string str)

{

try

{

//double dd = Convert.ToDouble(str);

double[] dt = new double[3];

dt[0] = Convert.ToDouble(str.ToString().Substring(0, str.IndexOf(".")));

string str1= str.Substring(str.IndexOf(".")+1);

str1 = "0." + str1;

string str2 = (Convert.ToDouble(str1) * 60).ToString();

dt[1] = Convert.ToDouble(str2.Substring(0,str2.IndexOf(".")));

string str3 = str2.Substring(str2.IndexOf(".") + 1);

str3 = "0." + str3;

string str4 = (Convert.ToDouble(str3) * 60).ToString();

dt[2] = Convert.ToDouble(str4);

return dt;

}

catch (System.Exception ex)

{

throw new Exception(ex.Message);

}

}

}

}

十进制度分秒lisp函数_十进制度批量转换度分秒相关推荐

  1. 角度转度分秒lisp函数_自改小程序,提示错误,运行另一个lisp后就不会出错,求帮忙!...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 ;;主程序 (defun c:qxys( / r an ps pe pc dis1) (setvar "cmdecho" 0) (co ...

  2. 转换工具 | EXCEL中批量转换度分秒、度、弧度值

    1 需求 科研工作中有时需要将GPS采集的经纬度转换为弧度.度为单位的数值,当然也可能互转.多数科学计算通常使用的是度或弧度为单位的数值. 例如:将 123°23′30″ 转换为 度 或 弧度的数值. ...

  3. 十进制度分秒lisp函数_十进制与度分秒坐标互转

    十进制 十进制 60进制 60进制 39.72092453 115.836417 39.431532831 115.501110117 39.7215745 115.8360305 39.431766 ...

  4. 角度转度分秒lisp函数_AutoLISP在尼康全站仪原始数据重新计算中的应用:尼康全站仪...

    摘 要:AutoLISP是针对AutoCAD系统的开发工具之一,也是开发AutoCAD图形软件的强有力工具,在很大程度上减轻了作业人员的工作强度.本文作者在研究AutoLISP与尼康全站仪原始数据结构 ...

  5. 经纬度换算数值_经纬度转换-----度分秒以及经纬度和米

    经纬度互换 度(DDD):E 108.90593度    N 34.21630度 如何将度(DDD):: 108.90593度换算成度分秒(DMS)东经E 108度54分22.2秒?转换方法是将108 ...

  6. wgs84坐标格式转换度分秒_一起爬山吗?寻找GIS坐标系统中“隐秘的角落”

    随着网剧<隐秘的角落>的爆红,笛卡尔与他的心形线的传说再次重回大众视野,r=a(1-sinθ) 就是"心形线"方程式. 笛卡尔法国著名数学家,哲学家,创建了数学坐标系, ...

  7. wgs84坐标格式转换度分秒_使用ArcGIS实现WGS84经纬度坐标到北京54高斯投影坐标的转换...

    [摘 要] 本文针对从事测绘工作者普遍遇到的坐标转换问题,简要介绍ArcGIS实现WGS84经纬度坐标到北京54高斯投影坐标转换原理和步骤. [关键词] ArcGIS 坐标转换 投影变换 1 坐标转换 ...

  8. android gps转换度分秒,如何将GPS数据转换为度分秒

    1.启动Excel之后,在A.B列录入如下数据,C.D列作为转换后的输出结果. 2.主要利用Text函数,将特定内容,转换成需要的格式,在B3单元格输入经纬度测试数据:50.454564.在C列输入公 ...

  9. wgs84坐标格式转换度分秒_WGS84经纬度坐标转换到西安80高斯投影坐标。

    带号18,并且对应的中央子午线是105°,说明是按6度带划分计算的.你注意看你的标题"WGS84经纬度坐标转换到西安80高斯投影坐标",就是说是在高斯坐标系下的平面坐标,高斯投影坐 ...

  10. wgs84坐标格式转换度分秒_ArcGIS坐标单位转换(米和度分秒之间是如何转换的?)...

    以度为单位存储的是地理坐标系(球面),以米为单位存储的是投影坐标系(平面). 常见的地理坐标系有:WGS-84. 常见的投影坐标系有:web墨卡托. 以度为单位的好处是精确. 以米为单位的好处是符合人 ...

最新文章

  1. Visual Studio 2019 preview中体验C# 8.0新语法
  2. 2015.7.11js-10(无缝滚动)
  3. Redis内部数据结构-跳跃表
  4. 远程配置jupyter notebook
  5. git使用stash存储相关操作
  6. python进程数上限_在多处理python中限制进程数
  7. db2字符串定位_DB2/Oracle/SQL server判断某个字符串或单个字符在源字符串中出现的位置...
  8. C语言编写飞机大战程序,C语言实现简单飞机大战
  9. Canvas Scaler
  10. oracle收款凭证做错月份,​上个月的银行凭证做错了怎么办
  11. ElasticSearch分布式搜索引擎安装教程
  12. WordPress 安全漏洞
  13. 使用TextPaint实现自由加粗字体:BoldTextView,支持中粗
  14. 计算机一直重启无法进入系统怎么办,电脑无限蓝屏重启 电脑一直不断的重启怎么办...
  15. 查看微信公众号的二维码
  16. 导航电子地图制作甲级测绘资质
  17. 【数据可视化】复杂高维多元数据的可视化
  18. golang map的遍历
  19. 小时候,幸福很简单;长大后,简单很幸福!
  20. 试题 历届真题 全球变暖【第九届】【省赛】【B组】2018年 第9届 蓝桥杯 Java

热门文章

  1. cameralink解码编码FPGA代码定制
  2. c语言入门ppt演示,c语言学习ppt-C语言入门教程ppt(共434页)免费版【精品课件】-东坡下载...
  3. c4d流体插件_C4D常用最火14款插件合集,总有一款你想要的!
  4. ewiews面板回归模型操作_用eviews怎么做面板数据的多元回归分析呀?
  5. X,X11,Xorg,XServer,XClient,Xlib
  6. edge同步chrome书签_如何通过 iCloud 同步 chromium edge 的书签?
  7. 虚拟机服务器开放全部端口,查看虚拟机开放端口号
  8. Mstar官网下载转换成jpg格式的保姆级教程
  9. Kali Linux学习入门
  10. SEO超级外链留痕工具 最新SEO外链一键优化网站源码