PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP-如何使用Google Map API在给定位置附近按位置查找大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

想要找到给定地点或地址的所有附近地点.是否有任何Google Map API?或者我们需要按照以下步骤进行操作:

>找到该地方的纬度.
>进行一些处理,并稍等片刻.
>使用从步骤2中获得的经纬度进行反向地理编码,并找到每个经纬度对的位置.

澄清我另外,如果您可以跳过第2步,那就太好了.

这种方法行得通吗?你能澄清一下吗

解决方法:

这实际上取决于您要查找的附近事物是否在Google数据库中作为感兴趣的地方,或者它们是否是任意地址/位置.

如果它们是地址/位置,则类似于您指定的内容是正确的.

>对所有要包含的地点进行地理编码并将其存储在数据库中(使用纬度/经度)
>对您所在的位置(您要获取信息的地方)进行地理编码
>使用数学例程确定球面上的距离,以列出指定距离内的位置

数学是:

>获取以弧度为单位的当前经度(LatOrLon * PI / 180)
>获取以弧度为单位的目标纬度和经度(LatOrLon * PI / 180)
>获取球体的半径(在这种情况下,地球= 3963.1英里)
>使用冗长而令人困惑的论坛

下方(其中Lat1和lon1是您在弧度中的当前位置,lat2lon2是您在弧度中的目标):

@H_618_31@Acos( Cos(Lat1) * Cos(lon1) * Cos(lat2) * Cos(lon2) + Cos(Lat1) * Sin(lon1) * Cos(lat2) * Sin(lon2) + Sin(Lat1) * Sin(lat2) ) * EarthRadiusInMiles

可以使用@R_419_2524@函数(MS@R_419_2524@,但您可以轻松地将此逻辑编码为大多数其他语言)来完成此操作.

@H_618_31@create functION [dbo].[CoordinateDistanceMiles]( @Latitude1 float, @Longitude1 float, @Latitude2 float, @Longitude2 float ) RETURNS float AS BEGIN -- SAME LOCATION, RETURN 0 IF @Latitude1 = @Latitude2 AND @Longitude1 = @Longitude2 RETURN 0.00 -- CONSTANTS DECLARE @EarthRadiusInMiles float; SET @EarthRadiusInMiles = 3963.1 DECLARE @PI float; SET @PI = PI(); -- radians conversion DECLARE @lat1radians float; DECLARE @long1radians float; DECLARE @lat2radians float; DECLARE @long2radians float; SET @lat1radians = @Latitude1 * @PI / 180; SET @long1radians = @Longitude1 * @PI / 180; SET @lat2radians = @Latitude2 * @PI / 180; SET @long2radians = @Longitude2 * @PI / 180; RETURN Acos( Cos(@lat1radians) * Cos(@long1radians) * Cos(@lat2radians) * Cos(@long2radians) + Cos(@lat1radians) * Sin(@long1radians) * Cos(@lat2radians) * Sin(@long2radians) + Sin(@lat1radians) * Sin(@lat2radians) ) * @EarthRadiusInMiles; END

然后,可以从任何调用查询中按距离排序,例如:

@H_618_31@CREATE PROCEDURE [dbo].[NearbyThings] ( @Lat float, @Lon float, @Num int = 10 ) AS SET NOCOUNT ON SELEct Top (@Num) 'Distance' = round(dbo.CoordinateDistanceMiles(@Lat, @Lon, Lat, lon), 1), ThingId, Postcode, Lat, Lon From Things Order by dbo.CoordinateDistanceMiles(@Lat, @Lon, Lat, lon) ASC GO

大佬总结

以上是大佬教程为你收集整理的PHP-如何使用Google Map API在给定位置附近按位置查找全部内容,希望文章能够帮你解决PHP-如何使用Google Map API在给定位置附近按位置查找所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: