shp转txt获取其坐标点

  • 1.shp->json
  • 2.json->txt
  • 3.批量转换

1.shp->json

这样做可以获取 shp 文件每个面的组成顶点的坐标。转换方式为登陆该网址在线批量转换。https://mapshaper.org/
Json 格式如下:

其中单独一个面的表示如下,前面有声明所绘制的属性为面,后面描述了该面的属性,是 shp 文件中的字段。中间则是表示组成该面的顶点坐标,用【】将坐标框起来。

2.json->txt

但是我们如果只需要坐标不需要这些属性的话,可以对字符串处理将其进行分割。处理后结果如下:

其中第一个顶点坐标与最后一个顶点坐标为同一个坐标。
以下代码的功能是将一个string分割为许多小的string,并去除分隔符。这里的分隔符pattern可以自行设置。

vector<string> split(string str, string pattern)
{string::size_type pos;vector<string> result;str += pattern;//扩展字符串以方便操作int size = str.size();for (int i = 0; i<size; i++){pos = str.find(pattern, i);if (pos<size){std::string s = str.substr(i, pos - i);result.push_back(s);i = pos + pattern.size() - 1;}}return result;
}

3.批量转换

对于批量处理,可以获取当前文件夹下所有格式为json的文件名,然后分别对每个文件执行转换操作,达到批量转换
获取当前文件夹下的所有格式为json的文件名:

  • 批量获取当前文件夹下固定格式文件名
    头文件:
    #include <windows.h>
    #include <io.h>
void GetAllFormatFiles(string path, vector<string>& files, string format)
{//文件句柄  long   hFile = 0;//文件信息  struct _finddata_t fileinfo;string p;if ((hFile = _findfirst(p.assign(path).append("\\*" + format).c_str(), &fileinfo)) != -1){do{if ((fileinfo.attrib &  _A_SUBDIR)){if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0){//files.push_back(p.assign(path).append("\\").append(fileinfo.name) );GetAllFormatFiles(p.assign(path).append("\\").append(fileinfo.name), files, format);}}else{files.push_back(p.assign(fileinfo.name));}} while (_findnext(hFile, &fileinfo) == 0);_findclose(hFile);}
}//获取该路径下所有json文件的绝对路径名
vector<string> readAllFiles(string filePath)
{vector<string> files;string format = ".json";GetAllFormatFiles(filePath, files, format);int size = files.size();//cout << size << endl;for (int i = 0; i<size; i++){files[i] = filePath + "/" + files[i];//改为绝对路径cout << files[i] << endl;//输出到屏幕}return files;
}
  • 循环读取文件路径并执行转换操作。
    转换操作就是在split函数的基础上自己设置分隔符操作即可。

  • 程序
    如果不想写也可以用我用qt写的简单小程序(好吧我就是为了积分~)
    https://download.csdn.net/download/lemon_haha/11175744 选择文件夹后关闭即可。
    注意:本程序仅在windows平台下测试通过,且json由shp转换而来,其中shp没有任何其它属性,所以设置的固定的分割符,可以满足大部分无属性简单json转换,但不一定适用于所有json文件。
    不过也没事,若是不满足条件也可以基于以上程序自己设置分隔符即可。


    最后生成结果如下:

