JS 根據IP地址定位城市 | 使用百度地圖API


我們在做移動端開發的時候,經常需要用到根據用戶的 IP 地址,來自動定位用戶所在的城市。

在這里將 demo 記錄下來,分享給大家,主要調用百度地圖 API 。

后端框架:node.js

 

調用的百度地圖 api 接口:

http://api.map.baidu.com/location/ip?ak=您的AK&ip=您的IP&coor=bd09ll   // HTTP協議 

https://api.map.baidu.com/location/ip?ak=您的AK&ip=您的IP&coor=bd09ll   // HTTPS協議

 

1. npm 安裝 request、querystring:

npm install request

npm install querystring

 

2. 封裝成函數

// ip 定位城市 | 使用百度地圖 API
ipLocation(clientIp) {
  let basicuri = 'http://api.map.baidu.com/location/ip?';
    
  const baiduMapParams = {
    ip: clientIp,
    ak: '...'  //注冊百度地圖開放平台即可得到AK(開發密鑰)
  };
  let queryData = querystring.stringify(baiduMapParams);

  let queryUrl = basicuri + queryData;

  return new Promise((resolve, reject) => {
    request(queryUrl, function(error, response, body) {
      if (!error && response.statusCode == 200) {
        // 解析接口返回的JSON內容
        let newBody = JSON.parse(body);
        resolve(newBody);
      } else {
        reject({ code: -1, err_msg: 'ip 定位請求異常' });
      }
    });
  });
}

 

3. 返回的數據中得到 城市字段:

const locationData = await tools.ipLocation(clientIp); //方法封裝在tools類中

const locCity = locationData.content.address_detail.city;

locCity 即為 ip 地址對應的城市信息

 

附:接口返回結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM