从ZipCode中检出LAT



是它们的一种方法,可以从 maxminddb 通过zipcode而不是ipaddress获得长时间。因为我找不到任何通过zipode获取详细信息的方法。我不想使用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 的ZIP代码数据,一个更简单的解决方案可能是将GeOnames"查找"表zip上传到您的服务器上。

它包含一个选项卡划界文件(请参阅链接底部以获取完整说明),您只需要编写代码即可找到邮政编码的记录,然后从中读取LAT和长字段。为了提高速度,您可以将文件导入DBMS,例如MySQL(Google用于说明),带有ZIP代码为键/索引。

我不知道GeOnames数据的精确性和准确性。

相关内容

  • 没有找到相关文章

最新更新