如何使用 Google 地图搜索我自己的位置数据(与 Places 搜索 API 的功能相同,但用于我自己的“地点”)
Posted
技术标签:
【中文标题】如何使用 Google 地图搜索我自己的位置数据(与 Places 搜索 API 的功能相同,但用于我自己的“地点”)【英文标题】:How to use Google Maps to search my own location data (Same functionality as Places search API, but for my own "places") 【发布时间】:2012-02-26 13:21:00 【问题描述】:查看相关问题:google maps custom local search / search control
我知道我可以在 Google 地图中创建自定义位置和信息窗口 例如http://code.google.com/apis/ajax/playground/#info_windows_sharing_v3
我了解本地搜索可以找到附近的地方(公共地方) 例如http://code.google.com/apis/ajax/playground/#localsearch_with_markers
但是我的问题很简单:如何将两者结合起来? 如何启用与本地/地点搜索功能相同但仅在自定义标记位置(例如我自己的位置数据而不是 Google 的地点/本地数据)上?
例如,如果我有一组自定义位置数据/标记(未发布到 Google 地方信息),如何允许用户查找与地址或他/她当前位置相关的自定义地点附近的列表?
【问题讨论】:
【参考方案1】:Local Search API 已弃用,因此您可能应该考虑改用 Places API。
无论哪种情况,您只需查询(搜索或)Places API,从结果中提取 LatLngs 并将您的标记放置在地图上。
我不确定您对 自定义标记 的含义,我猜是 (a) 使用每个结果自己的图标作为标记的图标,或者 (b) 让用户在 中搜索您的数据(标记)而不是 Google 的本地/地点。
(a) 使用Places Library 有点简单。在place-search.html 示例中,您只需向createMarker()
回调函数添加一行:
function createMarker(place)
var placeLoc = place.geometry.location;
var marker = new google.maps.Marker(
map: map,
icon: place.icon,
position: place.geometry.location
);
google.maps.event.addListener(marker, 'click', function()
infowindow.setContent(place.name);
infowindow.open(map, this);
);
原来的图标看起来很大,所以你可能想缩小它们。
(b) 将是一个不同的故事,例如Creating a Store Locator with php, mysql & Google Maps。
【讨论】:
谢谢,我正在寻找 (b) - 我想搜索我的数据,而不是 Google 的本地/地点。我看过那个链接,但想知道这是否确实是最好的解决方案? 就是这样。一旦您在任何 SQL 数据库中拥有数据(使用 LatLngs),以及像 PHP 这样的服务器端运行时语言,它就是您可以为点+半径搜索执行的最简单的操作。以上是关于如何使用 Google 地图搜索我自己的位置数据(与 Places 搜索 API 的功能相同,但用于我自己的“地点”)的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Google 地图创建具有位置检测功能的销售区域地图?