Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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 单张在负荷图上绘制多边形_Javascript_Leaflet_Polygon_Leaflet Draw - Fatal编程技术网

Javascript 单张在负荷图上绘制多边形

Javascript 单张在负荷图上绘制多边形,javascript,leaflet,polygon,leaflet-draw,Javascript,Leaflet,Polygon,Leaflet Draw,我有这个多边形坐标 let polygon = [ [ 51.40545845031738, 35.706447104954194 ], [ 51.390438079833984, 35.70568044469603 ], [ 51.38288497924805, 35.69689817401091 ] ] 我想在加载贴图时绘制多边形。也可编辑 换句话

我有这个多边形坐标

let polygon = [
    [
        51.40545845031738,
        35.706447104954194
    ],
    [
        51.390438079833984,
        35.70568044469603
    ],
    [
        51.38288497924805,
        35.69689817401091
    ]
]
我想在加载贴图时绘制多边形。也可编辑

换句话说


如何在地图加载后在地图上显示可编辑的多边形。

我用这种方法解决了这个问题

let polygon = [
    [
        51.40545845031738,
        35.706447104954194
    ],
    [
        51.390438079833984,
        35.70568044469603
    ],
    [
        51.38288497924805,
        35.69689817401091
    ]
];

let geojson = {
    "type": "FeatureCollection",
    "features": [{
        "type": "Feature",
        "properties": {},
        "geometry": {
            "type": "Polygon",
            "coordinates": []
        }
    }]
};
let arr = [];
polygon.forEach(function (item, index) {
    arr.push([item[1], item[0]]);
});
geojson.features[0].geometry.coordinates.push(arr);

var drawnItems = new L.FeatureGroup();
var geoJsonGroup = L.geoJson(geojson).addTo(map);
addNonGroupLayers(geoJsonGroup, drawnItems);

// Would benefit from https://github.com/Leaflet/Leaflet/issues/4461
function addNonGroupLayers(sourceLayer, targetGroup) {
    if (sourceLayer instanceof L.LayerGroup) {
        sourceLayer.eachLayer(function (layer) {
            addNonGroupLayers(layer, targetGroup);
        });
    } else {
        targetGroup.addLayer(sourceLayer);
    }
}

你的
arr
数组不就是你的
polygon
数组的副本吗?似乎是一个多余的步骤,执行
forEach
/
推送
循环。我使用的是Angular 8!已实施“”。一切正常。我能够绘制多边形,但当我重新加载页面时,我希望从localStorage加载该多边形(上次创建的)。我正在尝试从组件(ts文件)加载该多边形。我可以稍后对本地存储进行排序。我正在绘制多边形,并通过从组件中安慰它们来获取值(Lat long)。。我想通过ngOnInit()或MapReady从组件中给出值,并在初始加载时绘制多边形。