我是靠谱客的博主 顺心红酒,最近开发中收集的这篇文章主要介绍Supermap for Leaflet管线定位项目场景:问题描述原因分析:总结:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

项目场景:

本人做的系统是基于SuperMap for Leaflet 进行的二次开发,在开发过程中需要用到对管点、管线等设施进行定位操作。在网上查询了大量资料都没有符合的,终于机缘巧合下找到了方法。


问题描述

要求:在二维地图上显示的管线(管点等其他设施同理)并进行定位。
前期准备:利用Supermap iDesktop处理好数据后,将其发布为地图服务和数据服务。我利用如下代码获取数据服务中管线的所有数据(这些数据中包含了管线的几何信息)。
从数据服务中获取管线信息代码(.js文件):

export default class DataRequire {

    static getLinesData(){
      //用于存储所有管线信息 
      var szLine = []
      // 将line数据信息修改为对象数组
      var lineJSON = []
      
      var sqlParameter = {
          "datasetNames": ["szPL:Line_2D"],
          "getFeatureMode": "SQL",
          "queryParameter": {
          attributeFilter: 'SMID<1430'
         }
       }
       var queryData = JSON.stringify(sqlParameter)
       $.ajax({
          type: "POST",
          url: 'http://localhost:8090/iserver/services/data-szPL/rest/data/featureResults.rjson?returnContent=true',
          data: queryData,
          async: false,
          success: (result) => {
              szLine = JSON.parse(result)
              // console.log(szLine);
          },
          error: function (msg) {
            console.log(msg)
          }
        })
        for(let i=0;i < szLine.features.length;i++){
          lineJSON.push({
          //管线的中心点坐标
            center:szLine.features[i].geometry.center
          })
        }
       
        return {szLine,lineJSON}
  }

飞行定位功能代码(.js文件):

    //  坐标转换:EPSG:4529转EPSG:4326(WGS84) 及 查询功能中的飞行定位功能
    static flyToPosition(CenterX,CenterY){
        // 坐标转换
        // 参考官网:http://proj4js.org/
        var firstProjection="+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=41500000 +y_0=0 +ellps=GRS80 +units=m +no_defs +type=crs"
        var point = proj4(firstProjection).inverse([CenterX,CenterY])
        var positionLatlng = L.latLng(point);
        // 飞行定位
        this.map.flyTo(positionLatlng)
    }

原因分析:

如下图所示,通过查询数据服务获取的信息中本身就包含有其几何信息,只需要调用leaflet中的flyTo方法即可进行飞行定位。其中数据查询还可以参考超图官网中的查询方法,都可以拿到管线的位置几何信息。

在这里插入图片描述
在这里插入图片描述
(其他的查询方式同理)


总结:

上述代码中提到的重新定义supermap坐标系将会在后续发布

最后

以上就是顺心红酒为你收集整理的Supermap for Leaflet管线定位项目场景:问题描述原因分析:总结:的全部内容,希望文章能够帮你解决Supermap for Leaflet管线定位项目场景:问题描述原因分析:总结:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部