javascript - Google Places API 显示学校和商店

标签 javascript api google-maps maps

使用 Google Maps API 和地点库,我可以使用推荐的方法显示附近的学校 here .

var map;
var infowindow;

function initMap() {
  var pyrmont = {lat: -33.867, lng: 151.195};

  map = new google.maps.Map(document.getElementById('map'), {
    center: pyrmont,
    zoom: 15
  });

  infowindow = new google.maps.InfoWindow();
  var service = new google.maps.places.PlacesService(map);
  service.nearbySearch({
    location: pyrmont,
    radius: 500,
    type: ['store']
  }, callback);
}

function callback(results, status) {
  if (status === google.maps.places.PlacesServiceStatus.OK) {
    for (var i = 0; i < results.length; i++) {
      createMarker(results[i]);
    }
  }
}

function createMarker(place) {
  var placeLoc = place.geometry.location;
  var marker = new google.maps.Marker({
    map: map,
    position: place.geometry.location
  });

  google.maps.event.addListener(marker, 'click', function() {
    infowindow.setContent(place.name);
    infowindow.open(map, this);
  });
}

这是一个工作 fiddle :https://jsfiddle.net/api/post/library/pure/

问题是,如果我还想显示附近的商店和学校,每个人似乎都建议简单地这样做:

type: ['store', 'school']

虽然这在技术上可行,但问题是 map 只是显示了一堆无意义的默认标记,无法知道它是什么。

所以我的问题是:如何更改学校和商店的图标?理想情况下,我会为每种不同类型显示不同的图标。

最佳答案

这与在常规 map 中添加自定义标记没有什么不同。唯一的问题是您需要为每个 type 单独进行 api 调用。所以即使 type: ['store', 'school '] 可以工作,您会得到结果,但 结果 中没有类型说明符来判断它是学校还是商店。此外,您还需要创建它们单独的回调来设置它们单独的图标

  function createMarker(place) {
    var placeLoc = place.geometry.location;
    var marker = new google.maps.Marker({
      icon:"http://example.com/icon.png", //<-- only this line is enough for icon
      map: map,
      position: place.geometry.location
    });

浏览this为了更好地理解

此外,每个结果都会有一个默认图标(作为 icon 属性),也可以使用

var marker = new google.maps.Marker({
      icon:place.icon,
      map: map,
      position: place.geometry.location
});

关于javascript - Google Places API 显示学校和商店,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40582979/

相关文章:

jquery - Google map 搜索框 APi,初始加载后搜索框不显示

javascript - 谷歌地图标记事件 'dragend' 问题

ios - Google Map SDK 使用标记时使用的内存量不合理

javascript - knockout JS : Subscribe inner observable of observableArray entry

regex - 插入式、可移植的解析

api - 搜索 API - HTTP 查询参数格式

javascript - Google Contact API 错误 : Request via script load timed out. 可能原因:Feed URL 不正确;提要需要身份验证

javascript - WebRTC 有多少个 channel 以及使用哪些传输方式?

javascript - jQuery 正则表达式匹配返回空字符串

javascript - 动态设置jquery数据表列的数据源