我正在向地图添加标记,当我最初添加标记时,这些标记很小。然而,我然后循环它们并将它们中的一些更改为另一个具有相同大小但颜色不同的标记:
HTML
<div class="row">
<div class="small-6 columns">
<select id="state-select" class="">
<option value="">SELECT A STATE</option>
<option value="OH">Ohio</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="MO">Missouri</option>
<option value="MI">Michigan</option>
</select>
</div>
</div>
<div id="map-canvas"></div>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places" type="text/javascript"></script>
JS:
$.each(stateMarkerArr, function(index, thisStateMarker) {
if (thisStateMarker.state == stateCode) {
thisStateMarker.setIcon('/img/example_img.png');
bounds.extend(thisStateMarker.getPosition());
} else {
thisStateMarker.setIcon('/img/example_img2.png');
}
});
然而,标记的绘制尺寸较大:
如何在使用setIcon
功能时动态设置标记的大小,以便我可以使这两个标记的大小相同?
我正在设置原始点:
var icon = {
url: '/img/example_img.png',
scaledSize: new google.maps.Size(28,50)
}
var marker = new google.maps.Marker({
position: currLatlng,
map: map,
title: thisLocation.Store,
state: currentState,
icon: icon
});
然后尝试使用以下方式设置点:
$.each(stateMarkerArr, function(index, thisStateMarker) {
if (thisStateMarker.state == stateCode) {
var icon = {
url: '/img/example_img.png',
scaledSize: new google.maps.Size(28,50)
}
thisStateMarker.setIcon(icon);
bounds.extend(thisStateMarker.getPosition());
} else {
var icon = {
url: '/img/example_img2.png',
scaledSize: new google.maps.Size(28,50)
}
thisStateMarker.setIcon(icon);
}
});
答案 0 :(得分:6)
您可以使用size
对象的scaledSize
或google.maps.Icon
属性。请参阅the Docs和this example:
var icon = {url:'/img/example_img.png', size: new google.maps.Size(20, 32)};
thisStateMarker.setIcon(icon);
答案 1 :(得分:0)
这是一项付费功能。您需要与Google联系,并询问他们需要多少费用;)