草庐IT

关于php:计算两个邮政编码之间的距离

codeneng 2023-03-28 原文

Calculating distance between two post codes

我想要一些关于如何计算两个邮政编码之间距离的帮助。这是我想要的设置,让我给你一个场景。

一个用户登录到我的网站(他们提供了他们的详细信息,他们的邮政编码就是其中之一)。该数据存储在 users 表中。

我有另一个表格,里面有关于 locations 的详细信息。我想显示离用户最近的位置(和距离)。

我知道有一些方法可以使用,例如:

将邮政编码转换为经纬度并使用内置方法计算距离,我认为 Google 提供免费服务。但我不知道我将如何实现这样的事情。我看过的所有教程似乎都太复杂了,目前我想要一个非常粗略和简单的解决方案,我可以在此基础上构建,更重要的是学习!

在数据的基本输入/输出方面,我对 PHP 和 MySQL 相当熟悉。但我不确定处理有关用户数据和"企业"位置的信息的最佳方式。

任何建议,评论将不胜感激。

  • 你的问题相当广泛。你试过什么?
  • 计算两个坐标(纬度、经度)之间的距离
  • 我知道是这样,我还没有真正尝试过任何事情,我知道如何从数据库中存储和检索项目,但我从未使用过关于地理编码的数据,我已经查看过关于谷歌提供的服务.
  • 您通常可以通过地址使用 google 或foursquare 的api 获取经纬度信息,但对于foursquare 来说,即使只是场地名称也可能足够了。从中存储每个位置的 latlong,然后考虑 sammitch 的建议。
  • 我在这里检查过,但我不确定如何实现代码以仅返回 LAT/LONG。 developer.google.com/maps/documentation/geocoding/…


如果您在美国,此 API 应该可以满足您的需求:https://www.zipcodeapi.com

它专门用于查找两个邮政编码之间的距离,告诉您邮政编码的经纬度,查找与某个位置相关的所有邮政编码等。


  • 从条例调查中免费获取邮政编码北区东区数据(在您的网页上记下它们以获得免费)
  • 2 计算与相应 csv 平面文件的距离(M.csv 包含所有曼彻斯特邮政编码以及北和东)。

  • 距离是 sqrt((n1-n2)**2 (e1-e2)**2) - 请原谅我的 fortran

  • 如果它很慢,并且您想要一个大概的距离,请创建一个包含上半年邮政编码平均值的小型数据库,以便您查找 M20 而不是 M20 3nb。

  • 5 NB 谷歌不喜欢你在谷歌地图之外使用他们的邮政编码 API。

  • 我想知道一种算法,以便对于短距离,如果您正在查看靠近邮政编码的地方,您只需搜索 M 个邮政编码以找到 M 个邮政编码(如果您有一个相邻的表格,则可能是附近的邮政区域,如 SK、OL邮政编码区)。
  • 7 有没有人更进一步?

    有关关于php:计算两个邮政编码之间的距离的更多相关文章

    1. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

      我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

    2. ruby - 用逗号、双引号和编码解析 csv - 2

      我正在使用ruby​​1.9解析以下带有MacRoman字符的csv文件#encoding:ISO-8859-1#csv_parse.csvName,main-dialogue"Marceu","Giveittohimóhe,hiswife."我做了以下解析。require'csv'input_string=File.read("../csv_parse.rb").force_encoding("ISO-8859-1").encode("UTF-8")#=>"Name,main-dialogue\r\n\"Marceu\",\"Giveittohim\x97he,hiswife.\"\

    3. ruby-on-rails - 如何在 ruby​​ 中使用两个参数异步运行 exe? - 2

      exe应该在我打开页面时运行。异步进程需要运行。有什么方法可以在ruby​​中使用两个参数异步运行exe吗?我已经尝试过ruby​​命令-system()、exec()但它正在等待过程完成。我需要用参数启动exe,无需等待进程完成是否有任何ruby​​gems会支持我的问题? 最佳答案 您可以使用Process.spawn和Process.wait2:pid=Process.spawn'your.exe','--option'#Later...pid,status=Process.wait2pid您的程序将作为解释器的子进程执行。除

    4. ruby-on-rails - Rails 应用程序之间的通信 - 2

      我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

    5. ruby-on-rails - 使用一系列等级计算字母等级 - 2

      这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,

    6. ruby - #之间? Cooper 的 *Beginning Ruby* 中的错误或异常 - 2

      在Cooper的书BeginningRuby中,第166页有一个我无法重现的示例。classSongincludeComparableattr_accessor:lengthdef(other)@lengthother.lengthenddefinitialize(song_name,length)@song_name=song_name@length=lengthendenda=Song.new('Rockaroundtheclock',143)b=Song.new('BohemianRhapsody',544)c=Song.new('MinuteWaltz',60)a.betwee

    7. ruby-on-rails - `a ||= b` 和 `a = b if a.nil 之间的区别? - 2

      我正在检查一个Rails项目。在ERubyHTML模板页面上,我看到了这样几行:我不明白为什么不这样写:在这种情况下,||=和ifnil?有什么区别? 最佳答案 在这种特殊情况下没有区别,但可能是出于习惯。每当我看到nil?被使用时,它几乎总是使用不当。在Ruby中,很少有东西在逻辑上是假的,只有文字false和nil是。这意味着像if(!x.nil?)这样的代码几乎总是更好地表示为if(x)除非期望x可能是文字false。我会将其切换为||=false,因为它具有相同的结果,但这在很大程度上取决于偏好。唯一的缺点是赋值会在每次运行

    8. ruby - 这两个 Ruby 类初始化定义有什么区别? - 2

      我正在阅读一本关于Ruby的书,作者在编写类初始化定义时使用的形式与他在本书前几节中使用的形式略有不同。它看起来像这样:classTicketattr_accessor:venue,:datedefinitialize(venue,date)self.venue=venueself.date=dateendend在本书的前几节中,它的定义如下:classTicketattr_accessor:venue,:datedefinitialize(venue,date)@venue=venue@date=dateendend在第一个示例中使用setter方法与在第二个示例中使用实例变量之间是

    9. C# 到 Ruby sha1 base64 编码 - 2

      我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha

    10. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

      项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

    随机推荐