什么是地理編碼?

地理編碼是將物理地址轉換為地理坐標的過程。您可以使用地理編碼在地圖上放置標記并發現其他地理信息。

以下是地理編碼的示例:

1600 Amphitheatre Parkway, Mountain View, CA ->緯度:37.423021 & 經度:-122.083739

在本教程中,您將學習如何使用使用地理編碼 RESTful API 的 Node.js 創建 Web 應用程序。這是我們的最終演示:

用于軍事格網參考系統地址標準化的 用于轉換地址的相對輸入數據的 API

為什么需要地理編碼?

大多數為衛生、金融甚至軍事系統編寫的軟件都使用地理編碼功能。

如何快速自動化地理編碼?

如果您正在尋找將地理編碼解決方案實施或集成到系統中的最新方法,Positionstack 隨時為您服務。

什么是 positionstack?

positionstack API 是一個免費的地理編碼 API,受到全球開發人員和企業的信賴。

positionstack 是市場上領先的地理編碼 RESTful API 之一。它通過一個強大而健壯的 API 提供企業級功能。

為什么選擇 positionstack?

PositionTack 覆蓋全球 2+ 億個地址,每天處理 1+ 億次地理編碼 API 查找。它是適用于您的系統的可靠、有效的地理編碼服務。

由高度可擴展的apilayer平臺支持的PositionStack API能夠處理數十億次地理編碼請求,響應時間介于10到100毫秒之間。

如何開始使用 PositionStack API?

正如我們之前提到的,positionstack API 為其某些功能提供了免費計劃。您可以前往訂閱頁面并選擇免費訂閱計劃以獲取您的 API 訪問密鑰。

用于地址驗證或地理編碼數據郵政編碼和編碼算法的 Positionstack API

成功注冊后,您可以通過將訪問密鑰添加到 URL 來使用核心 Positionstack API 端點:

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

通過將此請求發送到終端節點,您可以獲得如下 API 響應:

{
"data": [
{
"latitude": 38.897675,
"longitude": -77.036547,
"type": "address",
"name": "1600 Pennsylvania Avenue NW",
"number": "1600",
"postal_code": "20500",
"street": "Pennsylvania Avenue NW",
"confidence": 1,
"region": "District of Columbia",
"region_code": "DC",
"county": "District of Columbia",
"locality": "Washington",
"administrative_area": null,
"neighbourhood": "White House Grounds",
"country": "United States",
"country_code": "USA",
"continent": "North America",
"label": "1600 Pennsylvania Avenue NW, Washington, DC, USA"
},
{
"latitude": 38.897473,
"longitude": -77.036548,
"type": "address",
"name": "1600 Pennsylvania Avenue Northwest",
"number": "1600",
"postal_code": "20500",
"street": "Pennsylvania Avenue Northwest",
"confidence": 1,
"region": "District of Columbia",
"region_code": "DC",
"county": "District of Columbia",
"locality": "Washington",
"administrative_area": null,
"neighbourhood": "White House Grounds",
"country": "United States",
"country_code": "USA",
"continent": "North America",
"label": "1600 Pennsylvania Avenue Northwest, Washington, DC, USA"
}
]
}

使用 PositionStack API 進行批量請求

批量請求是一種一次性向API發送多個正向或反向地理編碼查詢的方法。盡管批量請求看起來與常規地理編碼請求非常相似,但它們需要額外的參數。

發出批量請求很容易。首先,您需要指定 batch 請求參數,該參數承載多個查詢。下面是一個示例:

{

   "batch":[

      {

         "query": "Main Street",

         "country": "US",

         "region": "Minnesota"

      },

      {

         "query": "Main Street",

         "country": "US",

         "region": "Illinois"

      },

      {

         "query": "Main Street",

         "country": "US",

         "region": "Missouri"

      }

   ]

}

有關高級功能的更多信息

如果您已經向終端節點發出了請求,則可以看到每個 API 響應都攜帶一個 map_url 對象。它包含一個 URL,該 URL 指向與地理編碼結果關聯的可嵌入地圖。

您可以使用 iFrame 元素將其嵌入到 Web 或任何其他應用程序中。

"map_url": "http://map.positionstack.com/47.735549,-94.548447"

此外,您還可以找到其他幾個功能:

如何啟動 Node.js Web 應用程序?

在開始之前,您需要安裝 Node.js

