如何使用 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 地图搜索框添加到我的自定义地图?

如何使用 Google 地图创建具有位置检测功能的销售区域地图?

Google Maps API 文本搜索位置

如何从 GeoFire 中检索持续更新的位置数据并将其放在 Google 地图上?

用百度地图api,怎么获取当前我的位置

如何在 tableViewCell、Google 地图、Swift 中添加从地图中选择的选项