iclient for leaflet自定义投影分析服务

0 投票
使用版本:iclient-leaflet-9.0.0-742

问题描述:iServer发布的空间分析服务是否支持数据是自定义投影的?
6月 10, 2018 分类:  530次浏览 | 用户: zhanglihong 初出茅庐 (78 分)

1个回答

0 投票
您好,这个你在iserver里做空间分析是否能成功呢?
6月 11, 2018 用户: 李熙y 名扬四海 (4,436 分)

不能,像面积测量,会报错:

  1. {code: 400, errorMsg: "调用 CoordSysTranslator.Forward 发生异常。:points↵不合法的经纬度…ad.java:61) ↵java.lang.Thread.run(Unknown Source)"}

你好,我见API文档,new SuperMap.MeasureParameters(geometry, options)中geometry参数支持SuperMap.Geometry.Polygon格式,但我写的代码如下,

var points =[new SuperMap.Geometry.Point(584834.1666666956,2751694.666664766),
                             new SuperMap.Geometry.Point(587480.0000000328,2704069.6666646586),
                             new SuperMap.Geometry.Point(637750.8333341345,2698777.999997958),
                             new SuperMap.Geometry.Point(645688.3333345731,2738465.4999980377)
                         ],
                           linearRings = new SuperMap.Geometry.LinearRing(points),
                         region = new SuperMap.Geometry.Polygon([linearRings]);
               var areaMeasureParam = new SuperMap.MeasureParameters(region);

var projPolygon = new SuperMap.Geometry.Polygon([projP]);

var areaMeasureParam = new SuperMap.MeasureParameters(projPolygon);

        L.supermap

            .measureService(baseUrl)

            .measureArea(areaMeasureParam, function (serviceResult) {

                var content = "面积: " + serviceResult.result.area + "  平方米";

                polygon.bindPopup(content).openPopup(polygon.getCenter());

            });

}else {

layer.msg("至少绘制三个点!");

}

在iclient-leaflet-9.0.0-742.js中发现params.geometry未定义

没读到这个应该只是方法没走完不是错了,如果这个方法有问题的话浏览器console会直接报的,上面错误截图不是说area那块有问题吗,你console.log(serviceResult);查一下有没有问题。

输出如下:

投影如下:

把发布的地图直接在iserver里for Javascript中用这个工具能得到量算结果吗

你好,不可以

距离量算如下:结果为0

面积量算,没有值。

那就是底层不支持自定义投影坐标系做分析。
...