通过谷歌地图获取我当前位置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)的主要内容,如果未能解决你的问题,请参考以下文章

找到给定半径内的附近位置

Android:如何将地图视图的缩放级别设置为当前位置周围 1 公里半径?

【在线等】怎么在百度地图上查找方圆多少公里内的地方

半径/最近的结果 - Google Maps API

如何仅在地图上的半径(圆圈)内显示标记?

Rails 谷歌地图检查点是不是在一定半径内