当前位置: 首页 > 知识库问答 >
问题:

谷歌地图层点击更改样式多边形

百里文景
2023-03-14

我正在使用geojson数据处理Google地图中的图层。

我现在有一个有四个不同多边形的图层,当你点击它们时,它们会从灰色变成绿色。但是当我再次点击时,它不会变回灰色,这就是点击功能的目的。

map.data.setStyle(function(feature) {
  var color;
    if (feature.getProperty('isColorful')) {
      color = '#009900';
    }else{
      color: 'grey';
    }
    return ({
      fillColor: color,
      strokeColor: color,
      strokeWeight: 2
    });
});

在我的情况下,它适用于我的编辑器,https://embed.plnkr.co/hi4MtjO8f0PN6rCW70rE/。这是完整的代码段。

我修好了!!我更改了几行的位置,并将其设置为false或true

map.data.setStyle(function(feature) {
var color;
if (feature.getProperty('isColorful')) {
  feature.setProperty('isColorful', false);
  color = '#009900';
}else{
  color: 'grey';
}
return /** @type {google.maps.Data.StyleOptions} */({
  fillColor: color,
  strokeColor: color,
  strokeWeight: 2
});
});

map.data.addListener('click', function(event) {
var name = event.feature.getProperty('name'); 
var index = vm.areas.indexOf(name);
  if(index >= 0){
    vm.areas.splice(index,1);
    event.feature.setProperty('isColorful', false);
  } else{
    vm.areas.push(name);
    event.feature.setProperty('isColorful', true);
  }
  $scope.$apply();
});

共有1个答案

包嘉懿
2023-03-14

你也应该改变你的其他子句中的isColful属性,否则你总是错误的

map.data.setStyle(function(feature) {
var color;

    if (feature.getProperty('isColorful')) {
      feature.setProperty('isColorful', false);
      color = '#009900';
    }else{
      feature.setProperty('isColorful', true);
      color: 'grey';
    }
 类似资料:
  • 我有一个谷歌地图,我使用addGeoJson将几何数据*加载到数据层。在我尝试绑定多边形上的事件以更改不透明设置之前,一切都正常。 *我从OSM检索城市边界以绘制多边形,我认为我的json对象格式良好,我以谷歌为参考:https://storage.googleapis.com/mapsdevsite/json/google.json 只要我点击一个多边形(其中任何一个),它似乎会复制我周围的任何

  • 我想用多边形类和一组lat/lng坐标在谷歌地图上画一个城区区域。 OpenStreetMap为我提供了所需的所有数据——如果我键入一些地区名称,我可以获得OSM XML格式的有用数据,例如拉脱维亚里加“Vecmilgravis”地区的OSM绘制多边形,以及OSM XML格式的数据。 问题是所有这些节点都是按某种奇怪的顺序排序的,因此如果我只提取所有和对,并为Google Maps多边形类创建一个

  • 您好,我正在使用谷歌地图api(JavaScript)构建一个交互式世界地图。在我遇到这个问题之前,一切都很顺利。我用多边形来显示一个国家的轮廓。单击这些多边形时,会触发显示国家信息的模式。这一直有效,直到我开始使用“数据层:地震数据”。我使用的不是地震数据,而是我所在公司的销售信息。因此,如果我们的大部分客户来自荷兰,那么分配给荷兰的数据层将非常大。问题是,由于数据层,这些国家不再可以点击。我不

  • 我想实现喜欢用户可以从我们的应用程序在谷歌地图绘制一个区域。然后当他回来的时候,然后应该加载他/她以前画的数据。 我用了两种方法。一是,, > 使用javascript在googlemap中绘制多边形 https://developers.google.com/maps/documentation/javascript/drawinglayer 使用谷歌地图api数据层<代码>http://jsf

  • 我对类似的http://wiki.openstreetmap.org/wiki/Nominatim 即,为了能够提出请求并获得某种多边形坐标: “geojson:{“类型”:“多边形”,“坐标”:[[[-87.464761,44.600998],-87.459755,44.599569],-87.459745,44.601012],-87.463143,44.601],-87.464761,44.

  • 我需要一些帮助来绘制我正在绘制的地图。地图并不特别复杂,因为我是一个初学者,我有一堆带有信息窗口的标记(完成后还会有更多标记),单击标记或选择页面HTML端下拉菜单的相应项时可以打开这些标记。 当信息窗口打开时(在HTML菜单中单击或选择),我想做但自己找不到的是在地图上自动居中标记。我假设有某种函数可以分配给click或infowindow打开事件,但无法确定是哪种函数以及如何实现它。 我的代码