专栏首页ArcGIS JS API开发ArcGIS中导入2000系的OSGB数据后发布服务,并在前端调用

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

本文在上一篇文章的基础之上,介绍下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的菜单栏找到分析菜单,然后点击打开工具面板,如下:

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

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

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

服务发布

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

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

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

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

前端调用

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文件中,通过本地服务访问即可,最后效果如下:

附:

底图制作与发布

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

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

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

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

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

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:http://www.xbeichenbei.com/复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • ArcGIS中使用带审图号的地图

    政府部门提供的带审图号的标准地图是正式用图时的必备地图(尤其涉及国界)。本文介绍了如何将下载的标准地图制作为ArcGIS中可对位坐标的版本,同时分享了制作的sh...

    Sidchen
  • ArcGIS API for JavaScript开发入门必读

    ArcGIS API for JavaScript开发必读的一篇入门文档,文章中对ArcGIS API for JavaScript做了简单的介绍,包括学习路线...

    X北辰北
  • WebGIS学习资源推荐(包含学习路线、软件和数据资源推荐)

    很多人对于WebGIS不是很熟悉,尤其是刚接触WebGIS的开发人员来说,感觉这东西漫无边际,不知道如何下手,所以本篇文章就结合自己的开发和学习经验,给大家推荐...

    X北辰北
  • 从零开始发布一个ArcGIS Server地图服务

    此前从未接触过ArcGIS,对Oracle和postGre SQL也比较陌生。本文介绍了从零开始,到搭建环境,再到发布第一个ArcGIS地图服务的完整过程。

    三分恶
  • 原 高效访问海量地图数据--GeoServer手动发布本地Shapefile地图

    首先,本文实现的结果图给大家展现一下: ? 放大的样子: ? 颜色是通过属性中某个字段值来分级的,可以自定义。 上面功能是用ArcGIS切片好数据,在Geose...

    我叫刘半仙
  • 高效访问海量地图数据--GeoServer手动发布本地Shapefile地图

    地图数据以海量著称,传统的做法是建立空间索引,优化查询等,这些并没有解决如何有效的组织地图数据,提高地图访问效率的问题。用GeoServer可以在用户之间迅速共...

    我叫刘半仙
  • Arcgis for Js实现Spline插值、区域裁剪以及页面的轮播效果

    本文讲述如何利用Arcgis 的Gp服务实现Spline插值,并将插值的结果按照指定的区域进行裁剪,最后将裁剪的结果根据特定的样式渲染,并在页面实现多期轮播的这...

    lzugis
  • 公交线路数据获取脚本分享

    公交、地铁线路数据,可以用于交通运输、公共服务水平分析等各个领域,是规划相关工作中较为常用的数据。

    Sidchen
  • ArcGIS Pro动态投影和地理变换

    本文作者为国外制图师希瑟·史密斯,由点点GIS翻译发布,如有错漏之处请后台留言指出

    陈南GISer
  • 充分利用网络开源数据制图[ArcGIS高效前期]

    前期分析的制图工作中很大一部分工作是要从电子地图中对比着描绘现状,最后完成区位图、外部交通、公服等细分的分析图,以及综合现状分析图。

    Sidchen
  • 如何处理地图投影转换

    最近学习地理信息可视化总是遇到投影的麻烦,包括前段时间输出两篇关于simple features的分享中,其中没有特别处理投影的问题,老司机一看就能看出其中存在...

    数据小磨坊
  • ArcGIS JS API 4.15实现萤火虫效果

    看到网上的萤火虫效果后,也想在前端通过ArcGIS JS API来实现一下,所以感兴趣的话就跟我一起来看看吧。

    X北辰北
  • ArcGIS10地理信息系统教程—从初学到精通—笔记(持续更新)

    geodatabase有以下三种类型:文件地理数据库,个人地理数据库、arcsed数据库

    全栈程序员站长
  • ArcGIS API for JavaScript 中的 Autocasting

    Autocasting 是 ArcGIS API for JavaScript 4.x 的一个新特性, 将 json 对象转换成对应的 ArcGIS API f...

    beginor
  • ArcGIS REST API 实现服务端地图图层叠加和地图图片导出

    (1)ArcGIS Desktop 10.5 路径下自带的 影像文件 wsiearth.tif,影像文件存放路径: E:\Program Files (x86...

    魏晓蕾
  • 菜鸟的 GIS 基本概念学习

    因为一些缘故,工作中了解了一下 GIS。本文算是菜鸟的学习笔记吧,如有错误,衷心希望专业的 GIS 同学指正~

    amc
  • 通俗易懂的ArcGis开发快速入门

    本文主要介绍ArcGis的ArcEngine开发,学习时,我们需要放下心里障碍,那就是Gis开发只是普通的软件开发,并不需要专业的GIS知识,就是非常普通的,调...

    Kiba518
  • 中国地图的正确打开方式

    剧集中,使用的一幅动画地图在绝大部分中国版图都着亮色的情况下,原本属于中国的海南岛和台湾岛却被排除在外,中印边境东西两段的划分也有问题。此事在社交媒体上引发热议...

    MeteoAI

扫码关注腾讯云开发者

领取腾讯云代金券