确定物理地址是高速公路的东侧还是西侧(例如 I-95)- 自然灾害防备
Determine if a physical address is EAST or WEST of a highway (ex. I-95) - Natural Disaster Preparedness
由于飓风(和其他灾难)疏散计划,以及通常 work/are 的计划,我正在尝试开发一个涉及地理定位地址与疏散区的解决方案。
通常,例如在佐治亚州,员工会被告知居住在 I-95 州际公路东部的每个人都必须撤离(根据州政府的指导)。有时情况真的很糟糕,i-95 州际公路以东的所有人以及 i-95 州际公路以西的人都必须撤离。就其本身而言,强度并不重要,就好像它在 95 号以西一样,这是一场非常可怕的风暴,正向我们袭来,每个非必要的人都必须撤离,例如,与 I-95 的距离并不重要重要的是方向
我已经在 Google 地图文档、Google 搜索以及 Whosebug 上寻找答案,但我什至没有找到第一个能为我指明正确方向的面包屑.
非常感谢任何输入和花费的时间。如果没有,希望大家度过愉快的一周!
===
对于造成的混乱,我深表歉意。正如@Fraser 指出的那样,地球上的每个点都是 I-95 的 east/west,这是非常正确的,在我匆忙中我没有考虑到这一点。话虽如此,它必须有某种边界,比如 100 英里 EAST 或 WEST 就足以满足这个用例。
这是一个非常简单的解决方案,基本上你需要,
- 定义I-95的要点,
例如
北迈阿密
美国佛罗里达州
25.886999, -80.215033
棕榈滩县
美国佛罗里达州
26.616067, -80.077996
...
巴尔米拉
美国缅因州 04965
44.845670, -69.339113
然后你将存储这些点。在数据库中或仅在代码中,例如一个非常粗略的约。 I-95 路线的一部分是...
const I95 = [
[ 25.78364,-80.20397 ],
[ 25.87672,-80.20764 ],
[ 25.92758,-80.20947 ],
[ 25.96093,-80.16689 ],
[ 26.07565,-80.16895 ],
[ 26.20202,-80.14286 ],
[ 26.33871,-80.11540 ],
[ 26.41732,-80.08916 ],
[ 26.69125,-80.07053 ],
[ 26.80963,-80.09800 ],
[ 26.89172,-80.13457 ],
[ 27.05956,-80.24473 ],
[ 27.13447,-80.35813 ],
[ 27.26235,-80.42439 ],
[ 27.36947,-80.41054 ],
[ 27.39591,-80.39414 ],
[ 27.52203,-80.45045 ],
[ 27.65044,-80.52553 ],
[ 27.79038,-80.55236 ],
[ 28.17599,-80.71639 ],
[ 29.07689,-81.03222 ],
[ 29.42123,-81.16468 ],
[ 30.14514,-81.53397 ],
[ 30.35867,-81.66032 ],
[ 30.68282,-81.66581 ],
[ 30.96873,-81.68229 ],
[ 31.31721,-81.46740 ],
[ 31.86616,-81.35713 ],
[ 32.39924,-81.00667 ],
[ 32.97139,-80.67807 ],
[ 33.55893,-80.39473 ],
[ 34.24241,-79.78304 ],
[ 34.63655,-79.02817 ],
[ 35.01769,-78.82628 ],
[ 35.69044,-78.06967 ],
[ 36.17135,-77.78567 ],
[ 36.78059,-77.47569 ],
[ 37.44699,-77.34057 ],
[ 38.47267,-77.39426 ],
[ 39.59907,-75.87815 ],
[ 40.40772,-74.46824 ],
[ 41.26384,-73.08396 ],
[ 41.47261,-71.75990 ],
[ 42.05443,-71.23805 ],
[ 42.50737,-71.09643 ],
[ 43.11185,-70.73388 ],
[ 44.72099,-69.49369 ],
[ 44.83018,-68.74662 ],
[ 46.12428,-68.05448 ]
];
- 对您的地址进行地理编码以获得纬度和经度。
例如艾伦赫斯特。格鲁吉亚 - [ 31.786663, -81.609701 ]
- 对于给定的地理编码位置,您需要根据匹配的 I-95 坐标确定最近的纬度。在我的例子中是
[ 31.86616,-81.35713 ]
然后您只需查看地理编码经度是否大于(东)或小于(西)该纬度的 I-95 经度。
例如因为 -81.609701
小于 -81.35713
Allenhurst。佐治亚州位于 I-95 州际公路以西 31.86616
北部。
如前所述,您可能希望测试有一些“上限”,因为如果旅行足够远,地球上的每个点都在 I-95 的东边和西边。因为如果你从任何一点向东或向西行驶,你都会回到同一点:)
您也可以在像 PostGIS 这样的空间数据库中执行所有这些操作,MySQL 具有空间类型等 - 在这种情况下,只需查询数据库以获得您的“东方”, “西方”结果,无需实施您自己的解决方案。
可能只是定义两个覆盖您感兴趣的“东”和“西”位置的“区域”或“形状”。这样就可以简单地询问“这是[纬度,经度] 'inside'(在范围内)东方或西方'shape'"
由于飓风(和其他灾难)疏散计划,以及通常 work/are 的计划,我正在尝试开发一个涉及地理定位地址与疏散区的解决方案。
通常,例如在佐治亚州,员工会被告知居住在 I-95 州际公路东部的每个人都必须撤离(根据州政府的指导)。有时情况真的很糟糕,i-95 州际公路以东的所有人以及 i-95 州际公路以西的人都必须撤离。就其本身而言,强度并不重要,就好像它在 95 号以西一样,这是一场非常可怕的风暴,正向我们袭来,每个非必要的人都必须撤离,例如,与 I-95 的距离并不重要重要的是方向
我已经在 Google 地图文档、Google 搜索以及 Whosebug 上寻找答案,但我什至没有找到第一个能为我指明正确方向的面包屑.
非常感谢任何输入和花费的时间。如果没有,希望大家度过愉快的一周!
===
对于造成的混乱,我深表歉意。正如@Fraser 指出的那样,地球上的每个点都是 I-95 的 east/west,这是非常正确的,在我匆忙中我没有考虑到这一点。话虽如此,它必须有某种边界,比如 100 英里 EAST 或 WEST 就足以满足这个用例。
这是一个非常简单的解决方案,基本上你需要,
- 定义I-95的要点,
例如
北迈阿密 美国佛罗里达州 25.886999, -80.215033
棕榈滩县 美国佛罗里达州 26.616067, -80.077996
...
巴尔米拉 美国缅因州 04965 44.845670, -69.339113
然后你将存储这些点。在数据库中或仅在代码中,例如一个非常粗略的约。 I-95 路线的一部分是...
const I95 = [
[ 25.78364,-80.20397 ],
[ 25.87672,-80.20764 ],
[ 25.92758,-80.20947 ],
[ 25.96093,-80.16689 ],
[ 26.07565,-80.16895 ],
[ 26.20202,-80.14286 ],
[ 26.33871,-80.11540 ],
[ 26.41732,-80.08916 ],
[ 26.69125,-80.07053 ],
[ 26.80963,-80.09800 ],
[ 26.89172,-80.13457 ],
[ 27.05956,-80.24473 ],
[ 27.13447,-80.35813 ],
[ 27.26235,-80.42439 ],
[ 27.36947,-80.41054 ],
[ 27.39591,-80.39414 ],
[ 27.52203,-80.45045 ],
[ 27.65044,-80.52553 ],
[ 27.79038,-80.55236 ],
[ 28.17599,-80.71639 ],
[ 29.07689,-81.03222 ],
[ 29.42123,-81.16468 ],
[ 30.14514,-81.53397 ],
[ 30.35867,-81.66032 ],
[ 30.68282,-81.66581 ],
[ 30.96873,-81.68229 ],
[ 31.31721,-81.46740 ],
[ 31.86616,-81.35713 ],
[ 32.39924,-81.00667 ],
[ 32.97139,-80.67807 ],
[ 33.55893,-80.39473 ],
[ 34.24241,-79.78304 ],
[ 34.63655,-79.02817 ],
[ 35.01769,-78.82628 ],
[ 35.69044,-78.06967 ],
[ 36.17135,-77.78567 ],
[ 36.78059,-77.47569 ],
[ 37.44699,-77.34057 ],
[ 38.47267,-77.39426 ],
[ 39.59907,-75.87815 ],
[ 40.40772,-74.46824 ],
[ 41.26384,-73.08396 ],
[ 41.47261,-71.75990 ],
[ 42.05443,-71.23805 ],
[ 42.50737,-71.09643 ],
[ 43.11185,-70.73388 ],
[ 44.72099,-69.49369 ],
[ 44.83018,-68.74662 ],
[ 46.12428,-68.05448 ]
];
- 对您的地址进行地理编码以获得纬度和经度。
例如艾伦赫斯特。格鲁吉亚 - [ 31.786663, -81.609701 ]
- 对于给定的地理编码位置,您需要根据匹配的 I-95 坐标确定最近的纬度。在我的例子中是
[ 31.86616,-81.35713 ]
然后您只需查看地理编码经度是否大于(东)或小于(西)该纬度的 I-95 经度。
例如因为 -81.609701
小于 -81.35713
Allenhurst。佐治亚州位于 I-95 州际公路以西 31.86616
北部。
如前所述,您可能希望测试有一些“上限”,因为如果旅行足够远,地球上的每个点都在 I-95 的东边和西边。因为如果你从任何一点向东或向西行驶,你都会回到同一点:)
您也可以在像 PostGIS 这样的空间数据库中执行所有这些操作,MySQL 具有空间类型等 - 在这种情况下,只需查询数据库以获得您的“东方”, “西方”结果,无需实施您自己的解决方案。
可能只是定义两个覆盖您感兴趣的“东”和“西”位置的“区域”或“形状”。这样就可以简单地询问“这是[纬度,经度] 'inside'(在范围内)东方或西方'shape'"