首页 > 解决方案 > 如何为谷歌地图 setMarkers 函数中的所有图标变量添加统一大小?

问题描述

在我当前的块中,我在哪里实现这行代码?
size: new google.maps.Size(20, 20)
根据我所阅读的内容,您必须在变量中设置大小。但是我不能把那行代码放在任何地方而不破坏他的功能。
如果需要,这是我的示例数组:
["TITLE", "LAT", "LNG", "Z-INDEX", "CATEGORY"]
我当前在地图上放置图标的函数:

function setMarkers(markers) {
   deleteMarkers(); 
var iconBase =
            'http://localhost:8090/HELPERSITE/images/map-categories/';
var icons = {
         Contractor: {
            icon: iconBase + 'Misc..png'  
          },
          'Child Care': {
            icon: iconBase + 'Misc..png'  
          },
          'Misc.': {
            icon: iconBase + 'Misc..png' 
          }
        };
    if (markers){
  for (var i = 0; i < markers.length; i++) {
    var w = markers[i];
    var marker = new google.maps.Marker({
      position: {lat: parseFloat(w[1]), lng: parseFloat(w[2])},
      map: map,
      icon: icons[w[4]].icon(),
      title: w[0],
      zIndex: parseFloat(w[3])
    });
     console.log(icons[w[4]]);
      markerArray.push(marker);
}        
}
}

标签: javascriptgoogle-mapsgoogle-api

解决方案


这是一个简单的修复:

icon: {
       url: icons[w[4]].icon,
       scaledSize: new google.maps.Size(10, 10)
      },

缩放后的大小保持纵横比并且不裁剪。而 size 只是裁剪一个盒子。希望这对其他人有帮助


推荐阅读