1. 程式人生 > 實用技巧 >JS 根據IP地址定位城市 | 使用百度地圖API

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地址對應的城市資訊

附:介面返回結果: