Wednesday, August 15, 2018

Matlab: Batch add fields and assign values to features

Introduction

Given a vector file, add attribute values to each vector unit of the file for further analysis. Please see Fig. 1 for the attribute table before and after. In the original attribute table, some field names are displayed abnormally due to encoding issues, so please use English characters for relevant characters.(已知一个矢量文件,为该文件的每一矢量单元增加属性数值,用于进一步分析。属性表前后请见Fig. 1。其中,原属性表某字段名称前后因编码问题而显示异常,因而涉及字符请使用英文字符。)
Fig. 1

Note

代码配置情况如下,每次运行前注意核对:
1.确认DBF文件标签列,对应index_col_locate;
2.默认数值型属性长度20位,小数点后6位,可调整,空格填充0;
3.默认字符型属性长度14位,以应用英文字符为宜,长度可调整,空格填充*;
4.一次匹配一个矢量文件,输出在Output目录。

References

Monday, August 6, 2018

MAP API: BAIDU MAP API地址解析

我在互联网上找到一个小工具,可以作为各大在线地图地址解析的统一接口,操作很简单。所以我以工具作为地址查询坐标的直接应用,而非链接百度地图API。这个小工具的下载及操作请见文献[4]。
注意:个别名称指示范围并不准确,建议应在名称前加上特定区域名称纠正此错误,如上海XX公司北京分公司,解析过程极易导致解析范围地位在上海地区,此解决方式是直接在企业名称前强制加上北京等区域名称,有必要在每次解析之前将区域名称冠到企业名称之前
这里需要说明的是,小工具选择使用百度地图完成地址解析,返回的是百度坐标。百度坐标是在GCJ02坐标系(俗称火星坐标系)之上再加上一次非线性偏移而得,记为BD09。这里,我们就明白了,百度坐标是经过两次偏移得到,还不能直接应用到分析过程,它还需还原至原始坐标。
1
2
3
4
5
6
7
%一个取巧的方法将百度坐标转换为原始坐标[2]:
%假设你有百度坐标:x1=116.397428,y1=39.90923 
%把这个坐标当成GPS坐标,通过接口获得他的百度坐标:x2=116.41004950566,%y2=39.916979519873
%通过计算就可以得到GPS的坐标: 
x=2*x1-x2,y=2*y1-y2 
x=116.38480649434001 
y=39.901480480127

References