根据属性在传单中设置GeoJson样式

时间:2016-06-18 00:55:59

标签: leaflet geojson

我严厉地陷入了一个我无法解释的错误。我希望你能帮助我。我正在尝试根据leaftlet中的属性设置我的geojson多边形图层,并收到此错误:

Object {type:" FeatureCollection",crs:Object,features:Array [49]}。

这是我的代码:

function getVictimsColor(totalone){
if (totalone > 1000){
    return 'red';
}else if(totalone > 500){
    return 'orange'
}else if(totalone > 250){
    return 'blue'
}else if(totalone > 100){
    return 'white'
}else if(totalone > 50){
    return 'green'
}else if(totalone > 10){
    return 'black'
}else if(totalone > 5){
    return 'yellow'
}


}

 function style(feature) {
    return {
        weight: 2,
        opacity: 1,
        color: 'white',
        dashArray: '3',
        fillOpacity: 0.7,
        fillColor: getVictimsColor(feature.properties.totalone)
        }; 
    }
var map = L.map('map').setView([47.9630, 24.1875], 4);
var layer = L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
attribution: '&copy; <a href="http://openstreetmap.org">OpenStreetMap</a>  
layer.addTo(map);

function addDataToMap(data, map) {
var dataLayer = L.geoJson(
data,
{style:getVictimsColor}
);
dataLayer.addTo(map);
}

$.getJSON("Europe_victims.geojson", function(data) {
console.log(data)
addDataToMap(data, map); 
});

2 个答案:

答案 0 :(得分:0)

&#34;错误&#34;您报告的可能只是console.log(data)

的结果

Leaflet可能不了解如何呈现您的GeoJSON数据,因为您将getVictimsColor函数提供给style构造函数的L.geoJson选项,而不是将其style赋予它功能。

答案 1 :(得分:0)

只是碰到了这个。

在:

function addDataToMap(data, map) {
  var dataLayer = L.geoJson(
    data,
    { style:getVictimsColor }
  );
  dataLayer.addTo(map);
}

style:getVictimsColor更改为style: style

应该工作(?)