通过谷歌地图获取我当前位置10公里半径内所有位置的纬度和经度(使用PHP)
Posted
技术标签:
【中文标题】通过谷歌地图获取我当前位置10公里半径内所有位置的纬度和经度(使用PHP)【英文标题】:Get Latitude and Longitude of all location that are within 10km radius of my current location through google map(using PHP) 【发布时间】:2012-10-08 14:32:15 【问题描述】:我是谷歌地图的新手。我有一张表,其中列出了所有位置(超级商店的位置)及其纬度和经度。
现在我想知道这些超级商店在我当前位置半径 10 公里内的所有可能位置(可能是纬度和经度)。
我不知道如何使用 Google 地图(在 php 代码中)做到这一点。 我应该使用什么谷歌地图 API? 任何建议、项目代码、信息都会对我有所帮助
提前致谢
【问题讨论】:
一些代码示例?你试过什么? @tntu 感谢您的回复..实际上我不知道从哪里开始意味着我应该使用什么。我什么都没试过 至少提供有关您的系统需要如何工作的更多信息。在 PHP 中,除非您使用一些 javascript 代码将数据传递给 php,否则 ca 无法与 maps api 交互。 【参考方案1】:见Radius search with Google Maps and mysql
【讨论】:
【参考方案2】:您可以使用Mysql的以下查询来获取指定里程内的所有商店
select * from stores where lat!='' and lng!='' and ( 3959 * acos( cos( radians(" . $centerpoints['lat'] . ") ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(" . $centerpoints['lng'] . ") ) + sin( radians(" . $centerpoints['lat'] . ") ) * sin( radians( lat ) ) ) ) < " . $distanceInMile
【讨论】:
如何计算 $centerpoints['lng'] 和 $centerpoints['lat']? 查询中的 3959 实际上是做什么的?【参考方案3】:https://developers.google.com/maps/articles/phpsqlsearch_v3 看看上面。应该给你一个好主意。
在标记表中查找特定范围内的位置 给定纬度/经度的半径距离,您可以使用 SELECT 基于Haversine 公式的语句。 Haversine 公式是 通常用于计算两对之间的大圆距离 球体上的坐标。一个深入的数学解释是 由 Wikipedia 给出,并对相关的公式进行了很好的讨论 编程在 Movable Type 的网站上。
这是查找最近的 20 个位置的 SQL 语句 在 37, -122 坐标的 25 英里范围内。它 根据该行的纬度/经度计算距离 和目标纬度/经度,然后只询问 距离值小于 25,对整个查询排序 距离,并将其限制为 20 个结果。改为按公里搜索 英里数,将 3959 替换为 6371。
【讨论】:
那个 SQL 语句在哪里? 在“使用 MySQL 查找位置”主题下检查【参考方案4】:function getLatLong(lat, lng, radius)
const earth = 6371 // earth radius in miles
const maxLat = ((lat + Math.PI / 2) * 180) / Math.PI
const minLat = ((lat - Math.PI / 2) * 180) / Math.PI
const maxLng = ((lng + (Math.PI * radius) / earth) * 180) / Math.PI
const minLng = ((lng - (Math.PI * radius) / earth) * 180) / Math.PI
return
maxLat: maxLat,
minLat: minLat,
maxLng: maxLng,
minLng: minLng,
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。 这似乎不是 PHP 或使用 Google Map API。以上是关于通过谷歌地图获取我当前位置10公里半径内所有位置的纬度和经度(使用PHP)的主要内容,如果未能解决你的问题,请参考以下文章