【问题标题】:Using Google place Api, cant get desired result使用 Google place Api,无法获得想要的结果
【发布时间】:2014-07-11 11:44:37
【问题描述】:
在我的Asp.net 应用程序中,我遇到了一种情况,我需要根据用户的搜索关键字在Google Map 上向我的客户展示商店。我成功地做到了,但我的客户现在希望我在搜索的位置以及附近的位置显示商店。我找到了Google Place API,但它提供了我的客户商店以外的其他结果,因为它可以支持返回不需要的结果的these types only.。我想显示我的数据库中的商店。这怎么可能?
【问题讨论】:
标签:
asp.net
google-maps
google-maps-api-3
google-places-api
【解决方案1】:
我自己解决了:)。因为值来自数据库,我没有存储latlng,只是地址。我决定在我使用Nuget Package Manager 下载的GoogleMaps.LocationServices.dll 的帮助下也存储latlng。现在我的表中有地址和latlng,所以我使用以下查询查找距离搜索到的latlong 10 英里范围内的latlong,使用以下查询
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 是输入 latitude,-0.1660149 是输入 longitude。 (当然用户不知道这些技术术语,所以我从用户那里得到邮政编码,在数据库中找到该代码的所有地址并使用geocoder 获取latlong)
这里,stickist 是表名,lattitude 和 longitude 是列。
要按公里而不是英里搜索,请将 3959 替换为 6371。
我靠近latlong 并绘制了它们:)