什么是 positionstack,是什么讓它強大?

positionstack 是一種 API 服務,它提供了簡單可靠的正向和反向地理編碼解決方案。該服務覆蓋全球超過 20 億個地點和地址。

Positionstack API 的功能包括批量地理編碼、多語言支持以及可嵌入地圖 URL 等。您可以選擇 JSON、XML 或特定于地理編碼的 GeoJSON 格式來獲取地理位置 API 的結果。API 的平均響應時間在 10 毫秒到 100 毫秒之間,具體取決于您的請求大小。

positionstack 已成為許多企業的 Go to Geolocation API。以下是 Positionstack 用戶每天請求 1+ 億次地理編碼 API 查找的原因:

apilayer是一家奧地利技術公司,構建了各種可靠的編程接口(API),它構建并維護了positionstack API。apilayer為開發人員和初創公司提供價格合理的尖端API。

簡而言之,positionstack是市場上最先進、最輕量級、最經濟實惠、最易于使用的地理編碼解決方案。本文詳細介紹了它的各種API端點、可用選項以及Node.js和其他平臺(Postman和RAD Studio REST插件)的教程。

如何訪問positionstack API?

首先獲取您的API憑據,并設置您的訂閱計劃:

您可以通過此儀表板監控您的使用情況。

API訪問密鑰和身份驗證

接下來,要檢查是否一切正常,只需在您最喜歡的Web瀏覽器中運行此URL:

http://api.positionstack.com/v1/forward?access_key=YOUR_ACCESS_KEY&query=1600%20Pennsylvania%20Ave%20NW,%20Washington%20DC

您應該在瀏覽器中看到此API響應:

API錯誤

如果您的API請求失敗,API將返回一個錯誤對象。它包含子對象代碼和指示所發生錯誤類型的消息。

以下是最常見的API錯誤:

代碼類型描述
401無效訪問鍵提供了無效的API訪問密鑰。
401丟失存取鍵未提供API訪問密鑰。
401非活動用戶給定的用戶帳戶處于非活動狀態。
403https_access_restricted當前訂閱計劃不支持HTTPS訪問。
403函數訪問受限當前訂閱計劃不支持給定的API終結點。
404無效的_API_函數給定的API終結點不存在。
404404_not_found頁面沒有找到
429已達到使用限制給定的用戶帳戶已達到其每月允許的請求量。
429達到速率極限給定的用戶帳戶已達到速率限制。
500內部錯誤發生內部錯誤。

哪些正向地理編碼端點可通過 API 獲得?

正向地理編碼是將自由文本地址或地點轉換為位置數據的過程。要發出正向地理編碼請求,請使用API的正向端點并使用查詢參數指定查詢。

以下是HTTP GET請求參數:

對象描述
訪問密鑰[必需]您的API訪問密鑰,可在您的帳戶儀表板中找到。
查詢[必需]將您的查詢指定為自由文本地址、地名或使用任何其他常見的基于文本的位置標識符(例如郵政編碼、城市名稱、地區名稱)。
國家[可選]通過一個或多個逗號分隔的2字母(例如Au)或3字母國家代碼(例如AUS)過濾地理編碼結果。示例:country=Au,CA,按澳大利亞和加拿大篩選。下載:支持的國家(CSV)
區域[可選]通過指定區域過濾地理編碼結果。這可以是一個街區、地區、市、縣、州或行政區域。例如:region=柏林,按柏林的位置進行過濾。
語言[可選]通過指定首選語言的2個字母(例如en)或3個字母代碼(例如eng)來翻譯特定的API響應對象。(默認:英文)
國家模塊[可選]設置為1以使國家/地區模塊能夠在您的API響應中包括更廣泛的國家/地區數據。在國家模塊部分閱讀更多相關信息。
太陽模塊[可選]設置為1,使Sun模塊能夠在您的API響應中包括占星數據。在Sun模塊部分中閱讀有關此的更多信息。
時區模塊[可選]設置為1以使時區模塊能夠在API響應中包括時區數據。在時區模塊部分閱讀更多關于此的信息。
bbox模塊[可選]設置為1以使邊界框模塊能夠在API響應中包括邊界坐標。在邊界框模塊部分中了解更多信息。
限制[可選]指定1到80之間的限制,以限制每個地理編碼查詢返回的結果數。批處理請求可以包含多個地理編碼查詢。(默認值:10個結果)
領域[可選]指定一個或多個響應字段以減小API響應大小。了解如何在指定響應字段部分中使用此選項。
輸出[可選]指定首選的API輸出格式。可用值:JSON(默認)、XML和GeoJSON。
回調[可選]使用此參數指定要將API響應包裝在其中的JSONP回調函數名稱。了解有關JSONP回調的更多信息。

每個API響應由18個不同的響應對象組成:

響應對象描述
數據返回兩個大的數據數組:請求和結果,下面將詳細解釋。
結果返回此API請求的位置結果數組。子數組的數量直接取決于指定的限制值。下面列出了所有子陣列和子對象。
結果>緯度返回與定位結果關聯的緯度坐標。
結果>經度返回與定位結果關聯的經度坐標。
結果>標簽返回格式化的地名或地址。
結果>名稱返回定位結果的名稱。這可能是一個地名、地址、郵政編碼等等。
結果>類型返回定位結果的類型。以下是所有可用的位置類型列表:地點,地址,街道,鄰里,自治市,localadmin,地方,縣,宏觀國家,地區,宏觀地區,國家,粗略,郵政編碼。
結果>數量返回與定位結果關聯的街道或門牌號。
結果>街道返回與定位結果關聯的街道名稱。
搜索結果>郵政編碼返回與位置結果關聯的郵政編碼或郵政編碼。
結果>信心返回與位置結果關聯的介于0(0%置信度)和1(100%置信度)之間的置信度分數。
結果>區域返回與定位結果關聯的區域的名稱。
結果>區域代碼返回與定位結果關聯的區域代碼。
結果>行政區域返回與定位結果關聯的行政區域的名稱。
結果>鄰域返回與定位結果關聯的鄰域的名稱。
結果>國家返回與定位結果關聯的國家/地區的通用名稱。
結果>國家代碼返回與位置結果關聯的國家/地區的ISO 3166 Alpha 2(兩個字母)代碼。
結果> map_url返回與定位結果關聯的可嵌入映射。

通過API可以使用哪些反向地理編碼端點?

反向地理編碼是將坐標(緯度/經度)或IP地址轉換為位置數據的過程。要發出反向地理編碼請求,請使用API的反向端點,并使用查詢參數指定查詢。

HTTP GET請求參數

以下是HTTP GET請求參數:

對象描述
訪問密鑰[必需]您的API訪問密鑰,可在您的帳戶儀表板中找到。
查詢[必需]以緯度、經度格式將您的查詢指定為坐標(例如,查詢=40.7638435,-73.9729691)或使用IP地址進行自動坐標檢測(例如,查詢=72.229.28.185)。
國家[可選]通過一個或多個逗號分隔的2字母(例如Au)或3字母國家代碼(例如AUS)過濾地理編碼結果。示例:country=Au,CA,按澳大利亞和加拿大篩選。下載:支持的國家(CSV)
區域[可選]通過指定區域過濾地理編碼結果。這可以是一個街區、地區、市、縣、州或行政區域。例如:region=柏林,按柏林的位置進行過濾。
語言[可選]通過指定首選語言的2個字母(例如en)或3個字母代碼(例如eng)來翻譯特定的API響應對象。(默認:英文)
國家模塊[可選]設置為1以使國家/地區模塊能夠在您的API響應中包括更廣泛的國家/地區數據。在國家模塊部分閱讀更多相關信息。
太陽模塊[可選]設置為1,使Sun模塊能夠在您的API響應中包括占星數據。在Sun模塊部分中閱讀有關此的更多信息。
時區模塊[可選]設置為1以使時區模塊能夠在API響應中包括時區數據。在時區模塊部分閱讀更多關于此的信息。
bbox模塊[可選]設置為1以使邊界框模塊能夠在API響應中包括邊界坐標。在邊界框模塊部分中了解更多信息。
限制[可選]指定1到80之間的限制,以限制每個地理編碼查詢返回的結果數。批處理請求可以包含多個地理編碼查詢。(默認值:10個結果)
領域[可選]指定一個或多個響應字段以減小API響應大小。了解如何在指定響應字段部分中使用此選項。
輸出[可選]指定首選的API輸出格式。可用值:JSON(默認)、XML和GeoJSON。
回調[可選]使用此參數指定要將API響應包裝在其中的JSONP回調函數名稱。了解有關JSONP回調的更多信息。

響應對象

每個API響應由20個不同的響應對象組成:

響應對象描述
數據返回兩個大的數據數組:請求和結果,下面將詳細解釋。
結果返回此API請求的位置結果數組。子數組的數量直接取決于指定的限制值。下面列出了所有子陣列和子對象。
結果>緯度返回與定位結果關聯的緯度坐標。
結果>經度返回與定位結果關聯的經度坐標。
結果>標簽返回格式化的地名或地址。
結果>名稱返回定位結果的名稱。這可能是一個地名、地址、郵政編碼等等。
結果>類型返回定位結果的類型。以下是所有可用的位置類型列表:地點,地址,街道,鄰里,自治市,localadmin,地方,縣,宏觀國家,地區,宏觀地區,國家,粗略,郵政編碼。
結果>距離返回定位結果與查詢參數中指定的坐標之間的距離(以米為單位)。僅適用于反向地理編碼。
結果>數量返回與定位結果關聯的街道或門牌號。
結果>街道返回與定位結果關聯的街道名稱。
搜索結果>郵政編碼返回與位置結果關聯的郵政編碼或郵政編碼。
結果>信心返回與位置結果關聯的介于0(0%置信度)和1(100%置信度)之間的置信度分數。
結果>區域返回與定位結果關聯的區域的名稱。
結果>區域代碼返回與定位結果關聯的區域代碼。
結果>行政區域返回與定位結果關聯的行政區域的名稱。
結果>鄰域返回與定位結果關聯的鄰域的名稱。
結果>國家返回與定位結果關聯的國家/地區的通用名稱。
結果>國家代碼返回與位置結果關聯的國家/地區的ISO 3166 Alpha 2(兩個字母)代碼。
結果> map_url返回與定位結果關聯的可嵌入映射。

