关于.gen格式的地图绘制以及地图投影转换,首先肯定是读取.gen格式,那么就得认识.gen格式内部数据样式,下面的图片给出的参考:

可以看到.gen格式文件由线、点数据,加上结束符end以及线的编号组成。那么我们就可以根据里面的数据格式读取并以一种合适的方式存储数据。当然,里面的数据也并非如此单一,比如纬度0.000 003689547189°,在文件里面的格式就是3.689547189e-006形式,这在我们匹配数据经纬度的时候要十分注意。

不多说了,直接解释一下代码吧:(表示不解释逻辑关系,只说实现方法)

1、函数前三行完成网页上本地文件的上传和读取,我们通过str存储文件的每一个字符,可以像数组一样访问文件的每一个字符。当然,str里面包含了文件里面每一行的起始符和换行符。而这种读取文件的方式也不限于读.gen,它可以读取很多文件

2.刚才说过,str里面包含的数据是单个字符,而且是字符型数据,还有一些其他的符号。那么我们必须通过某种手段去提取我们想要的,这里就是里面的经纬度数据。

需要解决的一些问题:

①我们要剔除所有非数字的东西,因为我们要的是数据         ②将单个的字符数字合并转化为有意义是经纬度数据

首先236和237行,将所有文件的起始符和换行符已经里面的逗号转换为A,然后将END这种终止符转换为L(问什么不一起转换为A?想想,L可以用来判断一段线是否结束啊,不然都混成A,你知道什么时候已经存完一段线了么!)。这样文件不就只有数字、小数点还有作为标记的字母了么。

②这个时候,通过循环,遍历整个heap,提取我们想要的。

第一个if语句,自然而然的,利用L判断是否结束一段线的读取,并用-1做上标记。(问我为什么要这步?呵,没有它,待会划线的时候,你知道什么时候用开始划线,什么时候结束划线啊!)

第二到第五个if语句,判断当前记录的点数据属于第几条线段。想想,heap里面的是单个字符,需要这个来判断需要跳过几个字符不是。第136条线段的开始有1 3 6这三个字符,程序怎么知道是属于经纬度的数字还是线段条数的数字呢,所以要用这几个if在开始一段新线段数据存储的时候,来个判断,需要往后跳过几个字符,然后继续存储

第六个if语句,想想这个数据的形式,通过之前的判断过滤以后,A与A之间的不就是一串数据了么,先全部给numcharacer(比如在A与A之间,numcharacter=2.3625,当然它还是自字符型的,可以通过numcharacter[1]访问“.”),然后在else里面把numcharacter转换为数据2.3625,这个时候,它就是一个数据了,一个数字类型数据了,也就是说我们提取经纬度成功了。

通过以上各步,number这个数组里面已经存储了经纬度数据。如下图,824条线段的部分数据先经度后纬度。

效果图参照下图

3、接下来就是墨卡托和兰伯特的投影转换了

读者可以根据公式,调整之前存贮的数据,进行投影转换,这里只提供公式,不做代码接受。因为经纬数据都有了,只是公式转换的问题了,和x=a*b没什么区别,写个函数OK了。

