查找邮政编码指定距离内的所有邮政编码

2024-01-21

我知道这个问题听起来像是这里几个问题的重复,但这些问题都没有回答我想要的。 我有兴趣知道是否有人知道如何在指定邮政编码的半径内找到其他邮政编码。我有带有纬度和经度的邮政编码数据库,但我不知道如何在 VB.net 中执行此操作

例如 - 90069 是一个邮政编码,如果有人说半径为 5 英里,那么我希望弹出所有邮政编码,例如 90210,90045,90034 等。

代码示例将不胜感激

编辑:我有 MySQL 服务器数据库。


这是我很久以前写的一些东西,可能会让你朝着正确的方向前进。

当您要求使用 VB.Net 时,您真正需要的是一个执行“大圆距离 http://en.wikipedia.org/wiki/Great-circle_distance”计算确定由纬度和经度标识的两点之间的距离。

因此,做出以下假设:

  1. 您的邮政编码数据位于单个表中。
  2. 该表具有纬度和经度的属性,它们是邮政编码的近似质心

您可以使用 LINQ to SQL 查询来生成所需的结果集,如下所示

Const EARTH_RADIUS As Single = 3956.0883313286095
Dim radCvtFactor As Single = Math.PI / 180
Dim zipCodeRadius As Integer = <Your Radius Value>

Dim zipQry = From zc In db.ZipCodes 
             Where zc.Zip = "<Your Zip Code>" _
             Select zc.Latitude, 
                    zc.Longitude, 
                    ZipLatRads = RadCvtFactor * zc.Latitude, 
                    ZipLonRads = RadCvtFactor * zc.Longitude
Dim zipRslt = zipQry.SingleOrDefault()
If zipRslt IsNot Nothing Then
    Dim zcQry = From zc In db.ZipCodes _
                Where zc.Latitude >= (zipRslt.Latitude - 0.5) And zc.Latitude <= (zipRslt.Latitude + 0.5) _
                And zc.Longitude >= (zipRslt.Longitude - 0.5) And (zc.Longitude <= zipRslt.Longitude + 0.5) _
                And Math.Abs(EARTH_RADIUS * (2 * Math.Atan2(Math.Sqrt(Math.Pow(Math.Sin(((RadCvtFactor * zc.Latitude) - zipRslt.ZipLatRads) / 2), 2) + _
                Math.Cos(zipRslt.ZipLatRads) * Math.Cos(RadCvtFactor * zc.Latitude) * _
                Math.Pow(Math.Sin(((RadCvtFactor * zc.Longitude) - zipRslt.ZipLonRads) / 2), 2)), _
                Math.Sqrt(1 - Math.Pow(Math.Sin(((RadCvtFactor * zc.Latitude) - zipRslt.ZipLatRads) / 2), 2) + _
                Math.Cos(zipRslt.ZipLatRads) * Math.Cos(RadCvtFactor * zc.Latitude) * _
                Math.Pow(Math.Sin((RadCvtFactor * zc.Longitude) / 2), 2))))) <= zipCodeRadius _
                Select zc
End If

它看起来很复杂,因为事实确实如此。 SO 上有更聪明的人可以解释该算法。我只是通过在互联网上找到的一些 SQL 代码实现了这个 - 我不记得从哪里找到的。谷歌搜索应该可以到达那里。

第一个查询 (zipQry) 返回起始邮政编码的纬度和经度(以度数和弧度表示)。然后,这些结果将用于执行第二个查询。

第二个查询中 WHERE 子句的第一部分:

Where zc.Latitude >= (zipRslt.Latitude - 0.5) And zc.Latitude <= (zipRslt.Latitude + 0.5) _
And zc.Longitude >= (zipRslt.Longitude - 0.5) And (zc.Longitude <= zipRslt.Longitude + 0.5) _

只是缩小了要检查的邮政编码列表的范围,使查询运行得更快。它会向纬度和经度添加任意数量,以便您在搜索加利福尼亚州的半径时无需检查俄亥俄州的所有邮政编码。其余的都是前面提到的大圆距离算法的一部分。