之后,創建一個空文件夾并使用這些命令初始化一個新的 Node.js 項目。

用于創建用于地理編碼的 Node JS 應用程序的 Windows Powershell 命令用于地理編碼軟件的算法空間數據分析
用于地理編碼服務的 Windows Powershell 命令,其中包含緯度和經度人口普查人口統計信息
const express = require("express")
const axios = require("axios")
const app = express()
const port = 1998

app.use(express.static('public'))
app.use('/css', express.static(__dirname + 'public/css'))
app.use('/img', express.static(__dirname + 'public/img'))
app.use('/js', express.static(__dirname + 'public/js'))

app.set('views', './src/views')
app.set('view engine', 'ejs')

app.get('/api/:version', function(req, res) {
res.send(req.params.version);
});

app.get("/geocoding", async function(req, res) {
try {
const API_ACC_KEY = "1ea2a2d4a6a80f98b92ea1129ad3a0b2";

const position = await axios.get(
http://api.positionstack.com/v1/forward?access_key=${API_ACC_KEY}&query=1600%20Pennsylvania%20Ave%20NW,%20Washington%20DC ); res.render("positionstack", { info: position.data.data[0] }); } catch (error) { if (error.response) { console.log(error.response.data); } else if (error.request) { console.log(error.request); } else { console.log("Error", error.message); } } }); app.get('/', (req, res) => res.send('Index Page')) app.listen(port, () => console.log(Running on ${port} port))
<div class="card-body">
<form>
<div class="row">
<div class="col">
<div class="mb-3"><label class="form-label" for="latitude"><strong>Latitude: <%- info.latitude %></strong></label></div>
<div class="mb-3"><label class="form-label" for="number"><strong>Number: <%- info.number %></strong></label></div>
</div>
<div class="col">
<div class="mb-3"><label class="form-label" for="longitude"><strong>Longitude: <%- info.longitude %></strong><br></label></div>
</div>
<div class="col">
<div class="mb-3"><label class="form-label" for="type"><strong>Type: <%- info.type %></strong><br></label></div>
</div>
</div>
<div class="row">
<div class="col">
<div class="mb-3"><label class="form-label" for="postal_code"><strong>Postal Code: <%- info.postal_code %></strong><br></label></div>
</div>
<div class="col">
<div class="mb-3"><label class="form-label" for="region"><strong>Region: <%- info.region %></strong><br></label></div>
</div>
</div>
<div class="row">
<div class="col">
<div class="mb-3"><label class="form-label" for="country"><strong>Country: <%- info.country %></strong><br></label></div>
</div>
<div class="col">
<div class="mb-3"><label class="form-label" for="region_code"><strong>Region Code: <%- info.region_code %></strong><br></label></div>
</div>
</div>
<div class="mb-3"></div>
</form>
</div>

現在,您可以使用以下命令啟動 Web 應用程序:

地理編碼輸出

結論

地理編碼對許多企業和團體非常有用。我們已經看到了地理編碼如何幫助公平貸款、跟蹤健康問題甚至作用于軍事數據。PositionStack 是數據地理編碼的絕佳工具。它覆蓋全球地址,每天可以處理大量請求。

借助 PositionStack,開發人員可以快速將地理編碼添加到他們的應用程序中。它易于使用,并提供實時編碼和公平定價等功能。PositionStack 使地理編碼變得簡單,無論您是需要基本的地址轉換還是更高級的基于位置的服務。對于想要在項目中使用位置數據的任何人來說,它都是首選。

常見問題

1. 什么是地理編碼?

它正在將地址轉換為地圖點,例如將“1600 Amphitheatre Parkway, Mountain View, CA”更改為地圖上的一個點。

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

它的工作原理是使用特殊服務或軟件獲取地址并在地圖上找到其確切位置。

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

它有助于制作地圖、查找地點、交付物品和在系統中組織位置數據。

4. 地理編碼面臨哪些挑戰?

這可能很棘手,因為地址可能不同,地圖需要更新,并且大型工作可能需要大量資源。

原文來源:https://blog.apilayer.com/ultimate-geocoding-api-integration-with-node-js/

上一篇:

ipstack簡介:IP地理定位的基礎知識

下一篇:

使用Reverse Phone Lookup API應對商業欺詐
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

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

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

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

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

#AI深度推理大模型API

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

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