如何使用Google地图搜索我自己的位置数据(与Places搜索API功能相同,但对于我自己的“地点”)

时间:2012-02-03 23:28:25

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

请参阅相关问题: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 个答案:

答案 0 :(得分:8)

{@ 3}}已被弃用,因此您应该考虑转移到Local Search API

在任何一种情况下,您只需查询(搜索或)Places API,从结果中提取LatLng并将标记放在地图上。

我不确定你对自定义标记的意思,我想(a)使用每个结果自己的图标作为标记的图标或(b)让用户在中搜索您的数据(标记),而不是Google的本地/地方。

(a)Places API有点容易。在Places Library示例中,您只需向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)将是一个不同的故事,如place-search.html