为了提高效率,这可能可以在一个查询中完成,但当时我需要这种方式,现在我不知道原因了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找邮政编码指定距离内的所有邮政编码 的相关文章

  • MySQL 不将 ı 视为 i?

    我在 MySQL 5 7 27 中有一个用户表utf8mb4 unicode ci整理 不幸的是 没有像 i 那样进行线程化 以下查询将找不到Y lmaz select id from users where name Yilmaz 我对其
  • PDO::debugDumpParams 的输出是否有最大值?

    使用 PDO debugDumpParams 时 对于 选定 查询 输出显示的字符数是否有最大限制 大约 500 个字符后 查询将在查询中间结束 而在输出准备 query 变量时 将显示完整的查询 此外 当删除查询的某些部分时 它仍然显示一
  • 为什么Mysql的Group By和Oracle的Group by行为不同

    为什么Mysql的Group By和Oracle的Group by行为不同 我多次发现 Mysql group By 功能和 Oracle 的 GroupBy 功能表现不同 很多时候我在Oracle中发现错误 这实际上是错误的查询 但是My
  • 如何仅提取 mysql 和 php 中具有非零值的列?

    我正在尝试从 mysql 数据库中提取并显示在网页上 仅非零列 哪一列的日期是 0000 00 00 我不想在网页上显示这些列 下面分别是HTML代码和php脚本
  • 使用csv文件-PHP创建表到mysql时添加反引号

    我有一个 php 代码 它将使用 csv 文件创建一个到 mysql 数据库的表 然而 某些列标题没有被 mysql 读取 mysql 唯一一次读取查询是当我添加反引号 您能帮助我在查询中的何处添加反引号吗 这是我的代码 file C Us
  • 如何将 PHP 会话数据保存到数据库而不是文件系统中?

    我有两个网站 一个是 TLS 一个不是 两个都适用于同一个客户端 但我需要这些网站彼此 并且仅彼此 共享通用数据users orders accounts etc 这通常可以通过以下方式完成 SESSION数据 但我显然这些不能跨其他站点工
  • MySQL 中电话号码的最佳数据类型是什么?它的 Java 类型映射应该是什么?

    我正在将 MySQL 与 Spring JDBC 模板一起用于我的 Web 应用程序 我需要存储仅包含数字的电话号码 10 我对使用数据类型的数据类型有点困惑 MySQL 中最适合它的数据类型是什么 为此 Bean POJO 类中的 Jav
  • 计算 MySQL 中每个唯一 ID 与前一行的日期差异

    我是一名 SQL 初学者 正在学习查询的诀窍 我正在尝试查找同一客户购买之间的日期差异 我有一个如下所示的数据集 ID Purchase Date 1 08 10 2017 1 08 11 2017 1 08 17 2017 2 08 09
  • 从 MySQL 列创建 PHP 数组

    mysql fetch array会给我一个获取行的数组 从一列中所有行的值生成数组的最佳方法是什么 您可以循环遍历数组并创建一个新数组 如下所示 column array while row mysql fetch array info
  • 如何在 MySQL 中存储工作日列表?

    我正在使用编写一个应用程序PHP我需要存储一个独特的工作日列表MySQL 在应用程序中 我有一个数组来存储工作日 如下所示 days Wed Thu Sat 我知道我可以使用SET列 但我不想使用这种类型 因为它与我正在使用的框架 Lara
  • 如何阻止访问任何文件或exe vb.net?

    如何阻止和取消阻止文件或可执行文件在 vb net 运行时永久打开 您可以使用此代码 并且可以使用Environment UserName获取用户名 这将锁定任何类型的文件 也将锁定文件夹 Dim FSS As FileSystemSecu
  • PHP/PDO/MySQL:插入 MEDIUMBLOB 会存储错误数据

    我有一个简单的 PHP Web 应用程序 它通过文件上传接受图标图像并将它们存储在 MEDIUMBLOB 列中 在我的机器 Windows 和两台 Linux 服务器上 这工作得很好 在第三台 Linux 服务器上 插入的图像已损坏 在 S
  • 在不使用 PHP 的情况下将 MYSQL 中的表字段更新为其值加上常量

    我想表演一个UPDATE in MYSQL其中我获取一个字段值 添加一个常量并将新值保存在同一字段中 假设我们有一个名为OldValue在一个名为aTable 伪代码可能是 UPDATE aTable SET OldValue OldVal
  • SQL选择符号||是什么意思意思是?

    什么是 在 SQL 中做什么 SELECT a b AS letter 表示字符串连接 不幸的是 字符串连接不能在所有 sql 方言之间完全移植 ANSI SQL 中缀运算符 mysql concat 可变参数函数 caution 表示 逻
  • 无法在 mysql 表中的值中使用破折号(-)[重复]

    这个问题在这里已经有答案了 我一直在尝试从 python 将数据插入 MYSQL 表 我的sql表中的字段是id token start time end time和no of trans 我想存储使用生成的令牌uuid4在令牌栏中 但由于
  • 如何更改Mysql的连接排序规则

    如何更改 mysql 数据库的连接排序规则 我在 ubuntu 14 中使用 Mysql workbench 5 5 和 mysql 5 5 当我执行存储过程时 出现错误 错误代码 1267 操作 的排序规则 utf8 general ci
  • MySQL C++ 连接器未解决的依赖关系(VS 2015)

    我正在尝试在 Windows Visual Studio 2015 上编译 MySQL Connector C 我根据以下内容使用CMake生成了项目文件官方说明 https dev mysql com doc connector cpp
  • 将图像文件从网址复制到本地文件夹?

    我有该图像的网址 例如 http testsite com web abc jpg http testsite com web abc jpg 我想将该 URL 复制到 c images 中的本地文件夹中 而且当我将该文件复制到文件夹中时
  • PHP strtotime返回Mysql UNIX_TIMESTAMP的不同值

    我在 stackoverflow 上搜索过帖子 发现了一些类似的帖子 但我认为这是一篇不同的帖子 我的 PHP 和 Mysql 服务器的时区全部设置为 UTC 在表中我使用时间戳字段 值为 2010 11 08 02 54 15 我使用这样
  • SQL查询:按字符长度排序?

    是否可以按字符总数对sql数据行进行排序 e g SELECT FROM database ORDER BY data length 我想你想用这个 http dev mysql com doc refman 5 0 en string f

