如何使用ui-leaflet和Markercluster改变markercluster的颜色?
How to use ui-leaflet and Markercluster to change color of markercluster?
我必须创建一个非默认的 markerCluster 颜色。我已经检查了 API,他们似乎建议在创建后修改 divIcon(我相信,我正在同时学习 Leaflet、ui-leaflet、MarkerCluster)到这样的事情:
var markers = L.markerClusterGroup({
iconCreateFunction: function(cluster) {
return L.divIcon({ html: '<b>' + cluster.getChildCount() + '</b>' });
}
});
https://github.com/Leaflet/Leaflet.markercluster
我填充数据的方式是在创建时,更接近于此:
layers: {
baselayers: {
osm: {
name: 'OpenStreetMap',
type: 'xyz',
url: 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
layerOptions: {
subdomains: ['a', 'b', 'c'],
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
continuousWorld: true
}
},
cycle: {
name: 'OpenCycleMap',
type: 'xyz',
url: 'http://{s}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png',
layerOptions: {
subdomains: ['a', 'b', 'c'],
attribution: '© <a href="http://www.opencyclemap.org/copyright">OpenCycleMap</a> contributors - © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
continuousWorld: true
}
}
},
overlays: {
hillshade: {
name: 'Hillshade Europa',
type: 'wms',
url: 'http://129.206.228.72/cached/hillshade',
visible: true,
layerOptions: {
layers: 'europe_wms:hs_srtm_europa',
format: 'image/png',
opacity: 0.25,
attribution: 'Hillshade layer by GIScience http://www.osm-wms.de',
crs: L.CRS.EPSG900913
}
},
cars: {
name: 'Cars',
type: 'markercluster',
visible: true
}
}
},
markers: {
m1: {
lat: 42.20133,
lng: 2.19110,
layer: 'cars',
message: "I'm a moving car"
},
我从一个类似的(分叉的)网站上偷走了:
https://github.com/tombatossals/angular-leaflet-directive/blob/master/examples/0216-layers-overlays-markercluster-example.html
我试图添加一个带有不同颜色的图标 属性 但无济于事。当多种类型聚集在一起时,我试图改变颜色。任何帮助将不胜感激。
提前致谢。
所以最大的问题是我对如何使用 divIcon 的理解存在缺陷。我假设我需要在实例化后更改颜色,这是不正确的。将代码添加到我的初始服务中是一件简单的事情:
cars: {
name: 'Cars',
type: 'markercluster',
visible: true,
layerOptions:{
iconCreateFunction: function(cluster) {
return L.divIcon({ html: '<b>' +cluster.getChildCount() + '</b>' });
}
}
我没有意识到他们提供的 api 功能实际上只是修改已经存在的对象(更准确地说是更改对象的实例化)。如果要实例化它,只需要在layerOptions
键下添加变量名,然后在API上找到变量即可。
我必须创建一个非默认的 markerCluster 颜色。我已经检查了 API,他们似乎建议在创建后修改 divIcon(我相信,我正在同时学习 Leaflet、ui-leaflet、MarkerCluster)到这样的事情:
var markers = L.markerClusterGroup({
iconCreateFunction: function(cluster) {
return L.divIcon({ html: '<b>' + cluster.getChildCount() + '</b>' });
}
});
https://github.com/Leaflet/Leaflet.markercluster
我填充数据的方式是在创建时,更接近于此:
layers: {
baselayers: {
osm: {
name: 'OpenStreetMap',
type: 'xyz',
url: 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
layerOptions: {
subdomains: ['a', 'b', 'c'],
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
continuousWorld: true
}
},
cycle: {
name: 'OpenCycleMap',
type: 'xyz',
url: 'http://{s}.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png',
layerOptions: {
subdomains: ['a', 'b', 'c'],
attribution: '© <a href="http://www.opencyclemap.org/copyright">OpenCycleMap</a> contributors - © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
continuousWorld: true
}
}
},
overlays: {
hillshade: {
name: 'Hillshade Europa',
type: 'wms',
url: 'http://129.206.228.72/cached/hillshade',
visible: true,
layerOptions: {
layers: 'europe_wms:hs_srtm_europa',
format: 'image/png',
opacity: 0.25,
attribution: 'Hillshade layer by GIScience http://www.osm-wms.de',
crs: L.CRS.EPSG900913
}
},
cars: {
name: 'Cars',
type: 'markercluster',
visible: true
}
}
},
markers: {
m1: {
lat: 42.20133,
lng: 2.19110,
layer: 'cars',
message: "I'm a moving car"
},
我从一个类似的(分叉的)网站上偷走了: https://github.com/tombatossals/angular-leaflet-directive/blob/master/examples/0216-layers-overlays-markercluster-example.html 我试图添加一个带有不同颜色的图标 属性 但无济于事。当多种类型聚集在一起时,我试图改变颜色。任何帮助将不胜感激。
提前致谢。
所以最大的问题是我对如何使用 divIcon 的理解存在缺陷。我假设我需要在实例化后更改颜色,这是不正确的。将代码添加到我的初始服务中是一件简单的事情:
cars: {
name: 'Cars',
type: 'markercluster',
visible: true,
layerOptions:{
iconCreateFunction: function(cluster) {
return L.divIcon({ html: '<b>' +cluster.getChildCount() + '</b>' });
}
}
我没有意识到他们提供的 api 功能实际上只是修改已经存在的对象(更准确地说是更改对象的实例化)。如果要实例化它,只需要在layerOptions
键下添加变量名,然后在API上找到变量即可。