Asp.net 使用Google place Api,无法获得预期结果
在我的Asp.net应用程序中,我遇到了一种情况,我需要根据用户的搜索关键字在Google地图上显示我的客户商店。我成功地做到了这一点,但我的客户现在希望我显示搜索位置以及附近位置的商店。我找到了GooglePlaceAPI,但它提供了我的客户端存储以外的其他结果,因为它可以支持返回不需要的结果。我想显示数据库中的商店。这怎么可能呢?我自己已经解决了:。因为值来自数据库,我并没有存储latlng,而只是存储地址。我决定在GoogleMaps.LocationServices.dll的帮助下存储latlng,我使用Nuget软件包管理器下载了它。现在我的表中有地址和latlng,所以我使用下面的查询来查找距离使用下面的查询搜索到的latlong不到10英里的latlongAsp.net 使用Google place Api,无法获得预期结果,asp.net,google-maps,google-maps-api-3,google-places-api,Asp.net,Google Maps,Google Maps Api 3,Google Places Api,在我的Asp.net应用程序中,我遇到了一种情况,我需要根据用户的搜索关键字在Google地图上显示我的客户商店。我成功地做到了这一点,但我的客户现在希望我显示搜索位置以及附近位置的商店。我找到了GooglePlaceAPI,但它提供了我的客户端存储以外的其他结果,因为它可以支持返回不需要的结果。我想显示数据库中的商店。这怎么可能呢?我自己已经解决了:。因为值来自数据库,我并没有存储latlng,而只是存储地址。我决定在GoogleMaps.LocationServices.dll的帮助下存储l
SELECT
(
3959 * acos (
cos ( radians(51.4579242) )
* cos( radians( lattitude ) )
* cos( radians( longitude ) - radians(-0.1660149) )
+ sin ( radians(51.4579242) )
* sin( radians( lattitude ) )
)
) AS 'distance', lattitude, longitude
FROM stockist
where (
3959 * acos (
cos ( radians(51.4579242) )
* cos( radians( lattitude ) )
* cos( radians( longitude ) - radians(-0.1660149) )
+ sin ( radians(51.4579242) )
* sin( radians( lattitude ) )
)
) < 10
注:
此处51.4579242为输入纬度,-0.1660149为输入经度。当然,用户不知道这些技术术语,所以我从用户那个里获得了post代码,在DB中找到了该代码的所有地址,并使用geocoder获取latlong
这里,stickist是表名,latitude和longitude是列。
要按公里而不是英里搜索,请将3959替换为6371
我靠近拉特朗,画出了它们: