前言
在前端开发中,我们经常需要使用地理编码(geocoding)这一技术来将地理位置转化为经纬度或是将经纬度转换为地址等操作。而针对这一问题,npm 上提供了许多易于使用的 geocoding 库,如 nominatim-geocoder。
本篇文章将介绍如何使用 npm 包 nominatim-geocoder 来进行 geocoding 操作。
安装
使用 npm 安装 nominatim-geocoder:
npm install nominatim-geocoder --save
基本用法
在使用 nominatim-geocoder 进行 geocoding 操作前,需要先获取一个相应的 geocoding 服务的地址,这里以 OpenStreetMap 为例:
var geocoder = require('nominatim-geocoder')('https://nominatim.openstreetmap.org/');
此时我们已经成功创建了一个 geocoder 对象。接下来,该对象暴露出以下方法:
geocode
将一个地址转化为经纬度:
geocoder.geocode('New York, NY', function(err, coordinates) { console.log(coordinates); // { latitude: 40.712784, longitude: -74.005941 } });
reverse
将经纬度转化为地址:
geocoder.reverse(40.712784, -74.005941, function(err, address) { console.log(address); // { city: 'New York', state: 'New York', country: 'USA', countryCode: 'US' } });
search
在一定范围内查询地址:
geocoder.search('New York', {country: 'USA'}, function(err, addresses) { console.log(addresses[0]); // { latitude: 40.7128, longitude: -74.0060, osm_id: '175905387', osm_type: 'node', displayName: 'New York, United States of America' } });
参数详解
geocode(query, callback)
- query:待转换为经纬度的地址,可以是字符串或者是对象
- callback:回调函数,函数参数 err,results
reverse(lat, lon, callback)
- lat:待转换为地址的纬度
- lon:待转换为地址经度
- callback:回调函数,函数参数 err,address
search(query, params, callback)
- query:待查询的地址,可以是字符串或者是对象
- params:查询参数对象,参数说明见下
- callback:回调函数,函数参数 err,address
查询参数
bounded
:boolean,是否限制查询范围viewbox
:string,查询范围,格式为left,top,right,bottom
countrycodes
:string,待查询的国家代码,多个代码用逗号隔开country
: string,待查询的国家state
:string,待查询的州county
:string,待查询的县city
:string,待查询的城市postalcode
:string,待查询的邮编
总结
本文详细介绍了 npm 包 nominatim-geocoder 的使用方法,主要包括安装,基本用法和参数详解。读者可以根据需求来选择使用不同的方法和参数。nominatim-geocoder 作为一个易于使用且功能强大的 geocoding 库,为我们的开发提供了很强的帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055aab81e8991b448d83a4