Mapbox Choropleth图层映射框geojson不工作

Mapbox Choropleth图层映射框geojson不工作,mapbox,geojson,mapbox-gl,Mapbox,Geojson,Mapbox Gl,我是地图盒的新手。我必须像下面的例子一样填充图 我使用geojson文件作为源文件,但它不起作用 map.on('load', function() { map.addSource('tls_demand', { 'type': 'geojson', 'url': 'http://1xx.2xx.1xx.1xx/xxxx.geojson' }); map.addLayer({ "id": "tls_projection", "type": "fill",

我是地图盒的新手。我必须像下面的例子一样填充图

我使用geojson文件作为源文件,但它不起作用

map.on('load', function() {

map.addSource('tls_demand', {
    'type': 'geojson',
    'url': 'http://1xx.2xx.1xx.1xx/xxxx.geojson'
});
map.addLayer({
    "id": "tls_projection",
    "type": "fill",
    "source": "tls_demand",
    "filter": ["==", "$type", "MultiPolygon"],
    'paint': {
        "line-color": "red",
        'fill-opacity': 0.75
    }
});
})


有人能建议怎么做吗?

我有时间玩这个

这是一个片段,底部还有代码笔

map.onload,函数{ map.addSourcetls_需求{ 类型:geojson, 数据:https://gist.githubusercontent.com/androidfanatic/99de0a21907791fc2d57570df19455f6/raw/9710b3c69f0591bc6ca7730b0b6eebe2349b7571/DeoriaBoundary1.geojson }; map.addLayer{ id:tls_投影, 类型:填充, 资料来源:tls_需求, 过滤器:[==,$type,Polygon], 油漆:{ 填充轮廓颜色:红色, 填充颜色:红色, 填充不透明度:0.2 } }; 我有几个观察结果:

MultiPolygon不是有效的筛选器选项

承载GeoJSON的服务器不允许跨源请求,因此您必须重新承载

GeoJSON不在EPSG:4326中,而EPSG:4326是mapboxgl js支持的唯一坐标系,因此您必须将GeoJSON投影到EPSG:4326中。我用于此,命令是

填充类型的图层必须提供填充颜色绘制特性

要将URL传递给源,您可以说数据:https://domain.tld/url-to-geojson 而不是url属性

您可以在此处看到所有这些操作:

ogr2ogr DeoriaBoundary1.geojson -t_srs "EPSG:4326" DeoriaBoundary.geojson