# Add Swisstopo to ArchScape
## Issue Tree

``` plantuml
@startmindmap
!define STYLE_RG
!includeurl https://raw.githubusercontent.com/raumgleiter/PlantUML-Style/master/PlantUML_Style.puml
!includeurl https://raw.githubusercontent.com/raumgleiter/PlantUML-Style/master/PlantUML_Style_MindMap.puml

' All Skinparams: https://plantuml-documentation.readthedocs.io/en/latest/formatting/all-skin-params.html
skinparam defaultTextAlignment center

'******************************************************************************
'

<style>
mindmapDiagram {
  'Padding 4
  'Margin 4
}
</style>

'-----------------------------------------------------------------------------

- Release <<RELEASE>>
-- LR & SG\nDebug Swisstopo <<ACTIVE>>
--- LR\nAdd to ToolButtons <<DONE>>
---- LR\nExport/Import package to ArchScape <<DONE>>
----- SG\nClean file structure <<DONE>>
------ SG\n Create VS project <<DONE>>
----- LR\nImplement UI Class <<DONE>>
------ LR\nMove code to VS project <<DONE>>

@endmindmap
```



##### Description
Swisstopo should be added to ArchScape in order to enable OSX- and offline-support.

##### Main Branch
 - Name: `maps-release`
 - MapsDK: https://git.raumgleiter.com/Raumgleiter/MapsDK/tree/maps-release
 - ArchScape: https://git.raumgleiter.com/Raumgleiter/ArchScape/tree/maps-release


# Issues  

## Issue Text

```
##### Issue Tree
 - https://git.raumgleiter.com/simongloor/todo/blob/master/IssueTrees/ArchScape_Maps.md
```

---

## Move code to VS project

##### Project Issues
 - MapsDK:

##### Tasks
 - Andreas Lüscher von Trivadis hat das Swisstopo "Plugin" (eigentlich ein Package wie das InterfaceRGDK) in Unity entwickelt.
 - Damit die Updates nach ArchScape einfacher werden, und wenn möglich bei Änderungen nur eine .dll ausgetauscht werden soll, muss der Code in das .vs Projekt im Code Ordner migriert werden und aus dem Unity-Projekt gelöscht werden.

##### Documentation
 - none

##### Interaction Framework
 - none

##### Existing Assets/Classes
 - Everything exists in the Unity project.

---

## Implement UI Class

##### Project Issues
 - MapsDK:

##### Tasks
 1. Add the BaseRGDK dll to the MapsDK.
 1. Create a UI class that inherits from BaseListUI.
 1. Implement only the switching between Google, Swisstopo and None

##### Documentation
 - [UI Documentation](https://git.raumgleiter.com/Raumgleiter/RGDK/blob/develop/Documentation/BaseRGDK/UI/BaseRGDK_UiContent.md)
 - [UI Layout and Content Architecture](https://git.raumgleiter.com/Raumgleiter/RGDK/blob/develop/Documentation/BaseRGDK/UI/BaseRGDK_LayoutArchitecture.md)
 - [Unified Map System](https://git.raumgleiter.com/Raumgleiter/MapsDK/blob/develop/Documentation/UnifiedMapSystem.md)

##### Interaction Framework
 - https://raumgleiter.invisionapp.com/freehand/Maps-Feature-oStGrECZO

##### Existing Assets/Classes
 - MapAdmin

---

## Add to ToolButtons

##### Project Issues
 - ArchScape:
 - evtl. MapsDK:

##### Tasks
 - Add a new Button called "Karten" to the upper part of the left bar with a fitting [Icon](https://fontawesome.com/icons/atlas?style=light).
 - Link the Button to the UI.

##### Documentation
 - [Tool Button Architecture](https://git.raumgleiter.com/Raumgleiter/RGDK/blob/develop/Documentation/BaseRGDK/UI/BaseRGDK_ToolButton.md)

##### Interaction Framework
 - none

##### Existing Assets/Classes
- [ArchScapeTools](https://git.raumgleiter.com/Raumgleiter/ArchScape/blob/develop/Assets/ArchViewer/Scripts/ProjectViewer/UI/ToolTab/ArchScapeTools.cs)

---
