室內地圖1:從CAD到Map(畫圖,發佈,路徑導航)

首先這個教程整理,比較偏細節。html

由於我自己不是作GIS,因此可能有點流水帳,固然錯漏不免,懇請指正。android

 

當咱們作定位的時候,想要可視化展現,室外固然能夠直接使用google,百度的底圖。對於室內,有兩種方法:git

1.單獨可視化展現能夠直接經過簡單的底圖jpg圖片進行,只須要實現jpg像素座標到你定位座標的轉換便可。github

2.若是還想要想要室內的map matching, 甚至想要路徑規劃(導航)都須要矢量地圖生產了發佈了。web

 

本文這裏只講比較簡單的基於ArcMap/ArcServer(英文版)的實現方法和流程,若是你要設計室內地圖的規範化,標準制定,請移步indoorGML.數據庫

固然,這裏假設一些基本的arcmap基礎你有,否則一步步的講解的話就太多了。windows

 

1.CAD------>SHP

首先,通常的室內地圖咱們能夠經過CAD的設計圖來進行轉化成想要的底圖背景。api

  有自定義座標系的建築設計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的二維路徑分析進一步實現室內三維導航呢?具體的思路將在下一篇文章中介紹。
相關文章
相關標籤/搜索