arcgis js api FeatureLayer加载时返回数据带*问题

接着这一问题衍生出来的问题

arcgis的MapServer服务查询出来的结果geometry坐标点带*的问题-CSDN博客

个人感觉像是server版本的问题,具体不清楚,pg数据库里面的shape点集合坐标点的精度是8,但是server服务查出来的默认都十几位。所以存在一个精度转换的问题,原来其他的server服务都没有出现过,唯独某个项目总是有*号,不知道大家有没有遇到过。

上面我的博客解决了查询的问题,但是用FeatureLayer类加载服务的时候有报错了,也不是报错就是不渲染地图,在返回结果中看到结果是这样:

arcgis js api FeatureLayer加载时返回数据带*问题_第1张图片

正确的应该是这样:

arcgis js api FeatureLayer加载时返回数据带*问题_第2张图片

原因FeatureLayer是矢量渲染的,也是走的查询接口,返会结果有特殊字符,地图肯定无法渲染。查了一下,果真有“*”。

解决只能也从精度上解决,因为版本问题太难找了。查询FeatureLayer属性,并没有像Query接口的精度参数geometryPrecision,直接设置又不起作用。但是arcgis不至于这么弱吧,一个属性一个属性挨着看,发现一个非常好用的属性customParameters,这里面可以拼接你自己想要的参数:

arcgis js api FeatureLayer加载时返回数据带*问题_第3张图片

果真强者还是强者,怎么可能考虑不到呢。加上之后问题完美解决。

       new FeatureLayer( 
         url: "",
         customParameters: {
             geometryPrecision: 8, //此处解决数据转换精度 的问题
         }
       }

你可能感兴趣的:(1024程序员节)