首页 / 浏览问题 / WebGIS / 问题详情
超图FAQ:使用官网iclient-leaflet计算面积报这个错怎么解决?
64,468EXP 2025年05月26日

使用官网iclient-leaflet计算面积报这个错怎么解决?

1个回答

【问题原因】提供的 GeoJSON 数据中包含多个重复的地物,measureService无法正确处理 【解决办法】先计算geojson中的单个feature 最后再合并计算总面积即可,代码可参考: // 转换成geojson数据后添加到地图 var geojsonLayer = L.geoJSON(JSON.parse(json), { color: "red" }).addTo(map); // 计算单个feature的面积 function calculateFeatureArea(feature, callback) { var measureParam = new L.supermap.MeasureParameters(L.geoJSON(feature)); new L.supermap.MeasureService(url) .measureArea(measureParam) .then(function (serviceResult) { callback(serviceResult.result.area); }); } // 计算总的feature的面积 var features = JSON.parse(json).features; var totalArea = 0; var completedRequests = 0; features.forEach(function (feature, index) { calculateFeatureArea(feature, function (area) { totalArea += area; completedRequests++; if (completedRequests === features.length) { // 展示 widgets.alert.showAlert( "总面积: " + totalArea.toFixed(2) + " 米", true ); } }); });
64,468EXP 2025年05月26日
...