查看原文
其他

cnaddress命令——实现经纬度转换为中文地址

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:李婷婷

文字编辑:王玉婷

技术总编:余术玲

爬虫俱乐部云端课程

爬虫俱乐部于2020年7月在线上举办的Stata与Python编程技术训练营已圆满结束。应广大学员需求,我们的课程现已在腾讯课堂双双上线,且继续提供答疑服务。现在关注公众号并在朋友圈转发推文《来腾讯课堂学Stata和Python啦!》,即可获得600元课程优惠券,集赞50个再领200元课程优惠劵!(截图发至本公众号后台领取)原价2400元的课程,现在只要1600元

导读

  在上一篇推文《定位神器——cngcode》中我们介绍了cngcode命令,可以将中文地址转换为经纬度,而今天我们介绍的cnaddress命令可以实现将经纬度转换为相应的中文地址。接下来就一起了解一下cnaddress命令的用法吧~

一、命令介绍

  首先,cnaddress命令在使用前同样要通过百度地图开放平台申请密钥,在申请到密钥后才能使用cnaddress命令。申请密钥的方法在上篇推文中已经介绍过了,这里就不再赘述。因为cnaddress是一个外部命令,第一次使用需要先进行安装。

ssc install cnaddress
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

我们将这次得到的经纬度与第一次得到的经纬度进行比较,发现两次的经纬度虽然不完全相同但是差距特别小,几乎可以忽略不计。

以上就是本文对cnaddress命令的介绍了,大家可以将cngcode和cnaddress命令结合起来一起学习~




对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!
往期推文推荐
定位神器——cngcode

Python入门—Spyder的简单使

Jupyter Notebook 的这些tips你了解吗?
给变量名换马甲之rename命令

追踪命令set trace on——解你燃眉之急

爬虫大杀器 | “手把手”教你配置Selenium

小白必看!Anaconda安装全攻略

数据类型转换之destring和tostring命令

mvencode和mvdecode——打开缺失值与特定数值转换大门的钥匙
优雅的map()
Python实现Excel中vlookup函数功能
Stata实现Excel中vlookup函数功能
gen与egen,傻傻分不清楚?

用WordStat看中国日报新闻(二)

一招轻松合并文件——openall命令介绍

爬虫俱乐部平安经
一个函数实现PDF文档合并与拆分
关于我们


微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata和python的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存