首页 / 浏览问题 / WebGIS / 问题详情
超图leaflet缓冲区查询一直出错
9EXP 2021年04月19日
 bufferAnalystProcess();


        function bufferAnalystProcess() {
            dsBufferAnalystService = L.supermap.spatialAnalystService(serviceUrl);
            dsBufferAnalystParameters = new SuperMap.DatasetBufferAnalystParameters({
                dataset: "weixiandian@shixiditu",
                filterQueryParameter: new SuperMap.FilterParameter({
                    attributeFilter: "SmUserID = 0"
                }),
                bufferSetting: new SuperMap.BufferSetting({
                    endType: SuperMap.BufferEndType.ROUND,
                    leftDistance: {
                        value: 50
                    },
                    semicircleLineSegment: 10
                })
            });
            dsBufferAnalystService.bufferAnalysis(dsBufferAnalystParameters, function(serviceResult) {
                var result = serviceResult.result;
                resultLayer = L.geoJSON(result.recordset.features, {
                    color: "red"
                }).addTo(map);
                //查询

                queryService = L.supermap.queryService(baseurl);
                queryByGeometryParameters = new SuperMap.QueryByGeometryParameters({
                    queryParams: [new SuperMap.FilterParameter({
                        name: "student@shixiditu"
                    })],
                    geometry: resultLayer,
                    spatialQueryMode: SuperMap.SpatialQueryMode.INTERSECT
                });

                queryService.queryByGeometry(queryByGeometryParameters, function(serviceResult) {
                    var result = serviceResult.result;
                    resultLayer1 = L.geoJSON(result.recordsets[0].features).addTo(map);
                });
            });
        }

我是用了示例代码里的数据集缓冲区分析构建的缓冲区,几何对象缓冲区分析进行的查询

结果一直出错

1个回答

你好,看代码是像你下面的地图几何查询引起导致引起的上面的上面的缓冲区分析的结果出现报错;解决方案:一个是对缓冲区分析的结果进行判断,最好是对你下面的几何查询参数geometry进行修改(PS;该参数点类型可以是:SuperMap.Geometry.Point|L.Marker|L.CircleMarker|L.Circle|L.GeoJSON|ol.geom.Point|ol.format.GeoJSON
线类型可以是:SuperMap.Geometry.LineString|SuperMap.Geometry.LinearRing|L.Polyline|L.GeoJSON|ol.geom.LineString|ol.format.GeoJSON
面类型可以是:SuperMap.Geometry.Polygon|L.Polygon|L.GeoJSON|ol.geom.Polygon|ol.format.GeoJSON)。

865EXP 2021年04月19日
请问如何修改这个geometry参数,我是根据图层中一个点集建立的缓冲区。

resultLayer = L.geoJSON(result.recordset.features, {

                    color: "red"

                }).addTo(map);

这是将缓冲区结果添加到图层。我geometry参数直接用的这个resultLayer 应该改成什么呢
...