【问题标题】:How to use Google Maps to search my own location data (Same functionality as Places search API, but for my own "places")如何使用 Google 地图搜索我自己的位置数据(与 Places 搜索 API 的功能相同,但用于我自己的“地点”)
【发布时间】: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 地方信息),如何允许用户查找与地址或他/她当前位置相关的自定义地点附近的列表?

【问题讨论】:

    标签: google-maps google-maps-api-3 google-maps-markers google-local-search


    【解决方案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 这样的服务器端运行时语言,它就是您可以为点+半径搜索执行的最简单的操作。
    猜你喜欢
    • 2017-09-10
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多