将焦点设置为谷歌地图上的对象

时间:2014-06-26 20:06:43

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

如何在没有用户互动的情况下在谷歌地图上检索和对象。意味着用户不要单击该对象。 我有10个多边形,我希望用户导航到每个多边形,操纵可能的颜色。 没有点击多边形本身。

我确实有一个" next"按钮,当用户点击时,它想要导航到它活动的下一个多边形设置并填充欲望颜色。

多边形存储在json格式的数组中。

我正在使用数据层。我不知道如何实现这一点。我可以单击多边形本身并更改颜色,但我需要在不点击的情况下遍历它们。

由于

  • 制作地图:

    function loadJson(url, style)
    {
      var jsonfile = $.getJSON(url).done(function (data){
         map.data.addGeoJson(data);
         map.data.setStyle(style);
      });
    }
    
  • 更改颜色

    map.data.addListener('click', function(event) {
    mapName.data.overrideStyle(event.feature, currentStyle);
    

    });

WORKING PROTOTYPE

1 个答案:

答案 0 :(得分:1)

在数据层中无法访问已绘制的形状(例如多边形),您只能访问这些特征。

问题:这些功能不能用作数组(然后很容易迭代功能或通过索引选择功能)

可能的解决方案:

  1. 在将多边形要素添加到图层时将其存储在数组中(可以通过addfeature - 回调来完成)
  2. 计算多边形的边界:(见:How to get LatLngBounds of feature polygon geometry in google maps v3?
  3. 实施" next" -feature:

    • 使用map.data.revertStyle()重置上一个所选要素的样式
    • 选择数组中的第一个要素并应用所需的样式,并根据计算出的边界调用map.fitBounds()(步骤2)
    • 将第一个特征放到数组的末尾

      arrayWithFeatures.push(arrayWithFeatures.shift());
      
  4. 演示:http://jsfiddle.net/doktormolle/anmfe/