Authors: Andrey Shevyakov and Won Lee
User manual is available here.
The GWT widget is used for the information presentation.
All zones are visible. The venue layout image is visible (if set up). The building (venue) boundaries are determined by its most northeastern and most southwestern points (always square shape, obviously). The zones shapes (polygons) are formed from their child section shapes (polygons). A zone shape (polygon) is rendered based on the supplied LatLng order (SectionBoundary model, latLngZoneOrder property).
All child sections are visible. The level layout image is visible (if set up). The level boundaries are determined by its most northeaster and most southwestern points (always square shape, obviously).
All child sections are visible. The level selection list is filtered to exclude levels which do not share the currently visible child sections. The zone has no boundaries and no image.
The currently selected section is visible. The currently selected section-associated network elements (NetworkElementSection model) are visible (the alarms on the network elements are only visible to the relevant users (carrier-visibility filtering)). The section shape (polygon) is rendered based on the supplied LatLng order (SectionBoundary model, latLngOrder property).
Around 80 hours to complete.
This is the image to be used as Overlay Image for Level. Image below is modified by Errigal, adding transparency to outside stadium floor.
Those documents don't have to be separate documents except Floor Plan. Floor Plan image will be used as overlay image so it will be better if image doesn't contain a lot of clutters that makes map difficult to see. Following document will help [determining Section Boundary](#draw_section_on_paaper).
This gives you idea how zone are divided.
This document gives you idea where network element and antenna connected to RU are located.
This document will be necessary if above document is difficult to see Antenna - Network Element connection. This could happen because document is low resolution or to many lines draw close togather.
This document gives you idea what antenna connected to network element.
If we could get document that already has section boundary, we don't have to do work written in section [determining Section Boundary](#draw_section_on_paaper).
Example is
Network Element (RU) name in Document from AT&T Stadium example is totally different from what's in SnmpManager database.
Scripts that could be useful can be found in Bitbucket
If, sadly, you didn't get document that how section is divided, you have to draw section boundary by your self.
Good things about paper are easy to discard and easy to recover all line you draw correctly.
Section is supposed to be CONTIGUOUS
Venue map doesn't such a section
Section can contain multiple RU. Check [document](#ne_connect_document) carefully.
VenueOwner is simple domain that only has name.
Building has following fields
Image is not necessary. northEast and southWest is necessary. Those two point also used to calculate center of map.
If datasource is name_in_trap field of load sheet, you may be able to use |script.
For AT&T Stadium, I turned all name_in_trap field value into new line separated file. Script parse each line and create insert statement for zone, level and section.
Zone is simple domain that has name. It also has building_id filed which specify which building the zone belongs to.
Level domain has following fields
northEast and southWest is mandatory. Ideally this is the same as building.
Section domain has following fields
In order to map works, you need to add SectionBoundary entry for each section you've created. For now, create temporal/scaffold LatLng point. Assign that LatLng to all section you've created. The same LatLng can be used for unlimited number of sections.
All the boundary you see in the map is stored in LatLng (lat_lng) domain.
LatLng and section association are stored in SectionBoundary (section_boundary) domain.
SectionBoundary is linking domain which holds
if order is not filled in, it will use SectionBoundary's id in descending order. If oder is filled in for some of entry, only the SectionBoundary with order not null will be used.
def zoneBoundaries = SectionBoundary.findAllBySectionInListAndLatLngZoneOrderIsNotNull(sections)
if (zoneBoundaries.size() == 0) {
zoneBoundaries = SectionBoundary.findAllBySectionInList(sections)
}
In order to assist getting coordinate, open console of your browser. Click any point in Venue Overview Map widget. You will see latitude and longitude are displayed in console.
LatLng domain has following fields.
If LatLng is used by multiple level, zone and section, use character “&” and by alphanumeric order.
For instance, “AT&T Stadium - Main & ROH - Zone 17 & 48 - 401 & 603 & 700”.
Be very very careful if LatLng can be used by multiple sections, crossing different levels. Reuse of LatLng makes maps looks better because there are less overlapping polygons on the map. But if you didn't label correctly, you might miss LatLng when you putting seciton boundary for another section in different Level or/and Zone.
Label IS Important
Insert new entry into section_boundary. I strongly recommend that lat_lng_id follows descending order as id for section_boundary.