cnaddress命令——实现经纬度转换为中文地址
本文作者:李婷婷
文字编辑:王玉婷
技术总编:余术玲
爬虫俱乐部云端课程
导读
在上一篇推文《定位神器——cngcode》中我们介绍了cngcode命令,可以将中文地址转换为经纬度,而今天我们介绍的cnaddress命令可以实现将经纬度转换为相应的中文地址。接下来就一起了解一下cnaddress命令的用法吧~
一、命令介绍
首先,cnaddress命令在使用前同样要通过百度地图开放平台申请密钥,在申请到密钥后才能使用cnaddress命令。申请密钥的方法在上篇推文中已经介绍过了,这里就不再赘述。因为cnaddress是一个外部命令,第一次使用需要先进行安装。
ssc install cnaddress
cnaddress, baidukey(string) lat(varname) long(varname) [options]
baidukey(string)是在百度地图开放平台申请的密钥。
latitude(varname)和longitude(varname)指包含经纬度的变量。
country(newvar)、province(newvar)、city(newvar)、district(newvar)、street(newvar)、address(newvar)、description(newvar)这些选项可以对country、province、city、district、street、address、description变量进行命名。
coordtype选项用来选择经纬度的坐标类型。百度地图默认bd09ll坐标系,即百度BD-09经纬度坐标系。可选坐标系还有wgs84ll(GPS全球卫星定位系统使用的坐标系)、gcj02ll(GCJ-02是由中国国家测绘局制订的地理信息系统的坐标系统)、bd09mc(百度墨卡托米制坐标)。
二、举例介绍
接下来举一个例子来说明cnaddress命令的用法。首先在Stata中录入数据,并用cngcode命令将中文地址转换为经纬度。(注:本文所有程序中所使用的baidukey都需要大家换为自己申请的密钥使用。)
clear all
input str15 prov str15 city str30 dist str60 address
"湖北省" "武汉市" "洪山区" "中南财经政法大学"
"河南省" "开封市" "顺河回族区" "河南大学老校区"
end
cngcode,baidukey(输入你的密钥) province(prov) city(city) district(dist) address(address) coordtype(bd09ll)
list
如图所示,我们得到了两个中文地址的经纬度。
如果我们需要将经纬度转换为中文地址,就可以用cnaddress命令来进行操作。我们用上一步得到的经纬度将其转换为中文地址。首先我们只保留数据集中longitude和latitude这两列数据。
keep longitude latitude
list
接下来用cnaddress命令对经纬度进行转换。
cnaddress,baidukey(输入你的密钥) lat(latitude) long(longitude) coordtype(bd09ll)
list
这时我们就得到了经纬度所对应的国家、省、市、区、街道及完整的中文地址。如果这时用cngcode命令对上边得到的地址进行转换为经纬度呢?
keep country province city district street address
cngcode,baidukey(输入你的密钥) province(prov) city(city) district(dist) address(address) coordtype(bd09ll)
list
我们将这次得到的经纬度与第一次得到的经纬度进行比较,发现两次的经纬度虽然不完全相同但是差距特别小,几乎可以忽略不计。
Python入门—Spyder的简单使用
追踪命令set trace on——解你燃眉之急
爬虫大杀器 | “手把手”教你配置Selenium
小白必看!Anaconda安装全攻略
用WordStat看中国日报新闻(二)
一招轻松合并文件——openall命令介绍
微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。