Mapbox GL JS和GeoJSON作为外部文件

Mapbox GL JS和GeoJSON作为外部文件,mapbox,mapbox-gl-js,mapbox-gl,mapbox-marker,Mapbox,Mapbox Gl Js,Mapbox Gl,Mapbox Marker,我有代码用Mapbox地图设置标记 $(函数(){ mapboxgl.accessToken='pk.###'; var map=new mapboxgl.map({ 容器:“映射全局”, 风格:“…” }); var geojson={ “类型”:“FeatureCollection”, “特点”:[ { “类型”:“功能”, “财产”:{ “标题”:“POI标题” }, “几何学”:{ “类型”:“点”, “坐标”:[0,0] } } ] }; geojson.features.forEac

我有代码用Mapbox地图设置标记

$(函数(){
mapboxgl.accessToken='pk.###';
var map=new mapboxgl.map({
容器:“映射全局”,
风格:“…”
});
var geojson={
“类型”:“FeatureCollection”,
“特点”:[
{
“类型”:“功能”,
“财产”:{
“标题”:“POI标题”
},
“几何学”:{
“类型”:“点”,
“坐标”:[0,0]
}
}
]
};
geojson.features.forEach(函数(标记){
//为每个功能创建一个HTML元素
var el=document.createElement('div');
el.className='marker';
新mapboxgl.标记(el)
.setLngLat(标记、几何、坐标)
.setPopup(新的mapboxgl.Popup()
.setHTML(marker.properties.title))
.addTo(地图);
});
});
而且效果很好。但是我想使用
GeoJSON
作为外部文件:

var geojson='file.geojson';
这里我有一个问题-它不起作用:

TypeError:undefined不是对象(计算“'map.geojson.features.forEach')”

有没有办法将外部
GeoJSON
文件与自定义HTML一起使用
标记?

因为您使用的是Jquery,所以可以使用
getJSON
加载文件:

使用GET HTTP请求从服务器加载JSON编码的数据

参考:

例如:

$.getJSON('file.geojson', function (geojson) {
    geojson.features.forEach(function (marker) {
        // etc
    });
});

由于您使用的是Jquery,因此可以使用
getJSON
加载文件:

使用GET HTTP请求从服务器加载JSON编码的数据

参考:

例如:

$.getJSON('file.geojson', function (geojson) {
    geojson.features.forEach(function (marker) {
        // etc
    });
});

可以使用plain mapbox addSource()加载外部geojson文件

map.on('load',function(){
var url='1〕http://your_geojson_file.com/some_file.geojson';
addSource('source_id',{type:'geojson',data:url});

});
您可以使用plain mapbox addSource()加载外部geojson文件

map.on('load',function(){
var url='1〕http://your_geojson_file.com/some_file.geojson';
addSource('source_id',{type:'geojson',data:url});

});
谢谢,这很有用:)谢谢,这很有用:)