More Related Content Similar to Concepts and Methods of Embedding Statistical Data into Maps (20) More from Mohammad Liton Hossain (6) Concepts and Methods of Embedding Statistical Data into Maps2. INTRODUCTION
A map is a very powerful way to present data. It is much more intuitive than presenting the
same data in the form of coordinates or text. Using the functionalities of spatial databases,
along with other Middleware tools, such spatial applications can be developed that is
capable to represent the statistical data into maps in various ways. In this Thesis work a
spatial application of a specific country will be designed and developed and it will show
statistical data on the map (Bar chart, Pie chart etc.) and also it will show the five different
layers of addresses (District, county, sub-county, parish and villages) along with other
features.
05.05.2018 2
© 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG
3. PROBLEM STATEMENT
The main goal of this study is to finding the best solution for depicting maps along with
statistical data and fulfilling the following criteria:
• update borders in the maps
• statistics should be readable from database
• costs, license restrictions
• efforts in man-days to get the system running
05.05.2018 3
© 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG
4. Finding the Best Approaches
• Oracle MapViewer
• QGIS
• AnyMap
05.05.2018 4
© 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG
5. Oracle MapViewer
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 5
Oracle MapViewer is a part of Oracle Fusion Middleware.
Oracle MapViewer is a very powerful and specialized tool for
rendering maps using spatial data managed by Oracle
Spatial and Graph or Oracle Locator (also referred to as
Locator).
A Map rendering engine
Metadata Definitions
Oracle Maps APIs
Map Builder Tool
6. The rendering engine is visible as a servlet that processes requests sent by
client demands, draws the proper data from spatial tables, and builds maps in a
variety of graphical formats (GIF,PNG, JPEG, or SVG), which it then returns to
the asking client. In addition to the core mapping servlet, the MapViewer server
also delivers a map cache server and a feature-of-interest (FOI) server
A Map rendering engine
Oracle MapViewer
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 6
Metadata Definitions
The Map definitions/ Metadata are stored in the database. This is the place
where we can describe our map such as which table to use, how maps should
be rendered (Themes, Styles etc.) and first and foremost the exact information
how to draw the borders in terms of polygons.
7. Oracle MapViewer
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 7
Oracle Maps is the name for a collection of technologies
for developing high performance interactive web-based
mapping applications. Oracle Maps is contained within
MapViewer.
Oracle Maps APIs
1. A Map Tile/Cache Server
2. Feature of Interest (FOI) Server
3. JavaScript Mapping Client API
8. Oracle MapViewer
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 8
Oracle Map builder is a standalone application that is used
for creating and managing the metadata into database.
This is the tool by which we can add or remove or modify
the styles, themes, base maps for mapviewer. Its purpose
is not only managing metadata but also it provides a
graphical interface where every styles, themes or base
maps are displayed so that we can look a quick preview of
our defined styles or themes or metadata.
Oracle Map Builder Tool
1. Styles
2. Themes
3. Base Maps
4. Tile Layers
9. BAR Chart Using NSDP
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 9
Non-Spatial Data Provider is a custom library of
Oracle MapViewer. This provider can accept
business data either in CSV or XML format. It is
possible to save the data in a XML or CSV file at
remote location and access through a URL by Oracle
MapViewer or can be generated in a JavaScript code
(we have used this) and sent to MapViewer as part
of a Theme-Based FOI layer request. The
mechanism is to join the results of a database query
(i.e. a JDBC vector layer) with content in an xml
document and display it on a map.
Non-Spatial Data Provider
10. BAR Chart as Predefined Theme
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 10
After importing the tables with data we have defined
some styles and themes using map builder tool and
Create an advanced style that defines the
characteristics of the Bar charts to be used. To
create Bar chart or Pie chart vector layer we have to
use Advance style menu in map builder tool. Bar
chart or Pie chart representation of statistical data is
the high level requirements of our study; to achieve
these criteria by using predefined layer we have to
create an advance style in map builder and then
create a theme using this advance style and then
use this theme as a predefined vector layer.
<?xml version="1.0" ?>
<AdvancedStyle>
<BarChartStyle width="45"
height="20" share_scale="true">
<Bar name="bar1"
color="#FF3333"/>
<Bar name="bar2"
color="#FFFF33"/>
</BarChartStyle>
</AdvancedStyle>
<?xml version="1.0"
standalone="yes"?>
<styling_rules>
<hidden_info>
<field column="STATE"
name="STATE"/>
<field
column="PCT18_24"
name="PCT18_24"/>
<field
column="PCT25_34"
name="PCT25_34"/>
<field
column="TOTPOP"
name="TOTPOP"/>
</hidden_info>
11. To display different county colors based on the total
population of that county we need to create an advanced
style from map builder and then we can use it as a
predefined vector layer.
Using Variable Range Bucket
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 11
12. By using Stream without caching we can avoid any
inconsistencies when updating the tiles. That means if we
change anything in the underlying database or metadata
(Themes, base maps) then the change will be depicted in a
minute.
Reflecting the metadata changes
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 12
13. As we have seen from this chapter that Oracle
MapViewer is a powerful mechanism to
visualize the static data into map for spatial
database. We can compare Oracle MapViewer
with important features as follow:
Review : Oracle MapViewer
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 13
Feature’s Mapviewer
Knowledge Intense High
change the map by
introducing own features and
Efforts to do that
Yes….This is the prime feature from
Mapviewer. With map builder we can
easily add or remove the features and then
render with mapviewer.
Does the solution depend on
other service providers (e.g.
maps provider)? Are there
any fees?
No.
It is a Commercial Solution. But part of an
Oracle Fusion Middleware is free to use
Online or offline Mainly Offline also can be used as online
Does the solution fit into the
Java Universe
Yes
Can I apply statistics data
into the map?
YES
Depict charts in the map Yes. Both Bar chart or Pie chart
Can I zoom into the map to
get more details (e.g. borders
of sub counties)?
Yes. we can zoom in for different zoom
levels in our base map
Update the Map if Meta Data
(Base map, Themes…) is
changed
Map can be update instantly.
Specialized for map
rendering?
Yes. It is a special and powerful tool for
map rendering using spatial data.
Database independent? No
Does the solution support
online access to statistics
databases?
YES
14. QGIS is a software program with a graphical user
interface to deploy the functionalities of Geographical
Information System (GIS).
A common feature of GIS is that they allow us to
associate information (non-geographical data) with
places (geographical data). GIS Systems work with
many different types of data. Vector data is stored as a
series of x,y coordinate pairs inside the computer’s
memory and Raster data are stored as a grid of values.
Embedding Statistical Data into Map Using QGIS
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 14
15. Spatial Database that can provide random access to large
data sets, query processing that understands spatial
relationships and transactional integrity during concurrent
editing. Examples of such database are Oracle Spatial,
PostgreSQL, SQL Server Spatial etc.
Spatial Database:
QGIS application with GeoServer
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 15
GeoServer & GeoWebCache:
GeoServer is server side software which reacts to requests
from a web browser through OpenLayers and generates
geographical web objects dynamically. The software is
written in Java. GeoWebCache is a simple caching engine
that is used to speed up repetitive requests in a multiuser
environment where server time can become imperative.
Spatial
Database
GeoServer
&
GeoWebCache
Web Browser
OpenLayers
QGIS
16. OpenLayers is an open source JavaScript library for
displaying map data in web browsers. It provides
an API for building rich web-based geographic
applications similar to Google Maps and Bing Maps.
The QGIS application provides several tools to provide
an easy way to display map layers, map legends and so
on.
OpenLayers:
QGIS application with GeoServer
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 16
17. Qgis2web generates a web map from our current QGIS
project so we can publish our project as a web map
using qgis2web plugin.
To visualize the map (Which we have created using
QGIS tool) into a browser we need an extra plugin
called “Qgis2web” which generates a web map from our
current QGIS project, either as OpenLayers or Leaflet. It
replicates as many aspects of the project as it can,
including layers, styles (including categorized and
graduated), and extent, No server-side software
required. When we have completed export successfully
then the exported map is saved in the default location.
In this location we have an html file along with other
map rendering folders.
Using qgis2web plugin
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 17
18. The qgis2web plugin also converts SDO_GEOMETRY
data into GeoJSON array from database along with
statistical data as properties and write the GeoJSON
data into a js file for each table and save these files into
the folder called “Data”. Number of js files in the folder
depends on the number of tables that we have
referenced from database using QGIS tool.
Using qgis2web plugin
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 18
19. So far we did not use any GeoServer, we just simply created the map and used
qgis2web plugin to publish (view the map in a web browser not in QGIS tool) the map.
So if we change any data in the database then the change will not take effect until we
create a new web map using qgis2web plugin manually. Our purpose is to update the
file which contains the GeoJSON data if any changes happen in the database because
we need to display the statistics data into map which are rendered from these data
source and other rendering resources will remain the unchanged. To make these things
happen we need to build a package which will be responsible for converting the
SDO_GEOMETRY data into GEOJSON array from database along with statistical data
as properties.
Package to convert SDO_GEOMETRY into
GEOJSON
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 19
20. After Creating the Package we can make a sql query to
view the converted GeoJSON data.
Where ‘roads’ is the spatial table or view and geometry is
the name of the spatial column. The ROWID is needed to
collect the attributes.
Package to convert SDO_GEOMETRY into
GEOJSON
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 20
SELECT
ora2geojson.sdo2geojson('
select * from
roads',Rowid,geometry)
FROM roads;
21. In previous step we have created a package that can convert the
SDO_GEOMETRY data into GEOJSON but we have to call the package
manually. But one of our main requirements is to update the map automatically
after any changes in the backend database.
To do this task periodically and automatically we need to create a database job
that will be responsible for calling the package for a specific table periodically
and write the GEOJSON data into a JavaScript file in the folder from where we
can render the map.
So when something has changed in the database table then after a certain time
we will get the update data source file using this database job. Database job
should perform daily basis operation to run the package on a specific table and
write the output into js file.
Creating a Database Job
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 21
22. Installing and using the QGIS
program costs us a grand total of
zero money
Extensive help and documentation
is available
Cross-platform, QGIS can be
installed on MacOS, Windows and
Linux.
Review: QGIS
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 22
Feature’s Mapviewer
Knowledge Intense Medium
change the map by introducing
own features and Efforts to do
that
Yes….Much Easier than Oracle MapViewer
Does the solution depend on
other service providers (e.g.
maps provider)? Are there any
fees?
YES
If we use any GeoServer then we have to pay
Online or offline Offline
Does the solution fit into the
Java Universe
Yes
Can I apply statistics data into
the map?
YES
Depict charts in the map Yes. Both Bar chart or Pie chart
Can I zoom into the map to get
more details (e.g. borders of
sub counties)?
Yes. we can zoom into different zoom levels.
Update the Map if Meta Data
(Base map, Themes…) is
changed
Map can be update periodically
Specialized for map rendering? Yes. It is a special and powerful tool for map
rendering using spatial data.
Database independent? YES
Does the solution support
online access to statistics
databases?
No. Map is usable outside QGIS tool and can
render by using OpenLayers
23. AnyMap is a powerful product from AnyChart.
AnyChart is a flexible JavaScript (HTML5) based solution that allows developers to
embed interactive and great looking charts and dashboards into any web, standalone or
mobile project.
AnyChart covers all data visualization needs.
AnyMap is a very useful tool for side-by-side reporting.
can process geodata in GeoJSON, TopoJSON, and SVG.
comes with its own Map Collection.
supports all major types of map charts such as Choropleth, Point (Dot), Bubble
(Proportional Symbol), Connector, Flow, and Seat maps.
has dedicated plugins for AngularJS, Ember.js, jQuery, Meteor, Node.js and React, as
well as integration templates for popular technology stacks.
provides drill down, routes, grid, axes, crosshair, projections, latitude/longitude API, and
many other great customization and interactivity opportunities.
Embedding Statistical Data into Map Using
AnyMap
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 23
24. To achieve the zooming capability we have to use drilldown
map in AnyMap. The principle of drilldown maps is to
combine several maps into multi-level structure, so it can
deliver the option to zoom into districts, counties, sub-
counties and even smaller geographical units if we have got
maps for them (counties, sub-counties, parishes and
villages). In our case we have used statistical data for three
states and visualized them with drilldown capabilities from
AnyMap
Drilldown Map
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 24
25. A dashboard is easy to read, often single page, real-time
user interface, showing a graphical presentation of the
current status (snapshot) and historical trends of an
organization’s key performance indicators to enable
instantaneous and informed decisions to be made at a
glance.
Stage-Based Layout
Table Layout
Standalones
DASHBOARD
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 25
26. Stage-Based Layout: Rendering capability of AnyChart components is based
on anychart.graphics library, which is in charge of visual display. This display is the stage,
which is a graphics tool, that helps with positioning a number of charts and other
elements on one page. It manages visual appearance and logic structure of data.
Table Layout: The table layout is a kind of dashboard tools, which provides a clear and
effective way of positioning chart. Table Layout helps to manage several elements within
the limits of one chart container. The table may help to control visual appearance and
logic structure of data. A cell in table layout dashboard may contain:
String with simple text or a number
Any visual element of AnyChart (Legend, Legend Item, Label, Title, etc.)
Any type of a chart (pie, Cartesian, etc.)
Standalones: Standalones are elements of the charting library. They are not charts or
parts of charts themselves, they are building blocks that can be used to build anything or
create the added functionality. Standalones do not depend on a chart, so they allow to
create completely custom charts and manage them or add some custom elements to
charts made with AnyChart solutions.
DASHBOARD
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 26
27. AnyMap is an open source program for map
rendering and it can be used as commercial
solution. Main drawback is that we need to
generate or take the JSON file for each
county in a state or for each village in a
county so that we can generate drilldown
map so easily. Another problem is update
problem because map is rendered from
local file not from database and AnyMap
has its own JSON array format which we
need to update if anything is changed in the
database. But if we take commercial
solution from AnyMap then we can get the
all JSON files and other supports from them.
Review: AnyMap
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 27
Feature’s AnyMap
Knowledge Intense Medium
change the map by introducing own
features and Efforts to do that
Yes. But raw coding into the JavaScript
file
Does the solution depend on other
service providers (e.g. maps
provider)? Are there any fees?
Yes.
No cost
Online or offline Offline or Online
Does the solution fit into the Java
Universe
Yes. Source code is generated in Java,
HTML
Can I apply statistics data into the
map?
YES
Depict charts in the map Yes as Dashboard
Can I zoom into the map to get more
details (e.g. borders of sub counties)?
Yes. Using Drilldown method
Geometry Data Source for Map
rendering
Local Folder
Update the Map if Meta Data (Base
map, Themes…) is changed
We have to generate the data files for
AnyMap format
Specialized for map rendering? Yes. It is a special and powerful tool for
map rendering using spatial data.
Database independent? YES
Does the solution support online
access to statistics databases?
No. Because in AnyMap statistical and
geometrical data source is local folder
28. Comparison Between Three Solutions
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 28
Feature’s MapViewer QGIS AnyMap
Does the solution depend on other
service providers (e.g. maps provider)?
Are there any fees?
No.
Part of an Oracle
Fusion Middleware is
free to use
No.
No cost (without
any GeoServer)
Yes.
Not free for
commercial
solution
Online or offline
Mainly Offline also can
be used as online
Offline Offline or Online
Can I apply statistics data into the map? YES YES YES
Is it possible to color regions based on
statistical data of a map?
YES
Can I zoom into the map to get more
details (e.g. borders of sub counties)?
YES YES
YES. Using
drilldown
method
Update the Map if Meta Data (Base map,
Themes…) is changed
Map is updated
instantly.
Map is updated
periodically.
Possible to
make it
periodically
Database independent No YES YES
Does the solution support online access
to statistics databases?
YES No NO
Specialized for map rendering? YES YES YES
Depict charts in the map Both Bar and Pie YES
YES. As
dashboard
Does the solution fit into the Java
Universe
YES YES YES
29. Concepts and Methods of Embedding Statistical Data into Maps has been covered by
evaluating and implementing three different map rendering technologies with some special
features (update borders in the maps, statistics should be readable from database, costs,
license restrictions, efforts in man-days to get the system running etc.). We have evaluated
and implemented three techniques to find a stable solution (mainly focus on offline solution)
for our requirements. We have found three solutions to fulfil our requirements which are:
Oracle MapViewer, Quantum GIS (QGIS) and AnyMap.
using NSDP library from Oracle MapViewer we can display pie chart or bar chart on the
map associated with statistical data
We have avoided any inconsistence effect after updating the data in the base table by
Stream the tiles directly without caching.
In QGIS we have used no server side configurations.
AnyMap takes all map rendering data and statistical data from local folder so that we
need to make sure that we have all the geometrical information’s along with statistical
data in GeoJSON format.
Conclusion
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 29
30. Proposal
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 30
I would like to recommend Oracle MapViewer if we do not care about efforts and time and
most importantly if we want to use Oracle Database only.
I would like to prefer QGIS because of its simplicity and database independency. To use
QGIS according to our implementation, the most important challenge is to create a
Database job.
Open Issues
In Oracle MapViewer we were not able to display the pie chart or bar chart as a
predefined vector layer in the web browser. The diagrams were displayed in map builder
tool but not in web browser. Except the diagram all other statistical data from database
related to the diagram was visible when selecting the particular area.
In demo examples of Oracle MapViewer does not contain any example of displaying
diagrams as predefined layer.
In QGIS the diagrams are displayed in QGIS user interface but not in web browser.
Qhis2web plugin does not support the export of diagrams to display in web browser
(https://gis.stackexchange.com/questions/210279/diagrams-not-displaying-in-qgis2web.).
31. Future Study
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 31
Continue with this study to render the pie chart or bar chart as predefined layer in Oracle
MapViewer.
Create a Database which is responsible to run the package periodically to convert
geometry data into GeoJSON array.
Implement the QGIS project with server side configurations.
32. Thank You Very Much For Your Valuable Time
05.05.2018 © 2009 UNIVERSITÄT ROSTOCK | VERWALTUNG 32