Google Maps - Places API可以使用标记返回多个结果?

时间:2014-10-30 06:03:27

标签: javascript google-maps google-places-api google-places

我有什么办法可以使用Google Places API执行以下操作吗?

  • 搜索多个地方(耐克商店+麦当劳)并将它们放在地图上,每个结果都有自定义图标标记?即:Nike商店的耐克标志和Mcdonalds" m"麦当劳商店的象征?像这样......

Quick example image - 无法上传,因为我没有足够的声誉。

我曾尝试使用maps.google.com进行多地点搜索,但是在中间使用管道最多需要2个地方。

任何人都可以在这里分享一个例子或jsfiddle如何使用自定义图标标记来解决上述问题吗?

我无法看到有关此问题的任何文档。

谢谢。

//多个位置
当我使用lat,lng作为数据数组传入时,我没有问题,但是我不确定如何做以上两件事 - 在数组中放入2个位置(没有lat, lng)并为这两个地方的每个结果提供不同的自定义标记图标。每个地方应输出100+个结果并在地图上绘制。

function initialize() {
  var mapOptions = {
    zoom: 10,
    center: new google.maps.LatLng(-33.9, 151.2)
  }
  var map = new google.maps.Map(document.getElementById('map-canvas'),
                                mapOptions);

  setMarkers(map, beaches);
}

//I need to do this for Places by inputting Place names in the array like "Nike", "Mcdonalds" where I don't have all the latitude and longitudes for every result.. yet
var beaches = [
  ['Bondi Beach', -33.890542, 151.274856, 4],
  ['Coogee Beach', -33.923036, 151.259052, 5],
  ['Cronulla Beach', -34.028249, 151.157507, 3],
  ['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
  ['Maroubra Beach', -33.950198, 151.259302, 1]
];

function setMarkers(map, locations) {
  // Add markers to the map (wondering how I can set different marker icons for each Places data set in the array above?
  var image = {
    url: 'images/beachflag.png',
    size: new google.maps.Size(20, 32),
    origin: new google.maps.Point(0,0),
    anchor: new google.maps.Point(0, 32)
  };
  var shape = {
      coords: [1, 1, 1, 20, 18, 20, 18 , 1],
      type: 'poly'
  };
  for (var i = 0; i < locations.length; i++) {
    var beach = locations[i];
    var myLatLng = new google.maps.LatLng(beach[1], beach[2]);
    var marker = new google.maps.Marker({
        position: myLatLng,
        map: map,
        icon: image,
        shape: shape,
        title: beach[0],
        zIndex: beach[3]
    });
  }
}

google.maps.event.addDomListener(window, 'load', initialize);

0 个答案:

没有答案