【问题标题】:Google Places API show schools and storesGoogle Places API 显示学校和商店
【发布时间】:2016-11-14 06:26:13
【问题描述】:

将 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);
  });
}

这是一个有效的小提琴:https://jsfiddle.net/api/post/library/pure/

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

type: ['store', 'school']

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

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

【问题讨论】:

    标签: javascript api google-maps maps


    【解决方案1】:

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

      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
    });
    

    【讨论】:

      猜你喜欢
      • 2015-01-07
      • 2020-06-06
      • 2015-06-26
      • 1970-01-01
      • 2016-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多