随机推荐

  • 自定义请求标头未与 JavaScript 提取请求一起发送

    我正在尝试使用 JavaScriptFetch 用于将 AJAX 请求发送到我的 PHP OAuth 服务器的 API 我的问题是我需要发送请求标头Authorization with Bearer eyJ0eXAiOiJKV1QiLCJh
  • WPF Datepicker 使用 MVVM 返回先前选择的日期

    我正在开发一个 WPF 项目 其中窗口上有一个 Datepicker 控件 我使用 MVVM 模式进行数据绑定 我已经在日期选择器的 SelectedDate 更改事件上设置了一个命令 问题是 例如 当我第一次更改我得到的日期时NULL在命
  • 通过 Rest API 以 csv 格式导出 PowerBI 报告

    PowerBI 仅为分页报表提供了 CSV 格式导出 API 不适用于通过导出 API 仅支持 pbix ppt png 格式的普通报表 参考 https learn microsoft com en us rest api power b
  • 无法使用 Node.js 连接到 Apache ActiveMQ

    背景 尝试使用 AMQP 1 0 协议通过以下方式连接到我的 Apache ActiveMQ 代理amqp10 https www npmjs com package amqp10 我使用以下代码 改编自自述文件中的原始示例 const A
  • pyplot savefig 分配太多块

    我试图绘制一个包含数百万个三角形的图形 但 matplotlib 似乎无法处理它 当我尝试使用保存图形时savefig file png dpi 100 我收到以下错误 OverflowError Allocated too many bl
  • 使用 Command-Click 声明时,Xcode 11 (11A420a) 不显示“嵌入 H/VStack”菜单项

    我一直在使用 SwiftUI 我注意到所有这些教程都提到了 Command ClickText例如 并期望出现以下菜单项 以便嵌入HStack例如 问题是我没有看到这些 嵌入H VStack出现菜单项 即使我搜索 嵌入 它也不会返回任何内容
  • 重复事件、SQL 查询

    我知道有关重复事件的问题很常见 但除了与日历应用程序有关的事件之外 我还无法找到有关重复事件的特定问题的答案 主要区别在于我们应用程序中的事件 只能在报告中或单独出现 而不是以日历格式出现 尽管它们在很多方面非常相似 也许只是与日历相关的包
  • 如何在sql server中执行另一个存储过程中的存储过程

    我正在 sql server 2008 上工作 我有一个存储过程 在其中我正在执行另一个 usp 这里我想获取第二个usp的输出并相应地返回主usp输出参数 但我的主要 USP 总是返回第二个 USP 值和主要 USP 值 但我只想返回主要
  • Python subprocess.Popen 作为 Windows 上的不同用户

    在 Windows 上的 Python 中以不同用户身份启动子进程的最佳方式是什么 最好是 XP 及更高版本 但如果它只能在 Vista 和 7 上运行 我也可以接受 我不确定你是否可以使用标准 python 库来做到这一点 但是 那pyw
  • 打印 Python 函数参数的名称和值

    我想做一个debug print 它将输出调用者变量和值 稍后我会将其扩展为仅部分打印列表和字典等 这篇文章仅关注打印调用者变量和值的第一部分 这篇文章有以下几个部分 当前版本debug print 构建的测试用例 测试用例的输出 我想要的
  • Symfony 多次渲染同一个表单

    我想多次渲染同一个表单为两个不同的选项卡处理相同的操作 问题是 当我尝试时 仅显示第一个选项卡的形式 如果我更改id and name的形式 我发现这是 symfony 的预期行为 但我仍然需要它才能工作 我发现它可能适用于集合 但不知道它
  • 如何在一个Makefile中生成多个可执行文件?

    我的目录包含2源文件 a c and b c 我想生成可执行文件a from a c and b from b c 现在我只能想出一种写Makefile的方法 all gcc o a a c gcc o b b c 看起来有点尴尬 有更好的
  • Shopify API 如何使用 like 进行搜索查询

    嘿伙计们 我尝试做一些搜索功能 但使用 shopifyAPI gem 是不可能的 ShopifyAPI Product find all conditions title LIKE search params limit 20 page 1
  • 使用正则表达式从字符串中删除数字

    我正在尝试从字符串中删除未附加到单词的所有数字 例子 python 3 gt python python3 gt python3 1something gt 1something 2 gt 434 gt python 35 gt pytho
  • Rails 3:如何使用 Rails 在数据库中插入记录

    我是 Rails 新手 我正在尝试学习这项技术 所以如果问题很愚蠢 请原谅 我正在使用 Rails 3 请让我知道如何在数据库中插入记录 我正在使用 postgresql 下面是学生表的表结构 SELECT column name FROM
  • 如何启用 mongodb cli 漂亮打印? - db.col.find().pretty() 不工作

    使用 mongo v2 4 5 shell db col find pretty 在 osx 控制台或 linux ubuntu 12 04 bash 上都不能很好地打印 使用和不使用 Pretty 的输出没有差异 gt db people
  • 使用 C# 填充引导下拉列表

    如何从代码隐藏填充引导下拉列表 现在我正在尝试这个 HtmlGenericControl li for int x 3 x lt 10 x li new HtmlGenericControl li li Attributes Add cla
  • 在 TypeScript 中将 JSON 文件导入为 const

    我想从数组元素的属性创建一个联合类型 如果数组是内联的 那么使用常量断言就非常简单 const arr name One name Two as const type name typeof arr number name name One
  • ply lexmatch 正则表达式与通常的 re 有不同的组

    我正在使用 ply 并注意到存储在 t lex lexmatch 中的令牌 re 匹配与 re 模块以通常方式定义的 sre pattern 之间存在奇怪的差异 组 x 似乎偏离了 1 我定义了一个简单的词法分析器来说明我所看到的行为 im
  • 查找邮政编码指定距离内的所有邮政编码

    我知道这个问题听起来像是这里几个问题的重复 但这些问题都没有回答我想要的 我有兴趣知道是否有人知道如何在指定邮政编码的半径内找到其他邮政编码 我有带有纬度和经度的邮政编码数据库 但我不知道如何在 VB net 中执行此操作 例如 90069