Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Mapbox GL-添加具有特定id的标记_Javascript_Json_Geojson_Mapbox Gl Js - Fatal编程技术网

Javascript Mapbox GL-添加具有特定id的标记

Javascript Mapbox GL-添加具有特定id的标记,javascript,json,geojson,mapbox-gl-js,Javascript,Json,Geojson,Mapbox Gl Js,我有一个标记数组,我希望每个标记都有一个特定的id,这样我就可以调用每个标记并自己设置动画 我要将它们添加到地图中: map.addSource('markers', { "type": "geojson", "data": geojson }); map.addLayer({ "id": "markers", "type": "symbol", "source":"markers", "layout": { "icon

我有一个标记数组,我希望每个标记都有一个特定的id,这样我就可以调用每个标记并自己设置动画

我要将它们添加到地图中:

map.addSource('markers', {
    "type": "geojson",
     "data": geojson
});

map.addLayer({
    "id": "markers",
     "type": "symbol",
     "source":"markers",
     "layout": {
         "icon-image": "airport-15",
         "text-field": "{title}",
         "text-font": ["Open Sans Semibold", "Arial Unicode MS Bold"],
          "text-offset": [0, 0.6],
          "text-anchor": "top"
       }
});
数据来自geojson,它是从函数中的一个文件填充的,它正在工作:

var geojson = {
    type: 'FeatureCollection',
    features: []
};
每个标记的格式如下:

var marker = {
      type: 'Feature',
       geometry: {
           type: 'Point',
           coordinates: coordinate
       },
       properties: {
            title: key,
            description: '',
       }
 }

基本上,我将所有GeoJSON数据添加到一个我称之为:

markers = {}
然后,我用所有的标记数据填充这个字典,为每个标记提供一个唯一的id作为键。这将省去我使用两个for循环来检查哪个标记已更新,这意味着它在原始数组和更新的标记数组中,并且更容易更新值以完成标记从原始位置到更新位置的动画

geojson.features = Object.values(markers);
map.getSource('markers').setData(geojson);
如果您找到另一种方法来轻松定位GeoJSON数组中的对象,请共享