.gen格式文件读取,完成兰伯特和墨卡托投影转换相关推荐

  1. Matlab之netCDF格式文件读取方法

    Matlab之netCDF格式文件读取方法 目录 一.netCDF格式文件 1.简介 2.NetCDF的数据结构 二.Matlab读取netCDF使用到的函数 1.ncdisp() 2.ncinfo( ...

  2. python 格式文件 读取off_重新开始学习Python 第二十二天 Python 文件处理(三)

    CSV文件处理 这一篇文章接着上两篇文章继续介绍文件处理.前面两篇文章主要介绍了文本文件和表格(xls.xlsx)文件的处理,这一篇文章继续介绍表格(csv格式)文件的处理. 经常用到的csv文件处理 ...

  3. PDS4格式文件读取与保存

    文章目录 前言 一.获取PDS4数据 二.PDS4格式图像读取 1.下载pds4-tools库 2.读入数据 三.保存PDS4格式数据 1.下载osgeo库 2.保存PDS4 参考文章 前言 在航天领 ...

  4. R语言技巧:读取sas软件的sas格式文件

    前面几期介绍了如下内容: 读取excel文件 对比方法 读取csv格式文件 对比方法read.csv 读取sav格式文件 读取spss 的sav格式文件 这期介绍读取sas软件的sas格式文件,代码如 ...

  5. R语言技巧:读取spss的sav格式文件

    上几期介绍了R语言读取excel.csv格式,这期将介绍读取SPSS软件的数据.前面有一次介绍了2种读取方式,结合着学习下. 前面几期: 读取excel文件 对比方法 读取csv格式文件 对比方法re ...

  6. opencv——PNG格式图像读取转换函数

    暑假培训学习了opencv,放图像时,PNG格式的Alpha通道没用啊图都自己去p颜色,用来加载时变颜色 工作量太大了,,于是花了一下午弄了个简易功能的PNG格式文件读取转化加载函数. 注:这里主要是 ...

  7. C# 解/压缩rar/zip格式文件

    为了便于文件在网络中的传输和保存,通常将文件进行压缩操作,常用的压缩格式有rar.zip和7z. 本文将介绍在C#中如何对这几种类型的文件进行压缩和解压,并提供一些在C#中解压缩文件的开源库. 在C# ...

  8. python中的函数wavfile_Python--读取wav格式文件

    Python--读取wav格式文件 (2013-05-28 06:56:22) 标签: 格式文件 读取 杂谈 1.import wave 用于读写wav文件 它提供了一个方便的WAV#26684;式接 ...

  9. python用os.system打开wav文件_使用python读取wav格式文件

    ** 使用python读取wav格式文件 ** - 基本概念 [采样频率] 即取样频率, 指每秒钟取得声音样本的次数.采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时它占的资源比较多.由 ...

  10. python xlrd读取excel-使用Python xlrd模块读取Excel格式文件的方法

    这是一篇关于如何使用Python xlrd模块读取Excel格式文件的方法的文章,下面的python代码中使用 了xlrd模块的方法,这样就能够很方便的读取 excel 文件内容.同是这个xlrd模块 ...

最新文章

  1. PMCAFF出品|十一月30篇爆款文章合集,干货、技能、内涵齐飞,总有一款适合你
  2. Java中的Scanner类和String类
  3. VS2003编译后的网站如何修改代码
  4. python ju_如何使用jupy设置python路径
  5. 其他团队对本团队评价的总结
  6. python向dict里添加_Python有条件地向Dict添加键
  7. git merge 回退_Git 基础学习总结2(学不会你锤我)
  8. 【转载】:单例设计模式
  9. 以云为跳板,疑似中国黑客组织黑进全球知名IT服务公司
  10. linux 进程0 写时复制,linux 写时复制 COW 过程梳理
  11. Navicat使用教程:获取MySQL中的行数(第1部分)
  12. Mysql + keepalived 实现双主热备读写分离
  13. 坚果云+Typora+vscode 参考notion 进行个人知识管理
  14. 交换机的工作原理是什么,它有什么功能与作用?
  15. 父进程与子进程间相互发送信号
  16. 个人杀毒软件及防火墙排名
  17. python熊猫弹幕_GitHub - qingyuj/danmu: Python 弹幕包 A live danmu package for python
  18. fusioncharts 属性
  19. B站韩顺平java学习笔记(六)--面向对象编程章节
  20. 魔域mysql怎么连接数据库_怪物入包脚本:Navicat for MySQL使用Navi

热门文章

  1. windbg中ntsd使用用户态调试器链接到内核调试器的常用技巧
  2. 最好用的UltraISO 9.5.3.2901中文完美注册破解版
  3. 活著就为改变世界---史蒂夫.乔布斯…
  4. Vb.net 获取IP地址
  5. python万年历代码_利用python实现万年历
  6. 为什么登录MySQL会闪退_MySql登录时闪退的快速解决办法
  7. GStreamer 简化 Linux 多媒体开发
  8. 微博爬虫思路:Python通过移动端接口爬取,简单易操作
  9. NLPIR分词系统的使用
  10. ARP网关欺骗程序的实现(vs2008 winpacp)