Javascript 设置geojson样式的问题

Javascript 设置geojson样式的问题,javascript,leaflet,geojson,Javascript,Leaflet,Geojson,所以我想使用fillcolor从geojson定义样式函数(用于我的点)依赖于一个atribute-feature.properties.Nab(意思是宗教)。我只找到了多边形或多段线的示例。我不知道问题出在哪里。这是我的第一个问题,所以如果我问一些琐碎的问题,不要杀了我:) 在对象GeoJSonMarkerOptions 1中,您无权访问该功能。它是专门用于为标记指定默认样式的对象。要为每个标记分配不同的样式,应该为L.geoJSON的style参数提供一个函数 像这样的方法应该会奏效: v

所以我想使用fillcolor从geojson定义样式函数(用于我的点)依赖于一个atribute-feature.properties.Nab(意思是宗教)。我只找到了多边形或多段线的示例。我不知道问题出在哪里。这是我的第一个问题,所以如果我问一些琐碎的问题,不要杀了我:)




在对象GeoJSonMarkerOptions 1中,您无权访问该功能。它是专门用于为标记指定默认样式的对象。要为每个标记分配不同的样式,应该为L.geoJSON的style参数提供一个函数

像这样的方法应该会奏效:

var geojsonMarkerOptions1 = {
    radius: 7,
    fillColor: "grey",
    color: "red",
    weight: 1,
    opacity: 1,
    fillOpacity: 0.8
};

function getColor (feature) {
         switch (feature.properties.Nab) {
         case 'Katolici' : return {fillColor: "blue"};
         case 'Protestanti' : return {fillColor: "red"};
}
};

L.geoJson(sidla, {
 pointToLayer: function (feature, latlng) {
  return L.circleMarker(latlng, geojsonMarkerOptions1);
 },
 style: getColor
}).addTo(map);

试着用你正在使用的库标记问题。本案传单。你也可以使用这些问题标记填充灰色,所以看起来getColor函数不起作用我的错,我编辑帖子,你应该返回fillColor,而不是fillcolorNice。如果答案解决了您的问题,请将其标记为已接受
//my data:

 var sidla ={
"type": "FeatureCollection",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },

"features": [
{ "type": "Feature", "properties": { "id": 3, "Nazov": "Lipt_Jan", "Nab": "Katolici", "Nar": "Slovaci" }, "geometry": { "type": "Point", "coordinates": [ 19.677321608721062, 49.049820448418181 ] } },
{ "type": "Feature", "properties": { "id": 2, "Nazov": "Lipt_PETER", "Nab": "Katolici", "Nar": "Nemci" }, "geometry": { "type": "Point", "coordinates": [ 19.733272790197596, 49.053442098858454 ] } },
{ "type": "Feature", "properties": { "id": 1, "Nazov": "Lipt_hradok", "Nab": "Protestanti", "Nar": "Slovaci" }, "geometry": { "type": "Point", "coordinates": [ 19.725950783732767, 49.037323729155595 ] } }
]
}
var geojsonMarkerOptions1 = {
    radius: 7,
    fillColor: "grey",
    color: "red",
    weight: 1,
    opacity: 1,
    fillOpacity: 0.8
};

function getColor (feature) {
         switch (feature.properties.Nab) {
         case 'Katolici' : return {fillColor: "blue"};
         case 'Protestanti' : return {fillColor: "red"};
}
};

L.geoJson(sidla, {
 pointToLayer: function (feature, latlng) {
  return L.circleMarker(latlng, geojsonMarkerOptions1);
 },
 style: getColor
}).addTo(map);