2016-12-04 77 views
1

我在Mapbox Studio中使用過濾器來爲189多邊形樣式geoJSON文件。我能夠過濾我的數據來創建圖層,但它只識別了我的多邊形中的100個。我做了一些研究,看到實際上Studio只能處理100.我正在使用這種風格將其集成到mapbox.js地圖中(我能夠這樣做),但無法格式化剩餘的89個多邊形,這是因爲過濾器問題。我下載了這張地圖的JSON。我可以手動將剩餘的圖層添加到JSON中嗎?如果是這樣,我將如何將本地JSON文件作爲我的地圖樣式鏈接到我的mapbox.js代碼中?將本地JSON樣式集成到mapbox.js地圖(並在Mapbox中過濾100多個多邊形)

mapbox.js代碼(有缺陷mapbox工作室風格):

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset='utf-8' /> 
    <title></title> 
    <script src='https://api.mapbox.com/mapbox-gl-js/v0.28.0/mapbox-gl.js'></script> 
    <link href='https://api.mapbox.com/mapbox-gl-js/v0.28.0/mapbox-gl.css' rel='stylesheet' /> 
    <style> 
     body { margin:0; padding:0; } 
     .map { position:absolute; top:0; bottom:0; width:100%; } 
    </style> 
</head> 
<body> 

<div id='map' class='map'></div> 

<style> 

.legend { 
    background-color: #d6d6d6; 
    border-radius: 3px; 
    bottom: 30px; 
    box-shadow: 0 1px 2px rgba(0,0,0,0.10); 
    font: 12px/20px 'Helvetica Neue', Arial, Helvetica, sans-serif; 
    padding: 10px; 
    position: absolute; 
    right: 10px; 
    z-index: 1; 
} 

.legend h4 { 
    margin: 0 0 10px; 
} 

.legend div span { 
    border-radius: 50%; 
    display: inline-block; 
    height: 10px; 
    margin-right: 5px; 
    width: 10px; 
} 

</style> 

<div id='map'></div> 

<div id='HVI-legend' class='legend'> 
    <h4>HVI</h4> 
    <div><span style='background-color: #EB6769'></span>1</div> 
    <div><span style='background-color: #F3B3B4'></span>0.5</div> 
    <div><span style='background-color: #FCFCFF'></span>0</div> 
</div> 

<script> 
mapboxgl.accessToken = 'pk.eyJ1Ijoic3RhbWxlcm4iLCJhIjoiY2l3MnkwZ2tnMDEwejJ6anZtM240c2d3byJ9.ZTqhEH-1r0WelPq2n0rshQ'; 
var map = new mapboxgl.Map({ 
    container: 'map', 
    style: 'mapbox://styles/stamlern/ciwa09zej000f2pmrr8lm10ju', 
    center: [-73.949, 40.71], 
    zoom: 10.1 
}); 

</script> 

</body> 
</html> 

回答

0

這聽起來像你想上傳的GeoJSON的文件作爲「數據集」,而不是作爲一個「地形設置」。如果您將其上傳爲瓦片集,並且基於此類型,則會獲得更好的性能(並且不會遇到您描述的限制)。

如果您確實想在本地添加GeoJSON文件,請使用map.addSource