分类目录归档:GIS

火星坐标矢量地理文件纠偏方法

一、问题描述

大家都知道,国内的高德、百度等地理信息都是偏移过的,在日常处理过程中有诸多不便,网上有不少给坐标点(有经纬度X、Y坐标值)纠偏的工具或代码,虽然不能完全匹配,但是精度基本都能满足需求。

但是日常使用中还有一个很大的问题,就是我们的线、面等地理数据,是没法用那些工具处理的。怎么办呢?经过漫长的寻找终于找到一个postgis_LayerTransform。

其github地址:https://github.com/FreeGIS/postgis_LayerTransform
作者博客地址:blog.csdn.net/freeland1/article/details/50157641

二、使用方法

1、软件安装

这个代码需要配合postgis使用,因此要安装几个软件:postgresql、postgis。

首先安装postgresql

然后安装postgis(用跟postgresql版本配套的版本,可以独立安装,也可以在postgresql安装完后跳出来的附加组件安装程序里面安装,安装的时候选择创建一个地理数据库,后面可以用来作为模板)

2、创建数据库

打开pgadmin,新建一个数据库(在新建的时候可以以地理数据库为模板,也可以直接创建一个空数据库)

如果上一步创建了一个空数据库,那么还要安装postgis拓展(在拓展上面点右键-创建拓展,然后下拉菜单找到postgis)

3、导入数据

打开 插件-postgis shapefile and dbf loader(如果是pgadmin4,可能找不到插件这个选项,可以直接在系统开始菜单里面找这个插件)

点击view connection details,连上刚刚创建的数据库

点击add file,打开要导入的shp文件

(这一步比较重要)设置shp文件的属性,尤其是srid(WGS84地理坐标是4326,WGS墨卡托投影是3857),表名也可以设置一下,如果不设置默认就是shp文件名。

然后点击import就好了(注意文件路径不能太长太深,不能有中文)

4、处理数据

执行SQL查询,首先执行上面github提供的完整代码

然后执行select LayerTransform(‘tablename’,’GCJ2WGS’); (其中tablename就是导入的shp的名称,在上述第3步的设置属性里面设置。GCJ2WGS是一种纠偏方式,支持以下6种’BD2GCJ’, ‘GCJ2BD’, ‘WGS2GCJ’,’GCJ2WGS’,’BD2WGS’,’WGS2BD’,分别代表 百度转火星,火星转百度,84转火星,火星转84,百度转84,84转百度。)

5、导出数据

再次运行postgis shapefile and dbf loader导出即可

懒得截图,说的应该已经比较清楚了吧

ARCGIS导出到CAD分层的方法

1、问题:

收到一个公交线网的GIS数据,每条线路的信息非常丰富,现在我需要在CAD里面画图,需要将GIS里面的线路导出到CAD。开始直接导出来发现只有多段线,并且在同一个图层里面,没有任何信息。怎么办呢?

2、解决办法

(1)在线路属性表里面创建layer字段

打开线路图层的属性表,添加字段“layer”,类型设置为文本。

(2)设置layer值为公交线路编号

打开字段计算器,layer层设置为”=线路编号层”

(3)导出为CAD

可以直接右键图层-数据-导出至CAD,后面根据情况选择导出路径和名称,最好导出到低版本的CAD,OK,搞定!

3、似乎还可以把线路属性导出到块属性,等我研究一下。

ArcGIS中生成站点覆盖范围图的方法

问题出现

今天一同事让我帮忙做一个2和4号线的人口覆盖范围图,如下图:

enter image description here

没做过,开始慢慢摸索,终于研究出来了。

1、导入基础数据

与本博《统计人口岗位》相同。

2、导入线路和站点

与本博《统计人口岗位》相同。

3、生成站点周围800米范围区域

与本博《统计人口岗位》相同。

4、生成800米范围融合

打开 菜单-地图处理-融合,选择输入为上一步生成的缓冲区,其他可以默认。
生成后双击该图层下面的符号,设置填充颜色为“无填充颜色”,轮廓的宽度和颜色根据需要设置。

5、生成人口密度底图

双击基础数据图层,打开图层属性,符号系统-显示-数量-分级色彩,字段设置为需要年份的人口密度,色带本图中选择从小到大由绿变红的色带,分类选择10,然后确定。

6、设置站点和线路的大小

根据需要设置站点和线路的符号系统即可。

7、导出图形

选择合适的显示范围,选择 文件-导出地图,格式分辨率根据需要选择即可。

ArcGIS中站点周边人口岗位的统计方法

注意此处ArcGIS版本为10.2中文版

1、导入基础数据

基础数据包括研究年的小区划分、小区面积、人口岗位等信息,如果没有人口岗位密度可事先计算出来。

2、导入站点

根据轨道线网规划方案,在AutoCAD中点出站点位置,导入ArcGIS时,可以双击进入DWG文件,找到point导入。 最好不要直接导入DWG,那样会生成好几个图层,会比较麻烦。

3、生成站点周围800米范围区域

找到菜单栏-地图处理-缓冲区,输入要素为站点图层,输出根据情况定义,距离为线性单位,在此用800米,融合类型可选ALL,其他默认就行。

4、生成站点周围800米范围和基础小区叠加图层

打开Arctoolbox,找到分析工具-叠加分析-相交,输入要素选择前面生成的800米范围和基础数据层,输出根据情况定义,(XY容差根据教我的人可以选1米,但我不知道这个有啥用处),其他默认。

5、计算站点周边人口岗位数据

计算区域面积:

打开生成的相交区域图层的属性表,对面积字段计算几何,编辑和非编辑状态下都行。

计算人口和岗位:

添加相交区域人口和岗位的新字段,用字段计算器计算即可(面积密度),注意面积的换算*。

统计人口和岗位:

可以直接在ArcGIS里面统计,也可以导出为dbf用Excel等软件统计。