shp转txt获取其坐标点(可批量操作)相关推荐

  1. [arcgis插件]gis二次开发 报备工具:SHP转TXT文本、TXT转SHP插件

    [arcgis插件]gis二次开发 报备工具:SHP转TXT文本.TXT转SHP插件 [2022.09.28版本更新] 1.shp转txt文件: 选择图层:选择面图层 保存路径:设置一个文件夹路径,可 ...

  2. JAVA中经过nginx反向代理获取客户端ip并获取相关坐标等信息

    关于搜狐新浪ip库查询接口的使用 直接输出访客ip及所在城市: <script src="http://pv.sohu.com/cityjson?ie=utf-8" > ...

  3. android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)

    在做一个view背景特效的时候被坐标的各个获取方法搞晕了,几篇抄来抄去的博客也没弄很清楚. 现在把整个总结一下. 其实只要把下面这张图看明白就没问题了. 涉及到的方法一共有下面几个: view获取自身 ...

  4. Window插件获取窗口坐标

    本帖最后由 兄弟工程师05 于 2013-3-22 09:01 编辑 Window插件获取窗口坐标[code]Call RunApp("notepad.exe") Delay 15 ...

  5. C++获取鼠标坐标并移动鼠标

    原文章地址: C++获取鼠标坐标并移动鼠标 公司电脑强制设定10分钟无鼠标键盘输入便锁屏,锁屏之后要重新输入密码太麻烦.代码自动检测过去4.9分钟内鼠标是否发生了移动,如果没有发生移动则移动鼠标位置. ...

  6. mysql图形查询操作 点找面及面找点 Polygon获取中心点坐标 空间地理位置计算

    SET @x = 121; SET @y = 30; -- SET @point = CONCAT('POINT(',@x,' ',@y,')'); set @point= Point(@x,@y); ...

  7. 按键精灵通过句柄获取窗口坐标_按键精灵怎么获取同名窗口的句柄

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:按键精灵怎么获取同名窗口的句柄回答:命令名称: Search 遍历符合窗口 命令功能: 遍历符合窗口标题的句柄保存到数组里 命令参数 ...

  8. 高德地图:点击获取火星坐标(经纬度)

    本文根据酸奶小妹博文中代码进行修改:http://www.cnblogs.com/milkmap/p/3627940.html 由于高德api升级,原文代码貌似已经不能用,略作修改后可用. <! ...

  9. rdkit 力场优化UFFOptimizeMolecule、MMFFOptimizeMolecule;chem3D 3D分子生成;获取分子坐标对象

    rdkit 力场优化UFFOptimizeMolecule.MMFFOptimizeMolecule 参考:https://zhuanlan.zhihu.com/p/82588052 https:// ...

最新文章

  1. Python文本处理:解析json格式的数据
  2. Spring IOC 容器源码分析系列文章导读 1
  3. centos 开机执行的命令
  4. 奥托尼克斯接近开关型号_萨科微SLKOR的MOS 场效应管应用范围和型号
  5. 在Linux系统安装Nginx及配置https加密访问
  6. leetcode(5)—— Longest Palindromic Substring(最长回文子串)
  7. 【Caffe实践】基于CNN的性别、年龄识别的代码实现
  8. 【语音去噪】基于matlab最小二乘法(LMS)自适应滤波器【含Matlab源码 481期】
  9. 搭建MySQL可视化Web界面服务器
  10. Python编写工资计算器
  11. python自由落体_Javascript摸拟自由落体与上抛运动原理与实现方法详解
  12. 热插拔48块硬盘服务器,24块前置热插拔硬盘设计
  13. 推荐好用的输入法 QQ输入法 及设置特定词组的输入方式
  14. java 文本文件加密 文本文件解密
  15. 2022帆软BI数据分析大赛重磅来袭!瓜分20W奖金!
  16. 指法练习软件需求说明书
  17. nalu格式annex-B和avcc
  18. 浅谈游戏数据分析---留存篇一-留存折损
  19. 【前端】js轮播图,简洁代码,一目了然
  20. Rust的安全系统编程

热门文章

  1. Web3术语大全(小白轻松入门Web3)建议收藏
  2. 二个数据库之间怎么同步
  3. 软考高级项目管理师Day1
  4. vue3 setup 怎么获取vue实例上的全局变量
  5. 安装ideaIU-2022.1.4报错问题解决办法
  6. XView小程序开源组件库
  7. repeat语句 及 赋值语句说明---verilog HDL
  8. java 虚拟机设置 Xms Xmx PermSize MaxPermSize
  9. 基于FPGA的数码管显示出租车计费器
  10. 杜杜桥中学计算机老师那个,爱在重阳 情满杜中 | 杜桥中学召开离退休老教师重阳节座谈会...