Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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 如何使用GPS信息搜索数据库?_Php_Mysql_Database_Gps_Geolocation - Fatal编程技术网

Php 如何使用GPS信息搜索数据库?

Php 如何使用GPS信息搜索数据库?,php,mysql,database,gps,geolocation,Php,Mysql,Database,Gps,Geolocation,我正在收集一份企业列表,并利用这些信息收集街道地址、城市、州、邮政编码等。我想构建一个应用程序,可以接受地址的搜索输入,或者使用设备/浏览器的GPS或IP生成一个,然后在我的数据库中查找特定地理范围内的企业 我的问题是,我如何(a)创建或访问一个地理数据数据库,我可以使用该数据库进行搜索,以及(b)我如何以限制(比如)英里数的方式存储数据?所以我可以说“这些公司离你只有30英里,而你离这家公司只有2.8英里” 我知道GoogleMaps提供了一个API,但是通过阅读文档,我不得不在地图上显示数据

我正在收集一份企业列表,并利用这些信息收集街道地址、城市、州、邮政编码等。我想构建一个应用程序,可以接受地址的搜索输入,或者使用设备/浏览器的GPS或IP生成一个,然后在我的数据库中查找特定地理范围内的企业

我的问题是,我如何(a)创建或访问一个地理数据数据库,我可以使用该数据库进行搜索,以及(b)我如何以限制(比如)英里数的方式存储数据?所以我可以说“这些公司离你只有30英里,而你离这家公司只有2.8英里”

我知道GoogleMaps提供了一个API,但是通过阅读文档,我不得不在地图上显示数据,而这并不是我想要做的。我想以列表的形式呈现这些数据

编辑:


所以对于终端,我需要lat/long和一些计算。我如何将地址写为“密苏里州堪萨斯城123号街道”,并将其转换为我可以存储的LAT LONG

如果您愿意使用Microsoft SQL Server,他们在SQL 2008中引入了
geography
列类型。有内置的数据库操作可以从lat/lon查找这些数据


否则,当您向数据库中输入地址或其他类型的数据时,您需要做的是对其进行地理定位,可能使用外部映射API,例如,您不存储“距离”。存储lat/long,然后动态计算距离:
select id。。。。其中距离计算($user\u lat,$user\u long)<$limit
将邮政编码转换为坐标,然后使用毕达哥拉斯定理确定与当前点的距离。Marc B,太棒了,太棒了。我已经对这个问题进行了编辑,并进行了一些跟进,但我也会在这里提问。如何获取用户地址并将其转换为lat/long,以便将其存储在数据库中?