📜  npm package al dar una direccion se obtienen las coordenadas longitud y latitud (1)

📅  最后修改于: 2023-12-03 15:18:01.028000             🧑  作者: Mango

获取地址的经纬度

有时候我们需要获取一个地址的经纬度信息,以便在地图上显示该地址的位置。使用 npm package 可以非常方便地实现该功能。

推荐的 npm packages

下面是一些常用的 npm packages:

使用 geocoder package

geocoder 可以通过 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 package

node-geocoder 可以自动选择 Google Geocoding APIOpenStreetMap 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 即可。