如何通过多次购买设置标记的大小?

时间:2016-09-13 07:52:18

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

在我建立的电子商务系统中,我想使用google maps api来显示购买的来源。我希望标记形状为圆形,我希望该圆形的大小取决于从该特定城市购买的数量。假设有来自纽约的100份订单和来自波士顿的200份订单,​​波士顿的圈子将是规模的两倍。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您的标记图标可以是一个符号(SVG路径),因此您可以根据自己的需要进行缩放。

以下示例每次向地图添加符号时都会对符号进行放大。您可以轻松地将其重用于您的用例。

var map;
var polyLine;
var polyOptions;
var iconSize = 0.5;

function initialize() {

    var mapOptions = {
        zoom: 5,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        center: new google.maps.LatLng(0,0)
    };

    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

    google.maps.event.addListener(map, 'click', function(event) {

        addPoint(event);
    });
}

function addPoint(event) {

    var icon = {

        path: "M-20,0a20,20 0 1,0 40,0a20,20 0 1,0 -40,0",
        fillColor: '#FF0000',
        fillOpacity: .6,
        anchor: new google.maps.Point(0,0),
        strokeWeight: 0,
        scale: iconSize
    }

    var marker = new google.maps.Marker({
        position: event.latLng,
        map: map,
        draggable: false,
        icon: icon,
        zIndex : -20
    });

    map.panTo(event.latLng);

    iconSize += .1;
}

initialize();

JSFiddle demo