如何使用 Node.js 執行正向地理編碼?

positionstack API與所有主流編程語言兼容。

使用以下代碼通過Node.js發出正向地理編碼API請求:

const axios = require('axios');
const params = {
access_key: 'YOUR_ACCESS_KEY',
query: '1600 Pennsylvania Ave NW, Washington DC'
}

axios.get('http://api.positionstack.com/v1/forward', {params})
.then(response => {
console.log(response.data);
}).catch(error => {
console.log(error);
});

以下是Node.js IDE內的API響應(在此示例中使用Atom):

如何使用 Node.js 執行反向地理編碼?

使用以下代碼通過Node.js發出反向地理編碼API請求,請記住,您需要輸入緯度和經度來進行查詢搜索:

const axios = require('axios');
const params = {
access_key: 'YOUR_ACCESS_KEY',
query: '38.897675, -77.036547'
}

axios.get('http://api.positionstack.com/v1/reverse', {params})
.then(response => {
console.log(response.data);
}).catch(error => {
console.log(error);
});

以下是Node.js IDE內的API響應(在此,我在此示例中使用Atom):

額外獎勵:使用其他平臺的 API 請求

如何使用 RAD Studio REST Debugger 發出 API 請求?

首先,下載 Delphi REST Debugger。

選擇GET方法,并將請求發送到以下URL(反向地理編碼的示例):

http://api.positionstack.com/v1/reverse?access_key=YOUR_ACCESS_KEY&query=40.7638435,-73.9729691

在獲得所需的API響應后,如果您想用Delphi來創建一個基于它的桌面應用程序,請參考本文:https://blogs.embarcadero.com/using-apilayer-rest-apis-from-delphi/

如何使用 Postman 發出 API 請求?

如果這是您第一次使用Postman,您可以在我們的博客文章中閱讀有關安裝指南:https://blog.apilayer.com/easily-spider-websites-using-node-js-and-powerful-rest-apis/

選擇GET方法,并將請求發送到以下URL:

http://api.positionstack.com/v1/reverse?access_key=YOUR_ACCESS_KEY&query=40.7638435,-73.9729691

您準備好將強大的地理編碼功能集成到您的應用程序中了嗎?

如您所見,PositionStack REST API 提供了一系列精確的地理編碼服務。無論是正向還是反向批量地理編碼,都可以將這些API端點連接到您使用的任何平臺和編程語言中。

在本文中,我們將向您展示如何使用 PositionStack REST API 進行基本的正向和反向地理編碼操作。

利用 PositionStack 的免費層吧!如果您需要更強大的功能(例如 HTTPS 加密、擴展速率限制、JSON、XML、GeoJSON、嵌入式地圖等),我們強烈建議您升級訂閱計劃。如果這還不夠,請聯系我們以獲得定制解決方案。我們迫不及待地想看看您使用我們的REST API構建的內容!

常見問題

什么是地理編碼?

地理編碼是將地址轉換為地圖點。例如,它將“1600 Amphitheatre百老匯,山景,CA”更改為顯示其在地圖上位置的坐標(如緯度37.423021和經度-122.083739)。

地理編碼的工作原理是什么?

地理編碼是一種利用特殊服務(例如谷歌地圖)在地圖上精確定位一個地址的技術。它通過查詢數據庫、運用算法和分析地圖數據來實現這一過程。

什么是反向地理編碼?

反向地理編碼則相反。它將坐標轉換成人們可以理解的地址。例如,它會將緯度和經度更改為“1600 Amphitheatre百老匯,山景,CA”。

人們使用地理編碼做什么?

地理編碼有助于地圖應用程序(如谷歌地圖),查找附近的地方(如餐館),以及使用地圖分析和顯示信息的系統。

地理編碼有什么問題嗎?

有時地理編碼可能會出現錯誤,特別是在那些人口稀少的地區。此外,如果地址信息過時或者有誤也可能會引發其它問題。由于地理編碼常常需要共享位置數據,所以還涉及到隱私方面的考量。

如何找到更多同類API?

冪簡集成是國內領先的API集成管理平臺,專注于為開發者提供全面、高效、易用的API集成解決方案。冪簡API平臺可以通過以下兩種方式找到所需API:通過關鍵詞搜索API、或者從API Hub分類頁進入尋找。

立即免費注冊,開始將精確且豐富的正向和反向地理定位數據集成到您的應用程序中!

原文鏈接:https://blog.apilayer.com/how-to-get-started-with-powerful-a-geo-api-service-using-nodejs/

上一篇:

120 個 OnPage API 指標說明

下一篇:

vatlayer 與 VAT API:哪個是更好的增值稅解決方案
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費