什么是地理編碼?

地理編碼是將物理地址轉(zhuǎn)換為地理坐標(biāo)的過(guò)程。您可以使用地理編碼在地圖上放置標(biāo)記并發(fā)現(xiàn)其他地理信息。

以下是地理編碼的示例:

1600 Amphitheatre Parkway, Mountain View, CA ->緯度:37.423021 & 經(jīng)度:-122.083739

在本教程中,您將學(xué)習(xí)如何使用使用地理編碼 RESTful API 的 Node.js 創(chuàng)建 Web 應(yīng)用程序。這是我們的最終演示:

用于軍事格網(wǎng)參考系統(tǒng)地址標(biāo)準(zhǔn)化的 用于轉(zhuǎn)換地址的相對(duì)輸入數(shù)據(jù)的 API

為什么需要地理編碼?

大多數(shù)為衛(wèi)生、金融甚至軍事系統(tǒng)編寫的軟件都使用地理編碼功能。

如何快速自動(dòng)化地理編碼?

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

什么是 positionstack?

positionstack API 是一個(gè)免費(fèi)的地理編碼 API,受到全球開發(fā)人員和企業(yè)的信賴。

positionstack 是市場(chǎng)上領(lǐng)先的地理編碼 RESTful API 之一。它通過(guò)一個(gè)強(qiáng)大而健壯的 API 提供企業(yè)級(jí)功能。

為什么選擇 positionstack?

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

由高度可擴(kuò)展的apilayer平臺(tái)支持的PositionStack API能夠處理數(shù)十億次地理編碼請(qǐng)求,響應(yīng)時(shí)間介于10到100毫秒之間。

如何開始使用 PositionStack API?

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

用于地址驗(yàn)證或地理編碼數(shù)據(jù)郵政編碼和編碼算法的 Positionstack API

成功注冊(cè)后,您可以通過(guò)將訪問(wèn)密鑰添加到 URL 來(lái)使用核心 Positionstack API 端點(diǎn):

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

通過(guò)將此請(qǐng)求發(fā)送到終端節(jié)點(diǎn),您可以獲得如下 API 響應(yīng):

{
"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 進(jìn)行批量請(qǐng)求

批量請(qǐng)求是一種一次性向API發(fā)送多個(gè)正向或反向地理編碼查詢的方法。盡管批量請(qǐng)求看起來(lái)與常規(guī)地理編碼請(qǐng)求非常相似,但它們需要額外的參數(shù)。

發(fā)出批量請(qǐng)求很容易。首先,您需要指定 batch 請(qǐng)求參數(shù),該參數(shù)承載多個(gè)查詢。下面是一個(gè)示例:

{

   "batch":[

      {

         "query": "Main Street",

         "country": "US",

         "region": "Minnesota"

      },

      {

         "query": "Main Street",

         "country": "US",

         "region": "Illinois"

      },

      {

         "query": "Main Street",

         "country": "US",

         "region": "Missouri"

      }

   ]

}

有關(guān)高級(jí)功能的更多信息

如果您已經(jīng)向終端節(jié)點(diǎn)發(fā)出了請(qǐng)求,則可以看到每個(gè) API 響應(yīng)都攜帶一個(gè) map_url 對(duì)象。它包含一個(gè) URL,該 URL 指向與地理編碼結(jié)果關(guān)聯(lián)的可嵌入地圖。

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

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

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

如何啟動(dòng) Node.js Web 應(yīng)用程序?

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

之后,創(chuàng)建一個(gè)空文件夾并使用這些命令初始化一個(gè)新的 Node.js 項(xiàng)目。

用于創(chuàng)建用于地理編碼的 Node JS 應(yīng)用程序的 Windows Powershell 命令用于地理編碼軟件的算法空間數(shù)據(jù)分析
用于地理編碼服務(wù)的 Windows Powershell 命令,其中包含緯度和經(jīng)度人口普查人口統(tǒng)計(jì)信息
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>

現(xiàn)在,您可以使用以下命令啟動(dòng) Web 應(yīng)用程序:

地理編碼輸出

結(jié)論

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

借助 PositionStack,開發(fā)人員可以快速將地理編碼添加到他們的應(yīng)用程序中。它易于使用,并提供實(shí)時(shí)編碼和公平定價(jià)等功能。PositionStack 使地理編碼變得簡(jiǎn)單,無(wú)論您是需要基本的地址轉(zhuǎn)換還是更高級(jí)的基于位置的服務(wù)。對(duì)于想要在項(xiàng)目中使用位置數(shù)據(jù)的任何人來(lái)說(shuō),它都是首選。

常見(jiàn)問(wèn)題

1. 什么是地理編碼?

它正在將地址轉(zhuǎn)換為地圖點(diǎn),例如將“1600 Amphitheatre Parkway, Mountain View, CA”更改為地圖上的一個(gè)點(diǎn)。

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

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

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

它有助于制作地圖、查找地點(diǎn)、交付物品和在系統(tǒng)中組織位置數(shù)據(jù)。

4. 地理編碼面臨哪些挑戰(zhàn)?

這可能很棘手,因?yàn)榈刂房赡懿煌?,地圖需要更新,并且大型工作可能需要大量資源。

原文來(lái)源:https://blog.apilayer.com/ultimate-geocoding-api-integration-with-node-js/

上一篇:

ipstack簡(jiǎn)介:IP地理定位的基礎(chǔ)知識(shí)

下一篇:

使用Reverse Phone Lookup API應(yīng)對(duì)商業(yè)欺詐
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)