簡體   English   中英

從 ZipCode 檢索 Lat Long

[英]Retrive Lat Long from ZipCode

他們是一種通過 ZipCode 而不是 Ipaddress 從MaxmindDb獲取 Lat Long 的方法。 因為我找不到任何通過郵政編碼獲取詳細信息的方法。 我不想使用 Google Maps Api。

using (var reader = new DatabaseReader(System.Web.Hosting.HostingEnvironment.MapPath("~/GeoLite2-City.mmdb")))
            {
                var city = reader.City(userIpAddress);
                string cityiso = string.Empty;
                if (city != null && !string.IsNullOrEmpty(city.City.Name) && !string.IsNullOrEmpty(city.MostSpecificSubdivision.IsoCode))
                {
                    cityiso = string.Join(", ", city.City.Name, city.MostSpecificSubdivision.IsoCode);
                }
                locationProperties.Location = cityiso;
                locationProperties.Latitude = city.Location.Latitude.ToString();
                locationProperties.Longitude = city.Location.Longitude.ToString();              
            }

但我想使用 UserZipCode 而不是 UserIPAddress

根據您問題中的示例,我假設您希望在自己的服務器上使用查找表,而不是使用任何 API。

Github上的Maxmind 庫之一可能包含此功能。 然而,Maxmind City DB 實際上使用來自geonames.org 的郵政編碼數據,一個更簡單的解決方案可能是將美國的GeoNames“查找”表Zip 上傳到您的服務器。

它包含一個制表符分隔的文件(有關完整說明,請參見鏈接底部),您只需編寫代碼即可按郵政編碼查找記錄,然后從中讀取經緯度字段。 為了提高速度,您可以將文件導入 DBMS,例如 mySQL(谷歌的說明),以郵政編碼作為鍵/索引。

我不知道 Geonames 數據的精確性和准確性。

暫無
暫無

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

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