前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ArcGIS中导入2000系的OSGB数据后发布服务,并在前端调用

ArcGIS中导入2000系的OSGB数据后发布服务,并在前端调用

作者头像
X北辰北
发布2022-02-22 16:00:19
1.2K0
发布2022-02-22 16:00:19
举报

本文在上一篇文章的基础之上,介绍下OSGB的倾斜摄影数据如何导入ArcGIS平台做数据处理、服务发布和前端ArcGIS JS API调用显示的一整套流程。

环境要求

  • ArcGIS Pro 2.2+
  • Portal 10.8或者Online

以上portal版本为自测版本,具体支持的版本号请查看ArcGIS官网。

数据准备

  • OSGB数据(2000坐标系)
  • 一份2000坐标系的shp数据,作为底图(或者用天地图底图,具体使用见昨天的文档)

以上的OSGB数据应该是带有相应元数据信息的xml文件的,单个的OSGB数据在制作slpk时会报错

具体操作步骤

数据处理

1、从ArcGIS Pro 2.2开始,我们就没必要先将OSGB转为multipatch,然后再发布服务。在Pro 2.2往后的版本中,我们直接用Create Integrated Mesh Scene Layer Package这个工具将OSGB转为slpk,然后发布服务即可,具体操作如下。

2、打开ArcGIS Pro,然后配置相应的Online或者Portal连接。

3、在Pro的菜单栏找到分析菜单,然后点击打开工具面板,如下:

img
img
img
img

4、在工具面板的顶部搜索框里输入Create Integrated Mesh Scene Layer Package来查找转换工具,打开转换工具面板,如下图:

img
img

5、然后依次按照下图为此工具面板中配置各个参数:

img
img
img
img
img
img

6、然后点击下方运行按钮来转换数据,最终结果如下:

img
img
img
img
img
img
服务发布

1、打开Portal或者Online登陆后选择Content面板,然后选择左上角的【添加项目】按钮,将我们生成的slpk数据上传,如下:

img
img
img
img
img
img

2、因为我们Portal或者Online提供了上传文件时自动发布服务的功能,所以我们上图中勾选发布服务的选项之后,点击【添加项目】按钮,最终我们的slpk会发布成一个数据服务。

3、发布后的服务我们可以在Portal或者Online的ontent面板中看到,如下:

img
img

4、具体服务地址可以点击相应的服务后,在右下角看到地址,如下:

img
img
前端调用

1、发布后的服务在前端需要调用的话需要用到ArcGIS JS API,所以我们要编写相应的代码,具体的调用代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no" />
    <title>Intro to SceneView - Create a 3D map</title>
    <style>
      html,
      body,
      #viewDiv {
        padding: 0;
        margin: 0;
        height: 100%;
        width: 100%;
      }
    </style>
    <link rel="stylesheet" href="https://js.arcgis.com/4.16/esri/themes/light/main.css" />
    <script src="https://js.arcgis.com/4.16/"></script>
    <script>
      require(["esri/Map", "esri/views/SceneView","esri/Basemap",
      "esri/layers/MapImageLayer","esri/layers/IntegratedMeshLayer"], function(Map, 
      SceneView,Basemap,MapImageLayer,IntegratedMeshLayer) {
        var basemap = new Basemap({
              baseLayers: [
                new MapImageLayer({
                  url: "https://www.arcgisonline.cn/server/rest/services/YNbasemapcgcs2000/MapServer",
                  title: "Basemap"
                })
              ],
              title: "basemap",
              id: "basemap"
        });
    
        var map = new Map({
          basemap: basemap,
          //ground: "world-elevation"
        });
        var view = new SceneView({
          container: "viewDiv", // Reference to the scene div created in step 5
          map: map, // Reference to the map object created before the scene
          zoom: 16, // Sets the initial scale to 1:50,000,000
          //scale: 50000,
          //center: [118.889198,28.915444] // Sets the center point of view with lon/lat
          center: {
                x: 118.889198,
                y: 28.915444,
                spatialReference: {
                    wkid: 4490,
                },
            },
        });
        
        IntegratedMeshLayer = new IntegratedMeshLayer({
            url: "https://www.arcgisonline.cn/server/rest/services/Hosted/result05/SceneServer"
        });
        view.map.add(IntegratedMeshLayer);
        
        console.log(view);
      });
    </script>
  </head>
  <body>
    <div id="viewDiv"></div>
  </body>
</html>

2、以上代码中需要更改的是两处的服务地址,第一个是文章刚开始时提到的关于底图地址,第二个是发布后的倾斜摄影的服务地址,然后将代码保存在html文件中,通过本地服务访问即可,最后效果如下:

img
img
附:
底图制作与发布

1、加载相应的地图数据到Pro中,然后通过分析菜单中的工具按钮,打开投影定义工具,如下:

img
img

2、按照上述配置输入参数后,点击右下方的运行按钮进行坐标定义,如下:

img
img

3、定义完成后,将其添加至Pro,然后在左侧内容面板中的图层目录上鼠标右击选择发布为服务,如下:

img
img

4、然后在右侧的服务发布面板输入相应信息,点击发布即可,如下:

img
img

5、发布成功后,跟上述一样,在Portal或者Online的Content目录下可看到发布的服务。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境要求
  • 数据准备
  • 具体操作步骤
    • 数据处理
      • 服务发布
        • 前端调用
          • 附:
            • 底图制作与发布
        相关产品与服务
        图数据库 KonisGraph
        图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档