Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果我';我在做一件事;“找到我身边的人”;选项_Php_Html_Google Maps_Geolocation - Fatal编程技术网

Php 如果我';我在做一件事;“找到我身边的人”;选项

Php 如果我';我在做一件事;“找到我身边的人”;选项,php,html,google-maps,geolocation,Php,Html,Google Maps,Geolocation,我正在建立一个目录,允许您根据当前位置查看您周围的业务。现在,这些业务以地址1、地址2、市、省、邮政编码的形式存储在数据库中 如果我想做距离测试,我应该同时存储lat/long吗?最好的办法是什么 我使用的是PHP、HTML5地理定位和谷歌地图。如果您查看谷歌地图中的远程服务,您可以传递地址或lat,long: 您不想对数据库中的每个条目进行距离计算,需要缩小范围。邮政编码可能足以满足这一要求。如果不是,你可以用lat/lon快速缩小搜索范围,将每个搜索限制在位置周围的一个范围内;这提供了一个近

我正在建立一个目录,允许您根据当前位置查看您周围的业务。现在,这些业务以地址1、地址2、市、省、邮政编码的形式存储在数据库中

如果我想做距离测试,我应该同时存储lat/long吗?最好的办法是什么

我使用的是PHP、HTML5地理定位和谷歌地图。

如果您查看谷歌地图中的远程服务,您可以传递地址或lat,long:


您不想对数据库中的每个条目进行距离计算,需要缩小范围。邮政编码可能足以满足这一要求。如果不是,你可以用lat/lon快速缩小搜索范围,将每个搜索限制在位置周围的一个范围内;这提供了一个近似正方形的梯形区域,可能已经足够好了。

除非您有其他方法缩小数据库搜索范围,否则您可能希望保持lat/long,因为它将帮助您过滤数据库搜索中的附近地址。使用lat/long精确计算两点之间的精确距离很复杂,但这至少是缩小要更详细查看的地址数量的起点


此外,如果您希望能够在没有数据连接的情况下运行,则需要使用一些数据来代替web查找。从lat long得到一个相当精确的距离是可能的,而不必太担心经线的会聚,至少对于我周围的精度来说是这样

但是,如果我有一个表格,上面写着“在这里键入关键字”,他们选中了“显示离我最近的企业”,那么我是否必须检查数据库中的每一个企业,获取地址,找出哪一个更近,然后按最近的企业排序?看起来很贵。我在这里遗漏了什么?是的,你必须对每一个条目都这样做。你在使用MySQL吗?您可以通过空间搜索或其他几种方法搜索此网站。如果你想找到最好的类型,你可以看看这里:我对HTML5地理定位一点都不熟悉,但是如果你有用户的邮政编码,你可以进行一次计算,并将距离存储在由邮政编码键入的企业的距离表中(因为它将被许多个人共享)。随后使用该PC进行的查找只会调用先前计算的业务。最终,在一段时间不使用之后,您将摆脱计算。我相信您也可以使用部分IP地址,尽管它可能不那么准确。