我有一张传单图,我想为每个“功能”分配颜色。 要素的数量可以根据更改的geojson数据而有所不同。 我猜有某种算法可以做到这一点。

这是代码:(在每个功能上,我想将颜色设置为与给定颜色不同的颜色,因为数据没有颜色)

var geomap = L.geoJson(geojson, {
            //TODO: change the colors to be randomly separated and updated based on the # of features
            //TODO: Should change the feature properties to be the population and zone number -- show this in the pop-up instead of the "description"
            style: function (feature) {
                return {color: feature.properties.color};
            },
            onEachFeature: function (feature, layer) {
                layer.bindPopup(feature.properties.zone);
            }
        });

因此,如果我有5或100个功能,则我希望每个功能都有不同的颜色。 有任何提示或算法吗? 这显然是在JavaScript中。

===============>>#1 票数:0

一个用于生成大量随机颜色的简单工具是https://github.com/davidmerfield/randomColor 你可以像这样使用它

randomColor({
   count: 10,
   hue: 'green'
});

如果您想更好地控制颜色生成, Chroma.js可能是您更好的选择。 我建议针对您描述的用例使用某些Color Brewer分类量表。

  ask by napkinsterror translate from so

未解决问题?本站智能推荐:

1回复

Leaflet Realtime GeoJSON动态标记颜色更改

我有一个用Leaflet构建的地图,该地图使用Leaflet-Realtime插件和Leaflet-awesome-numbered-marker插件显示来自GeoJSON 的标记 。 但是我注意到标记颜色不会动态更改,但是如果我重新加载页面,它会更改。 到目前为止的代码如下: 在f
1回复

如何从geojson设置传单标记的颜色

我有一个问题(出乎意料)关于传单中的样式标记。 我有一张地图,上面列出了geojson的一些地震( http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.geojson )。 问题是我想在geojson中设置mag属
2回复

传单-打开弹出窗口时更改折线的颜色

这就是我所拥有的。 当我将鼠标指针悬停在折线上方时,它会更改颜色。 打开弹出窗口时,如何保持折线的颜色变化? 例: 折线默认为黑色 它变成蓝色,而我将光标悬停在它上面 当我单击多段线时,弹出窗口打开并且多段线保持蓝色 当我关闭弹出窗口时,折线的颜
1回复

GeoJson渲染正确,但没有要求的颜色

我有以下方法“ ajax_geojson”,它会生成geo json: javascript使用jQuery呈现此代码: 虽然标记是根据要求在地图上精确显示的,但颜色似乎没有任何作用(#f80530为红色) 我的问题:是否需要在layer.bindPopup下的javasc
1回复

选择传单标记

我有来自Json文件的数据,并使用markerClusterGroup基于此Json文件创建了一个图层。 我正在尝试这样做: 1-根据xson.json中某些Json功能(“ temperatura”,“ salinidade”,“ corrente”,“ profundidade”和“
1回复

Leaflet choropleth-除非悬停,否则不会显示geoJSON样式颜色

我正在使用geoJSON基础层和Leaflet.js开发交互式的十字形地图,并使用从Socrata API端点提取的JSON数据对多边形进行符号化。 它基于此处发布的Leaflet.js choropleth示例。 我为一个问题感到困惑-当我使用最初属于JSON数据(例如pop)的属性为
1回复

如何根据传单中的属性更改标记的颜色?

我有上面的地图,标记具有属性“ rastvalues”。 我想基于'rastvalues'值更改标记颜色。下面是我的javascript代码 我有rastvalues = 3,rastvalues = 9,rastvalues = 12如何为这三个值赋予不同的颜色?
1回复

选择后放大地图结果

我有多个选择,一个取决于另一个的结果,最后我需要它来放大搜索和找到的区域。 但是,它不起作用。 源代码在这里: https://github.com/eltonsantos/leaflet-tests/blob/master/teste3/index.html 我尝试过
1回复

如何使用javascript中的API调用结果动态构建geoJSON

我有一个要从中调用的API,它按如下方式返回UK坐标系坐标对: 我已经清理了数据,并使用以下代码将其转换为与传单兼容的坐标: 当我在这里尝试代码时: 该代码似乎不像以前的代码块那样遍历lonArray或latArray。 控制台记录了转换后的坐标对的每个值,但是将坐标值
2回复

传单geojson样式功能仅提供颜色1 geojson功能

我需要对从geojson文件提取的每个功能进行不同的样式设置。 但是,此匿名样式功能仅更改遇到的第一个功能的样式并停止。 我是新来的传单。 看过几个演示,但找不到为什么此匿名样式功能仅更改第一个功能的样式而不更改其余功能的原因? getTableData函数返回页面加载时生成的表的颜色。