All parts of the design module
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
DataConverter Removed specific US mode code (=default) May 7, 2018
EcoDistrictDebugger Updates: Sep 13, 2018
EcoRefresh Sesmi color palette to blue Apr 12, 2018
EcoRestApi Sesmi color palette to blue Apr 12, 2018
Importer Updated source Aug 2, 2016
Publish submodules in sync again Nov 16, 2018
PublishDebugger Sesmi color palette to blue Apr 12, 2018
TilerServer submodules in sync again Nov 16, 2018
WS2IMBSvc fixed exception when no https definition in listeners Sep 18, 2018
WebClient webclient: disabled default info control Oct 18, 2018
doc Updates: Minor fixes in the docs Nov 9, 2018
.gitignore Added abbrevia to ignore list Sep 18, 2018
.gitmodules Updates: Minor updates in TilerServer/TilerWebModule.pas & the layer … Nov 7, 2018
Design modules.groupproj Changes: Oct 31, 2018
Interface.md update docu Nov 10, 2016
Interface.vsd added missing files Jul 5, 2016
LICENSE Initial commit Jan 22, 2016
README.md SSM model control Nov 18, 2016
Session.txt added missing files Jul 5, 2016
Setup.vsd added missing files Jul 5, 2016
Startup.txt Commit test Aug 30, 2016
dynamicqueries.md docu update Jul 5, 2016
extra repositories and files.txt Delphi 10.2.2 new tatuk gis: update of svn link Feb 6, 2018
fixup submodules.bat Adapted fixup to switch to master prior to pull Dec 21, 2017
jsonrequests.md added setData data module method (also to docu) Oct 6, 2016
objectProps.json added selected object properties json example of Han Sep 6, 2016
overview.png docu update Jul 5, 2016

README.md

Design module

All parts of the design module

overview of elements, construction and dependencies of the design module

  • Web browser connects to web server and loads static html/javascript/css files and images
  • Web client connects via web socket to WS2IMB for dynamic data
  • WS2IMB connects via IMB to Publishing module and registers client on session
  • Publishing module generates structures and sends these to the web client via WS2IMB
  • Publishing module generates data layers and sends these to Tiler and optionally to web client directly (max number of objects)
  • Publishing module sends url for tiles to client via WS2IMB
  • Tiler generates preview and sends it to Publishing module which sends it via WS2IMB to the web client
  • Tiler generates tiles on request of web client
  • other sources send updates of data over IMB4, IMB3 or rest to the publishing server which updates the Tiler server and web client

Client

This is the web client part of the design module. This module is written in html/css/javascript and uses 2 libraries: leaflet and D3. It uses a web socket to communicate to the publishing server. Information layers can be handled in geojson objects or as tiles through the tiles server. The client is a viewer for geo data layers, charts and kpis but can also be used to apply measures to underlying data objects. It also supports retrieval and changing of object properties. Information layers can be filtered by domains to make selection easier. Also objects can be positioned and drawn on the map which trigger connected modules.

WS2IMB

This part of the design module is a C# web service that connects the web client via web sockets to the IMB framework. Every web socket connected from the web client connects to an event registered on the publishing server that uses a specific object to represent the client within the publishing server. Messages are all strings containing JSON. Data from the publishing server to the web client are also sent over this web socket (bi-directional) to trigger updating the web client interface.

Publishing/data server

This part of the design module handles all the server side work for the web client. The web clients talks over a web socket via IMB to this server. The publishing server internally handles all its actions via classes

  • module (1 per project type)
  • project, represents a case within ecodistrict/urban strategy/other project type. A specific project type is created to handle specific actions and data
  • scenario, existing case content or a variant
  • scenario elements
    • layers, to visualise geo-data
    • charts, like bar, line, stacked bars etc. graphs
    • kpis, bullits graphs to visualize kpi values (not used in ecodistrict)
  • client, represents the specific web client that is started from the dashboard

An other part of the publishing server is the data module. This module handles access to the database over the IMB framework.

Tiler server

Creates tiles (256*256 pixels bitmaps in png format) out of geo data. Layers are defined over IMB and connect to data events. Several layer formats are supported

  • receptor, a set of points with a value that are triangulated and colored according a given palette based on the value.

  • geometries, colored by a given palette on a geometry property value.

    • polygon, value
    • lines, value
    • road intensity/capacity, color and width
    • road intensity/capacity R/L right/left values/width
  • POI, an image at a point from a list of images (png)

  • PNG, an image over the map specified by an extent (xmin,ymin,xmax,ymax)

  • location, circle with outline/fill color

  • diff layers, difference between 2 layers of type above

The tiler server creates tile on url request with zoom level, x index, y index, layer id and time reference

All layers can have a time reference

The server is implemented as an isapi module (IIS dll)

The server supports 3 access methods

  • a default handler that shows a status page of all registered layers and IMB event the server is controlled by
  • /tiles: request a tile /tiles?layer=<id>&zoom=<zoomlevel>&x=<tile-x-index>&y=<tile-y-index>[&time=<yyyymmddhhmmss>]
  • /point: request a value at a specific location /point?layer=<id>&lat=<latitude>&lon=<longitude>[&time=<yyyymmddhhmmss>] where lat and lon are in wgs84 degrees (float)
  • /status: a status page that shows connected services

Setup

The tiler web service runs as a IIS web service.

  • Windows explorer
    • copy the tiler folder on the IIS server: TilerWebService.dll, TilerWebService.ini and web.config
    • edit TilerWebService.ini to reflect url, a unique IMB event name and unique model name
    • Make sure IUSR account has at least read access
    • Make sure IIS_IUSRS has write access to create tiles cache and write to log
  • IIS manager
    • select server root node
    • select ISAPI and CGI Restrictions
    • add TilerWebService.dll as path
    • check m ark at allow extension path to execute
    • add application pool: No managed code, integrated
    • add application under site folder where you want the tiler services to be available
      • choose earlier created application pool
      • choose root folder of tiler where dll resides
    • open browser and enter url including /TilerWebService.dll
    • open browser and enter url including /TilerWebService.dll/status

Testing