zoukankan      html  css  js  c++  java
  • 室内地图1:从CAD到Map(画图,发布,路径导航)

    首先这个教程整理,比较偏细节。

    因为我本身不是做GIS,所以可能有点流水账,当然错漏难免,恳请指正。

    当我们做定位的时候,想要可视化展示,室外当然可以直接使用google,百度的底图。对于室内,有两种方法:

    1.单独可视化展示可以直接通过简单的底图jpg图片进行,只需要实现jpg像素坐标到你定位坐标的转换即可。

    2.如果还想要想要室内的map matching, 甚至想要路径规划(导航)都需要矢量地图生产了发布了。

    本文这里只讲比较简单的基于ArcMap/ArcServer(英文版)的实现方法和流程,如果你要设计室内地图的规范化,标准制定,请移步indoorGML.

    当然,这里假设一些基本的arcmap基础你有,不然一步步的讲解的话就太多了。

    1.CAD------>SHP

    首先,一般的室内地图我们可以通过CAD的设计图来进行转化成想要的底图背景。

      有自定义坐标系的建筑设计cad图,但是和全校底图不在一个坐标系下。
     
    步骤:
    1.利用cad图导出成shp文件:
                a.polyline 放进工作区
                b.data->export(layers coordinate system.)
                c.在geodatabase中import该shp, start edit and spatial adjust.
    2.调整你想要的室内图到某个底图(google baidu底图或者校园地图这种上去)
         a.打开shp文件和底图文件 (如果看不到可以new a map document 再拖进去)
         b.利用arcmap的Spatial adjustment工具里的displacement link tool 来链接同名点。
           (先点击待转换的点,连接到目标点上去,多利用zoom to layer)
         c.均匀布设 控制点,然后点击adjust 进行转换。

    2.通过ArcServer 发布导航服务

    2.1概述

      有了大概的cad底图,但是并没有我们想要的路径分析,道路信息等。为了实现道路map matching 或者navigation,需要发布map server(network analysis)服务。
      1.利用arctmap画图并生成网络数据集(newwork dataset),然后利用arcmap的network analyse分析验证路算
      2.发布网络数据集到arcgis server 上面即可。

    2.2生产:

       1.在文件目录下面新建“文件地理数据库”test

       2.在test建立要素数据集testset,坐标系选择Project(投影坐标系)(比如UTM 的WGS84-North N36)

            3.在testset里面建立需要的要素类比如road toilet(画图) 画图的时候注意比例尺,否则太大。
            4. arcmap上面空白右键点击network analyst功能 
            5.在testset新建网络数据集(如果是灰色则需要在自定义拓展模块中激活network Analyst)
            6.网络数据集创建的时候不能选point 只选择road 否则会提示创建有错误并生成error(代码16 “交汇点未连接到任何其他边要素。” )
          
     
      notice:  
               1.在生成数据集的时候,连通性设置为所有节点或者是端点  如果是端点需要打断不然路算绕远(connectivity项)。交接点也需要打断 不然走不通。(no route found)
               2.如果导航需要方向至少需要(https://desktop.arcgis.com/zh-cn/arcmap/latest/extensions/network-analyst/setting-directions.htm):
    • 具有长度单位的长度属性(有坐标系就ok)
    • 至少有一个边源 
    • 边源上至少有一个文本字段(导航的道路名)(新增字段要在目录下选择属性, 新增完后编辑会显示不可用的字段,重启。。。)
    • 一条路多线段先画成一起写了属性再打断会带有属性,可以利用高级edit的批量打断。
               3.导航信息中 如果是一条路(上文的文本字段)则不提示转向(哪怕角度很大 只会计算该路段的起点终点的方向,例如一个直角路是一条路,可能直接说沿着东南路方向行驶,所以需要分成两段,road名字设置成一样)   WGS84 可设置成显示decimal degree 并在custom中设置小数位(如果地图小)
     
     

    2.3发布网络分析服务

     
      可能遇到的问题:
    1.发布服务后通过web测试你的服务http://your_ip:6080/arcgis/rest/services/MyMapService/NAServer/Route,测试方法见api: http://resources.arcgis.com/en/help/rest/apiref/
                        
    2.通过http://your_ip:6080/arcgis/manager/service.html?name=MyMapService.MapServer管理服务
     
    3.6080ip被防火墙封掉的问题,需要安装web adaptor(在server包里)然后通过访问web adaptor来访问你的服务,即测试你的服务的地址变为http://your_ip/webadapter/rest/services/YourMapService/NAServer/Route                                         

    3.  在终端Android(web)中使用你的网络服务:

          2.github 上面看esri的相关sample code.
     
    本文只是介绍了如何从CAD----->Map, 因为arcgis 本身的network analysis暂时并未提供室内三维空间的导航。
    所以如何通过arcgis的二维路径分析进一步实现室内三维导航呢?具体的思路将在下一篇文章中介绍。
  • 相关阅读:
    Windows下快速搭建安卓开发环境android-studio
    使用Android Studio搭建Android集成开发环境
    手动安装配置Android Studio
    android studio 各种问题 应该能帮助到你们
    如何清除XP的网络共享密码
    一个语言的“入流”,而是和这种语言进入某一子行业的契机有关
    必须冷静、必须听话,赶紧走
    QWidget继承自QPaintDevice,这样就可以直接把QWidget传入QPainter的构造函数,比如QPainter(mylabel),然后设置QWidget的长宽后直接进行作画了
    ActiveMQ
    开源word操作组件DocX的记录
  • 原文地址:https://www.cnblogs.com/lesliexong/p/7059130.html
Copyright © 2011-2022 走看看