您好我发现这篇文章很有帮助,但不幸的是我无法让它发挥作用。
http://davidsimpson.me/2008/09/28/find-nearest-store-page-using-php-mysql-and-google-maps/
我在MySQL表中有一个商店列表,其中包含邮政编码,经度,纬度和各种其他商店特定信息。
我希望用户能够在表单上输入他们的邮政编码,指定以英里为单位的最大距离(即下拉菜单,10英里内,20英里内等),然后将结果拉出来从MySQL数据库开始。
任何人都可以对此有所了解。
此致
答案 0 :(得分:2)
虽然该示例中提供的方法将起作用,但它必须计算表中每行的距离。这在大规模工作时效率太低。看看this tutorial。它使用MySQL中的特殊数据类型作为坐标,可以非常快速地搜索。它应该为您提供从何处入手的基础。
您的解决方案可能更为直接。它将需要所有邮政编码的列表以及所有商店的列表。由于您的所有输入和输出都是已知因素,因此您可以将其计算到“缓存”表中,这样可以获得非常快速的结果。创建一个名为StoreDistances10Miles的表(猜测数据类型和命名约定):
postcode CHAR(8) INDEXED, store_id INT(8), metresAway INT(8)
迭代每个邮政编码,按距离对商店进行排序,并将10英里范围内的商店保存到表格中。现在,当您想要通过邮政编码进行搜索时,只需通过邮政编码搜索StoreDistances10Miles即可获得您的列表。确保索引postcode
。
您需要为您希望在网站上提供的每个距离重现一张表格。
答案 1 :(得分:0)
他明确表示如何获得里程,所以你需要使用你的下拉菜单“将里程数< {dropdownvalue}”添加到你的sql语句中。所以,如果你有10英里,它的里程数为英里。 10等。