10

我有一个由十字路口和距离十字路口几英尺的范围定义的范围。(例如,华盛顿街和第五街以北 100 英尺到华盛顿街和第六街以南 300 英尺)

我希望将其地理编码成纬度/经度对。但是,我看不到任何方法可以让 Google Maps API 或 Virtual Earth 等做到这一点。他们会很乐意对交叉点进行地理编码,但不会对距离进行地理编码。我不能只增加 100 英尺,因为道路不一定完全笔直或完全朝着基本方向。

我调查了获得描述道路的折线,但从谷歌/VEarth 获得它的运气并不好。我从美国人口普查中查看了 TIGER/LINE,但他们的数据非常不准确。

任何人都可以就如何进行地理编码提出建议吗?这是针对公共地图的,因此任何来自 Google、Microsoft 等的免费 API 都应该没问题。

最后,顺便说一句,我正在寻找一个实际的街道地址而不是坐标。例如,我想知道我上面给出的示例中的范围是 508 到 563 Washington St。

4

2 回答 2

3

深思熟虑 - 我不知道您的应用程序是什么,但请记住典型 GPS 设备的精度为 10 米(约 33 英尺)。您是否有可能试图使这比必要的更精确?

可能的解决方案

  1. 您可以添加 100 英尺并将该点垂直于道路投影吗?足够近?

  2. 抓住十字路口。遍历第一段。如果它的长度 < 100 英尺,则抓住第二段,依此类推,直到您距离沿道路测量的十字路口 100 英尺。您将需要添加适当的检查/做一些数学运算来确定实际 100' 标记落在路段的哪个位置。

我在夏天使用了第二种方法,看看能不能找到一些示例代码。虽然没有承诺。

#3 - 抓住十字路口。获取第一段的方位角并使用坐标几何计算给定角度沿街道 100 英尺的点。这假设街道没有任何偏转,否则使用#2。

于 2010-01-05T16:47:00.333 回答
2

I ended up taking a different approach -- rather than geocoding to house numbers, I use percentage up the street. I can therefore get away with calculating the length of the street and then determining how far up the street the geocoded coordinates are.

于 2010-01-09T22:17:05.547 回答