引言
在我们的日常工作或学习中,经常需要处理地址相关的业务功能,比如输入/展示地址等等。然而在前端开发中,处理地址相关的业务并不是一件容易的事,因为地址相关的数据是复杂且各异的。而npm包dc-postal-address便是一款为前端开发人员提供便捷的地理位置数据的包,本篇文章将详细介绍如何使用该npm包。
安装npm包dc-postal-address
通过npm(Node Package Manager)来安装dc-postal-address这个包
npm install --save dc-postal-address
使用
将地址转为归属地
dc-postal-address的使用非常简单和方便,您只需要引入模块并且调用相应的API即可。下面我们先来看几个最常用的API。
const dcPostalAddress = require('dc-postal-address'); const result = dcPostalAddress.addressToLocation('1600 Amphitheatre Parkway, Mountain View, CA 94043, USA'); console.log(result);
参数
dcPostalAddress.addressToLocation()的参数是一个地址字符串,类似下面的形式:
const textAddress = '1600 Amphitheatre Parkway, Mountain View, CA 94043, USA';
返回值
dcPostalAddress.addressToLocation()返回的结果是一个包含归属地信息(省/州、市、邮编、国家)对象的Promise,该对象属性的含义以及类型分别如下:
- state(string):省/州
- city(string):城市
- postcode(string):邮编
- country(string):国家
{ state: 'California', city: 'Mountain View', postcode: '94043', country: 'USA' }
如上代码所示,我们可以快速将一个地址字符串转化为归属地信息,便于后续对该地址进行处理。
将归属地转为地址
现在,我们可以利用dc-postal-address包将一个地址字符串转化为归属地信息,并将这些信息存储在数据库中或者展示给用户。不过,在有些情况下,我们需要将归属地信息再次转回到地址字符串。下面我们就来看看如何将归属地信息转为地址字符串。
-- -------------------- ---- ------- ----- --------------- - ---------------------------- ----- ------ - ----------------------------------- ------ ------------- ----- --------- ------ --------- -------- -------- ----- --- --------------------
参数
dcPostalAddress.locationToAddress()的参数是一个包含归属地信息(省/州、市、邮编、国家)对象,该对象属性的含义以及类型和上个API中一致。
{ state: 'California', city: 'Mountain View', postcode: '94043', country: 'USA' }
返回值
dcPostalAddress.locationToAddress()返回的结果是一个地址字符串,地址字符串的格式和输入的地址字符串格式相同:
'1600 Amphitheatre Parkway, Mountain View, CA 94043, USA'
获取省/州列表
在处理地址相关的业务时,我们可能需要提供一个省/州下拉菜单供用户选择,这时,我们就需要获取全部的省/州信息。这里,我们将使用dc-postal-address获取美国州的列表信息。
const dcPostalAddress = require('dc-postal-address') const result = dcPostalAddress.getStates('USA'); console.log(result);
参数
dcPostalAddress.getStates()的参数是一个国家码字符串,该国家码参数在获取州列表时必须是字符串且只能是两个字母的大写字符串,比如美国的国家码为“USA”。
'USA'
返回值
dcPostalAddress.getStates()返回的结果是一个包含所有美国州名的数组:
['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'District Of Columbia', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming']
我们可以通过上面的方法快速获取所有的给定国家的省/州列表。
深入理解
在了解了dc-postal-address基础API的使用方法之后,我们再来一起看看如何撰写一个更为复杂的例子。
获取某一区域内的邮政编码
我们现在有一个需求,需要获取某一指定范围内的所有邮政编码,我们可以使用dc-postal-address提供的API来完成。
-- -------------------- ---- ------- ----- --------------- - ----------------------------- ----- ----------- - - ------ ---------- ------ ---------- ----- ----------- ----- ----------- -- ----- ------ - -------------------------------------------------- --------------------
参数
dcPostalAddress.getAllZipcodesInArea()的参数是一个对象,该对象包含以下4个属性:
- north:北纬,数据类型为float。
- south:南纬,数据类型为float。
- east:东经,数据类型为float。
- west:西经,数据类型为float。
以美国为例,当传入上方的usaLocation时,表示美国这个区域的范围。
返回值
dcPostalAddress.getAllZipcodesInArea()返回的结果是一个包含指定区域内所有的邮政编码的数组。下面是数组样例:
[ '00601', '00602', '00603', '00604', '00605', '00606', '00610', '00611', '00612', '00613', '00614', '00616', '00617', '00622', '00623', '00624', .......... '99926', '99927', '99928', '99929', '99950', '99955' ]
有了这个API之后,我们便可以快速获取某一区域内的所有邮政编码。
总结
本篇文章主要讲述了如何使用npm包dc-postal-address来处理地址相关的业务,并且详细介绍了在前端开发中如何调用该包提供的API。通过使用该包我们可以很方便的将地址字符串转化为归属地信息,将归属地信息转化为地址字符串,以及快速获取某一区域内的我们需要的所有邮政编码。这对于前端开发人员来说,将大大的提高我们的开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60057a5e81e8991b448eb4dd