簡體   English   中英

C# - 從沒有API的緯度/經度獲取國家/地區

[英]C# - Get Country from latitude/longitude without API

是否可以使用C#庫或有關地理坐標的更新數據庫來獲取緯度和經度的國家/地區名稱而不使用 Google Maps的JavaScript API等API?

您可以在此處使用GeoNames並下載本地數據庫。

因此,這是一個示例查詢,您可以使用它從緯度/經度坐標獲取最近的條目。

var query = new SQLiteCommand("select name,latitude,longitude,country_code,feature_code from geoloc order by ((latitude - @lat) * (latitude - @lat) + (longitude - @lng) * (longitude - @lng)) LIMIT 1, cn);

我已經創建了一個github項目,它將根據gps點(lat; lon)獲得國家或美國州的信息

如果找到,將返回帶有Id和Name的locationInfo類

也可作為nuget包

你能行的。 如果您不需要很多准確性,可以使用坐標為國家/地區的表格。 並確定最近的國家坐標。 但這是不好的方式。

好的解決方案是你得到一個國家邊界的KML文件。 但是你需要一個好的算法來決定你的觀點是哪個國家的邊界​​。 這里描述了尋找點和多邊形的位置的算法。 還有一些計算器上的一些答案12 ,但它是平面的。

也可能的方法是通過一些小步驟(例如30'')預先計算國家的坐標,並通過找到最接近您的點的預先計算的點來確定。 您可以通過大量在線服務預先計算國家/地區。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM