[英]Choropleth map using leaflet not displaying correct style
我在縣一級創建了一張2016年選舉的地圖,如果一個政黨在一個縣中獲得的選票多於另一政黨,則該縣將獲得該政黨的顏色。 所以很明顯,我使用條件語句。 幾乎所有縣都很好,它們都遵守規定,但有些不滿意。 例如,得克薩斯州格雷縣(Gray County)的抽樣率僅約為9%,而實際稅率僅為88%。 出於某種原因,地圖以藍色顯示該縣,而不是gop配色方案:
您可以在這里找到地圖: https : //sushirittoman.github.io/maps/counties_project/index.html
這是我為地圖編寫的代碼,大量借鑒了Choropleth地圖的傳單教程( https://leafletjs.com/examples/choropleth/ ):
//Red palette for Gop
function getColorGop(v) {
return v > 70 ? '#800026' :
v > 50 ? '#BD0026' :
v > 40 ? '#E31A1C' :
v > 30 ? '#FC4E2A' :
v > 20 ? '#FD8D3C' :
v > 10 ? '#FEB24C' :
'#FED976' ;
}
//Blue palette for Dems
function getColorDem(v) {
return v > 70 ? '#08589e':
v > 50 ? '#2b8cbe':
v > 40 ? '#4eb3d3':
v > 30 ? '#7bccc4':
v > 20 ? '#a8ddb5':
v > 10 ? '#ccebc5':
'#e0f3db';
}
//Ultimate style, where we insert the conditional statement
function style(feature) {
if ([feature.properties.per_dem * 100] > [feature.properties.per_gop * 100]) {
return {
fillColor: getColorDem(feature.properties.per_dem * 100),
weight: 1,
opacity: 1,
color: 'black',
fillOpacity: 1
}
}
else {
return {
fillColor: getColorGop(feature.properties.per_gop * 100),
weight: 1,
opacity: 1,
color: 'black',
fillOpacity: 1
};
}
我感到難過。 我希望這可以成為我的第一個官方非教程網絡地圖。 這個問題似乎是反常的。 我非常感謝您的想法。
您的比較寫為
[feature.properties.per_dem * 100] > [feature.properties.per_gop * 100]
[...]
Javascript是用於聲明數組的語法,這意味着您正在嘗試確定數組是否大於另一個數組,而這可能不是您想要的(鑒於JS中的類型轉換如何工作,可以預測結果可能很棘手)。
嘗試
if (feature.properties.per_dem * 100 > feature.properties.per_gop * 100)
或( +
可以將geoJSON中的字符串轉換為數字)
if (+feature.properties.per_dem > +feature.properties.per_gop)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.