地理编码计算 - 我有足够的数据吗?

发布于 2024-11-09 02:10:50 字数 565 浏览 3 评论 0原文

请耐心等待,因为我对地理编码非常陌生,不确定我是否拥有实现目标所需的东西。

我希望用户选择墨尔本市的郊区。当他们选择郊区时,我想显示所选郊区一英里以内的周边郊区。因此,我的数据库表将如下所示:

Suburb LattLong
菲茨罗伊 37° 47' S / 144° 58' E

科林伍德 37° 48' S

/ 144° 59' E 阿伯茨福德 37° 48' S / 144° 59' E

顿山 37° 47' S / 144° 59' E

克利夫 北纬 37° 47' S / 144° 59' E

CARLTON 37° 48' S / 144° 58' E

因此,假设用户选择 FITZROY 作为其郊区。这些是我认为的 1 英里半径内的一些郊区。

我的问题是我不理解 LattLong 字段中的数据。这些数据足以进行计算吗?

有没有一个例子可以告诉我如何从 MySQL 数据库中选择 1 英里以内的郊区?

我不知道从哪里开始在谷歌上帮助我解决这个问题,所以任何指导将不胜感激。

亲切的问候, 约翰

Please bear with me as I am very new to geocodes and not sure I have what I need to achieve my goal.

I want the user to select a suburb of the city of Melbourne. When they select the suburb, I want to show the surrounding suburbs within a mile of the one selected. So, my database table will look like this:

Suburb LattLong
FITZROY 37° 47' S / 144° 58' E

COLLINGWOOD 37° 48' S / 144° 59' E

ABBOTSFORD 37° 48' S / 144° 59' E

CLIFTON HILL 37° 47' S / 144° 59' E

FITZROY NORTH 37° 47' S / 144° 59' E

CARLTON 37° 48' S / 144° 58' E

So lets say the user selects FITZROY as its suburb. These are what I think are some of the suburbs within a 1 mile radius.

My problem is that I don't understand the data in the LattLong field. Is this sufficient data to make my calculation?

Is there an example that would show me how to select the suburbs within 1 mile from a MySQL database?

I have no idea where to begin on google to help me with this so any guidance would be greatly appreciated.

Kind regards,
John

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最冷一天 2024-11-16 02:10:50

如果将纬度和经度转换为十进制,则处理数据库中的地理数据和使用数学公式会容易得多。这将为您提供类似“80.012345”的数字。然后,您可以根据两个数字的简单差异编写查询,例如编写一个查询,其中两个纬度和经度的十进制数之差小于 0.02 等等。

谷歌十进制度以了解更多信息并获得转换技术。这是一个简单的公式,您还必须使用 E、W、N 和 S 来将小数指定为正数或负数。

就您而言,您的数据只有几分钟。例如,要转换您所拥有的值,144° 58' E = 144 + 58/60。 58/60 = 0.9666666666...但是,您只有 2 个有效数字 - 58 是两个 sig 数字,60 是两个 sig 数字。所以结果是 144.97 现在,简单来说,一英里在赤道上大约为 0.02 十进制。因此,您需要精确到小数点后第二位,但您要在同一个小数位上四舍五入。因此,您所需的分辨率是您所拥有的数字精度的极限。

所以,不幸的是,没有。实际上,您至少需要多一位小数点的精度才能以合理的精度定位一英里内的物体。因此,除了分钟之外,您还需要带秒的经度和纬度。

It is much easier to work with geographical data in a database and using mathematical formulas if you convert latitude and longitude to decimal degrees. This will give you numbers like "80.012345". You can then write queries based on simple differences of the two numbers, example write a query where the difference of two latitude and longitudes in Decimal degrees are less than 0.02 and so on.

Google decimal degrees to learn more and get the conversion technique. It is a simple formula, you have to also use the E, W. N, and S to assign the decimal number as positive or negative.

In your case you have data only to minutes. To convert what you have for example, 144° 58' E = 144 + 58/60. 58/60 = 0.9666666666... However, you only have 2 significant digits - 58 is two sig digits and 60 is two sig digits. So the result is 144.97 Now, in simplified terms a mile is about 0.02 decimal degrees at the equator. So you need precision to the second decimal place, but you are rounding on this same decimal place. So your required resolution is at the very limit of the accuracy of the numbers you have.

So, unfortunately, no. Realistically you need at least one more decimal of accuracy to locate things within a mile with any reasonable accuracy. So you need longitude and latitude with seconds in addition to minutes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文