Php 如何使用google map api查找给定位置附近的位置
要查找给定位置或地址的所有附近位置。有谷歌地图api吗?或者我们需要遵循一系列步骤,如Php 如何使用google map api查找给定位置附近的位置,php,javascript,google-maps,Php,Javascript,Google Maps,要查找给定位置或地址的所有附近位置。有谷歌地图api吗?或者我们需要遵循一系列步骤,如 找到这个地方的最新位置 做一些加工,然后用板条靠近 使用从步骤2中获得的lat-long进行反向地理编码,并找到每个lat-long对的位置 请澄清。另外,如果你能对第二步进行私舞,那就太棒了 这种方法有效吗?你能澄清一下吗。这真的取决于你正在寻找的附近的东西是在谷歌数据库中作为感兴趣的地方,还是它们是任意的地址/位置 如果它们是地址/位置,则与您指定的类似的内容是正确的 对所有要包含的位置进行地理编码,并将
这种方法有效吗?你能澄清一下吗。这真的取决于你正在寻找的附近的东西是在谷歌数据库中作为感兴趣的地方,还是它们是任意的地址/位置 如果它们是地址/位置,则与您指定的类似的内容是正确的
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
你说的“附近的地方”是什么意思?更准确地说是附近的地方/地理位置
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
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