嵌套类别的Google地图标记群集?

时间:2017-12-01 13:51:59

标签: javascript google-maps-api-3

假设我有一系列这样的标记:

[{id:1, label:'Country1', parentId:null},
{id:2, label:'Country2', parentId:null},
{id:3, label:'City1', parentId:2},
{id:4, label:'City2', parentId:2},
{id:5, label:'House1', parentId:4},
{id:6, label:'House2', parentId:4}]

每个标记都有lat和lng坐标。 问题是usnig标准标记簇,由lat和lng位置组标记。 我基本上不想让他们感到困惑,而是根据当前的缩放级别或类似的东西对它们进行分类。

这是否可以做到?

Lats说当前的地图视图是全世界的。在此缩放时,我想只显示国家1和2等顶级标记。当我放大时,我想看到城市1和2,但不是国家1和2.这应该是无限级别的深度。

因此每个级别都应具有显示的最大和最小缩放级别?

请给我一些选择。

这样做的目的是在地图上显示组织资产。此资产嵌套在类似城市>的类别中建筑物>地板>资产...

1 个答案:

答案 0 :(得分:1)

您可以在缩放时创建事件侦听器。根据缩放级别,您可以使用setVisibile属性来显示/隐藏

例如:

/* Change markers on zoom */
google.maps.event.addListener(map, 'zoom_changed', function() {
    var zoom = map.getZoom();
    // iterate over markers and call setVisible
    for (i = 0; i < locations.length; i++) {
        markers[i].setVisible(zoom <= 15);
    }
});