javascript - 将焦点设置到谷歌地图上的对象

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

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

我确实有一个“下一个”按钮,当用户单击时,它应该导航到下一个多边形,将其设置为事件状态并填充所需的颜色。

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

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

谢谢

  • 制作 map :

    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. 将多边形特征添加到图层时将其存储在数组中(可以通过 addfeature 回调完成)
  2. 计算多边形的边界:(参见:How to get LatLngBounds of feature polygon geometry in google maps v3?)
  3. 实现“下一个”功能:

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

      arrayWithFeatures.push(arrayWithFeatures.shift());
      

演示:http://jsfiddle.net/doktormolle/anmfe/

关于javascript - 将焦点设置到谷歌地图上的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24439294/

相关文章:

javascript - 数据表和服务器端处理 - 按需加载

android - 在 Google Maps Android API v2 中显示使用 Canvas 制作的 GroundOverlay 的应用程序崩溃

google-maps-api-3 - 在 Google Maps JS API 中禁用 POI 标记的点击行为

javascript - ID为 'org.grails.grails-plugin'的Gradle安装问题

javascript - 使用 casper 登录 Facebook

iphone - Google map 如何确定用户在 map 上的位置?

javascript - Google Maps API V3 - 显示沿路线的进度

javascript - map - 折线根据速度改变颜色

javascript - ASP.NET MVC 运行时 Javascript 语法错误,无错误代码

javascript - 谷歌地图 Api 和 JS 代码不起作用