📅  最后修改于: 2023-12-03 15:18:01.028000             🧑  作者: Mango
有时候我们需要获取一个地址的经纬度信息,以便在地图上显示该地址的位置。使用 npm package
可以非常方便地实现该功能。
下面是一些常用的 npm packages:
geocoder
packagegeocoder
可以通过 Google Geocoding API
对地址的经纬度进行解析。
安装:
$ npm i geocoder
代码:
const geocoder = require('geocoder');
// You can use any address
const address = '1600 Amphitheatre Parkway,Mountain View,CA';
geocoder.geocode(address, function(err, data) {
console.log(data.results[0].geometry.location);
});
console
输出的结果如下:
{ lat: 37.4224764, lng: -122.0842499 }
node-geocoder
packagenode-geocoder
可以自动选择 Google Geocoding API
、OpenStreetMap Nominatim
等服务。
安装:
$ npm i node-geocoder
代码:
const NodeGeocoder = require('node-geocoder');
const options = {
provider: 'google',
// Optional depending on the providers
httpAdapter: 'https', // Default
apiKey: 'YOUR_API_KEY', // for Mapquest, OpenCage, Google Premier
formatter: null // 'gpx', 'string', ...
};
const geocoder = NodeGeocoder(options);
// Using Promise
geocoder.geocode('29 champs elysée paris')
.then(function(res) {
console.log(res[0].latitude);
console.log(res[0].longitude);
})
.catch(function(err) {
console.log(err);
});
// Or using async/await
async function getCoord() {
try {
const res = await geocoder.geocode('29 champs elysée paris');
console.log(res[0].latitude);
console.log(res[0].longitude);
} catch(err) {
console.log(err);
}
}
getCoord();
console
输出的结果如下:
48.8698679
2.3072976
以上是获取地址的经纬度的两种方法。根据自己的需要选取合适的 npm package 即可。