pdf sdk c# : Creating bookmarks in pdf documents software SDK cloud windows wpf .net class chaturvedi3-part972

Web based 3D analysis and visualization using HTML5 and WebGL 
Page | 20
2.4.2.  Sphere 
Sphere is a bounding volume which is perfectly symmetrical. It requires centre and radius to be 
created.  
Figure 2-15: Sphere 
It can also be created using JavaScript through Cesium. Table 2-4 lists the parameters required to 
provide specification of sphere geometry: 
Table 2-4: Parameters of sphere geometry (Source: Analytics Graphics, Inc., 2011) 
S. N. 
Parameter 
Purpose 
Radius 
It is the radius of the sphere 
Vertex Format 
It allows to set specific format to the vertex, for example, 3D 
position or specific colour 
Then, similar to polygon geometry, geometry instance is created. The list of parameters required 
are mentioned in Table 2-5: 
Table 2-5: Parameters of sphere geometry instance (Source: Analytics Graphics, Inc., 2011) 
S. N. 
Parameter 
Purpose 
Sphere Geometry 
It is the specific polygon geometry.  
Model Matrix 
It  allows  to  position  centre  of  the  sphere  on  the  world 
coordinates by transformation. 
ID 
It  is  the  unique  ID  for  the  geometry  instance  which 
distinguishes it from other geometries. 
Attributes 
It  allows  to  provide  specific  colour  attribute  to  individual 
geometry. 
In the end, in the same way, the primitive is created for the geometry instance, which renders the 
sphere on the globe. 
2.4.3.  Axis Aligned Bounding Box 
Axis Aligned Bounding  Box (AABB) is a type of bounding volume in the form of a six sided 
rectangular block, which tightly bounds the geometry. The face normal of all the faces of the box 
Creating bookmarks in pdf documents - add, remove, update PDF bookmarks in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your C# Project with Rapid PDF Internal Navigation Via Bookmark and Outline
convert word pdf bookmarks; how to add bookmarks to pdf files
Creating bookmarks in pdf documents - VB.NET PDF bookmark library: add, remove, update PDF bookmarks in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your VB.NET Project with Rapid PDF Internal Navigation Via Bookmark and Outline
add bookmarks to pdf file; bookmarks in pdf reader
Web based 3D analysis and visualization using HTML5 and WebGL 
Page | 21 
are always parallel with the axes of the coordinate system. In this way, in case of geometries on 
the  same  plane,  this  approach  provides  most  optimum  fit  and  fastest  overlap  check  in 
comparison to its counterpart techniques. It generally includes a centre point and minimum and 
maximum points with x, y and z coordinates (Ericson, 2005).  
Cesium contains an in-built JavaScript library to create the AABB for the geometry. By providing 
just the  coordinates of the vertices of the geometry, the AABB can be  created which contains 
following three parameters: 
Table 2-6: Parameters of object oriented bounding box (Source: Analytics Graphics, Inc., 2011) 
S. N. 
Parameter 
Purpose 
Minimum 
The minimum point of the box with x, y and z axes 
Maximum 
The maximum point of the box with x, y and z axes 
Centre 
The centre point of the box  
Once the AABB of the geometry is created, its intersection with different geometry such as 
sphere, can be performed, which is explained in more detail in section 4.4.3.4. 
C# Create PDF Library SDK to convert PDF from other file formats
Gratis control for creating PDF from multiple image formats PDF with a blank page, bookmarks, links, signatures Load PDF from existing documents and image in
create bookmarks in pdf; how to bookmark a pdf in reader
VB.NET Create PDF Library SDK to convert PDF from other file
Gratis control for creating PDF from multiple image formats PDF with a blank page, bookmarks, links, signatures Load PDF from existing documents and image in
add bookmark pdf file; bookmarks in pdf files
Web based 3D analysis and visualization using HTML5 and WebGL 
Page | 22
XDoc.Word for .NET, Advanced .NET Word Processing Features
Viewing, editing, converting, processing, creating, annotating and zooming & rotation; Outlines, bookmarks, & thumbnail Create Word from PDF; Create Word from
copy bookmarks from one pdf to another; bookmark a pdf file
PDF Image Viewer| What is PDF
such as text extraction, hyperlinks, bookmarks and metadata as version among a suite of PDF-based standards to develop specifications for creating, viewing, and
bookmark page in pdf; display bookmarks in pdf
Web based 3D analysis and visualization using HTML5 and WebGL 
Page | 23 
3.  DATA AND USABILITY 
This  chapter  is  divided  into  three  sections; the  first  section  describes  the  study  area  and  the 
datasets  used  in  the  research.  The  second  section  describes  the hardware  and  software  tools 
required  to  successfully  carry  out  research  activities.  The  third  section  explains  application 
requirements in terms of usability. It includes the required components of the interface of the 
web application and a use case diagram explaining how a user would interact with the application.
3.1.  Study area and data 
The  data  required  for  this  research  is  a  well  formed  CityGML  file.  The  CityGML  file 
(Potsdam.gml) of  area  Potsdam,  Germany has been considered  for  this  research.  The  file has 
been provided by Technische Universität München, Germany along with the installation set-up 
of  3DCityDB.    It  comprises,  in  total,  97  3D  building  objects  of  LoD1  specification.  The 
complete detail of the dataset has been provided in Table 3-1: 
Table 3-1: Details of the data set used 
Name 
Potsdam.gml 
Region 
Potsdam, Germany 
File Type 
CityGML 
Level of Detail (LoD) 
Projection 
Universal Transverse Mercator (UTM) 
Zone 
33 Northern Hemisphere 
Datum 
European Terrestrial Reference System 1989 (ETRS89) 
Spheroid 
GRS 1980 
Units 
Meters 
EPSG Code 
25833 
Total buildings 
97 
3.2.  Tools used 
3.2.1.  Hardware Tools 
The hardware used for this research has been listed in Table 3-2: 
Table 3-2:  Details of the hardware used 
Processor 
Intel Core i5-2450M 2.40GHz 
RAM 
4 GB 
Graphics Card 
AMD Radeon HD 7650M GPU 
Video RAM 
2 GB 
How to C#: Basic SDK Concept of XDoc.PDF for .NET
annotation features can be integrated into your C# project, such as annotation creating, deleting, modifying This class describes bookmarks in a PDF document
create pdf bookmarks from word; export pdf bookmarks to text
VB.NET PDF: Basic SDK Concept of XDoc.PDF
features can be integrated into your VB.NET project, such as annotation creating, deleting, modifying This class describes bookmarks in a PDF document.
how to create bookmarks in pdf file; bookmarks pdf
Web based 3D analysis and visualization using HTML5 and WebGL 
Page | 24
3.2.2.  Software Tools 
The software/packages used for this research have been listed in Table 3-3: 
Table 3-3: Details of the software used  
S. N. 
Software/Packages 
Purpose 
PostGIS version 2.0 
To be used as 3D city database to store 3D city 
objects 
3DCityDB Importer/Exporter 
version 1.6 
Import  of  CityGML  files  to  the  3D  city 
database and export as KML/KMZ 
Apache HTTP Server 2.2 
Set  up  a  local  web  server  for  client-server 
communication 
Google Earth 
To test the generated KML/KMZ files  
Google Chrome v32.0.1700.76 m 
To test the web application on web browser 
Mozilla Firefox v26 
To test the web application on web browser 
Opera 19.0 
To test the web application on web browser 
Internet Explorer 11.0 
To test the web application on web browser 
Notepad++ v6.5.1 
To develop and manage code base 
10 
Enterprise Architect 
To create UML diagrams 
3.3.  Usability 
The intention of this research is to develop a cross browser web based application allowing the 
user to perform the research objectives. As per the objectives, the application should allow the 
user  to visualize the geometry  and  semantics of 3D city objects from  a source CityGML  file. 
Further, to perform 3D analysis, the research focuses on 3D buffer analysis. As mentioned in 
section  2.3.4,  the  previous  research  studies  demonstrate  the  use  of  3D  buffer  zones  for 
visualizing a bomb threat scenario. Likewise, this research also focuses on creation of such 3D 
buffer zones in the form of spheres. But unlike previous studies, this study intends to create the 
buffer  zones  on-the-fly  on  the  client  end.  With  the  help  of  front-end  programming  using 
JavaScript and the powerful combination of HTML5 and WebGL, the focus is on developing 
such computational intensive analysis on the front-end. It also  aims to perform 3D operations 
such as 3D intersection and 3D inside to  determine the 3D building  objects which  are either 
completely inside or partially intersecting the buffer zone. This implementation is very helpful for 
field workers and decision makers to understand and be well prepared for evacuation planning or 
other emergency scenarios in an urban area. 
Further, to develop a robust and clean application, it is very important to gather the requirements 
of the application, keeping better user experience principles in mind. It is necessary to design a 
clear  and  easy-to-use  interface  to  provide  better  usability  to  the  user.  Considering  all  the 
requirements of the research, the user interface of the application must meet following criteria: 
  The interface must include Cesium virtual globe, in 3D mode, rendered within HTML5 
canvas element. 
  The globe’s interface must provide the functionalities of pan, rotation, zoom, tilt and fly 
for a better scene exploration. 
  The application should be able to visualize 3D contents from the source files and provide 
real-time dynamism to it. 
How to C#: Basic SDK Concept of XDoc.PowerPoint
Conversely, conversion from PDF to PowerPoint (.PPTX C# project, such as annotation creating, deleting, modifying This class describes bookmarks in a PowerPoint
convert word to pdf with bookmarks; how to add a bookmark in pdf
How to C#: Basic SDK Concept of XDoc.Word
Conversely, conversion from PDF to Word (.docx) is C# project, such as annotation creating, deleting, modifying This class describes bookmarks in a Word document
how to bookmark a pdf page; how to add bookmarks to a pdf
Web based 3D analysis and visualization using HTML5 and WebGL 
Page | 25 
  The application must provide the functionalities to perform analysis on 3D objects by the 
user as per the research objectives. 
  The interface should include buttons/tools to provide assistance to the user. 
  The web application should be as light as possible. 
3.3.1.  Use case diagram 
To further explain the user’s interaction with the web application, the use case model has been 
developed. The use case model is the convenient way to describe the user’s interaction with the 
system with the help of involved actors and use cases (Pender, 2002).  
Figure 3-1: Use case diagram 
As  shown  in  Figure  3-1,  the  use  case  model  consists  of  two  actors  and  four  use cases.  The 
explanation of actors has been provided as below: 
  Web  client  –  Web  client  is  the  end-user  to  use  the  web  application  and  perform  the 
desired  operations.  The  client  is  responsible  to  interact  with  the  web  interface  of  the 
application, visualize the 3D contents of CityGML file and further perform analysis as per 
the requirements.  
  HTTP Server – This actor is responsible to provide actual data to the web client in the 
form of HTML file, consisting CSS and the JavaScript files, for visualizing Cesium virtual 
globe on the client side. Further, it is responsible for sending across the data for 3D city 
objects from CityGML. During the research, Apache HTTP local server has been used 
for developing the application. However, in future, the scope can be broadened by using 
How to C#: Basic SDK Concept of XDoc.Excel
Conversely, conversion from PDF to Excel (.XLSX) is also C# project, such as annotation creating, deleting, modifying This class describes bookmarks in a Excel
bookmarks pdf documents; how to add bookmarks to pdf document
Web based 3D analysis and visualization using HTML5 and WebGL 
Page | 26
a remote server architecture in order to develop a complete web application to be used on 
internet. 
The details for use cases have been explained as below: 
  Web interface – The client would access the web interface by sending  a request to the 
HTTP server. In turn, the server would respond with a single HTML file, comprises of 
corresponding CSS and JavaScript for Cesium API. As a result, the client would be able 
to  visualize  the  virtual  globe,  in  3D  mode,  rendered  perfectly  within  HTML5  canvas 
element. The interface also contains the buttons/tools, created using JavaScript, to assist 
the end-user to perform specific actions. 
  Base layer specification – The Cesium API contains layer imageries from different sources 
such as Bing Maps, ESRI Maps and OpenStreetMap. These layers can be obtained from 
the Cesium API JavaScript on HTTP server and can be embedded in the Web interface. 
With its help, the end-user can simply select the layer imagery as per the requirement. In 
future, the facility of using external WMS and TMS can be added to the application. 
  3D  city objects  – 3D city objects are stored  under a  processed file, which is retrieved 
from CityGML. This file is stored on HTTP server and the objects can be parsed by the 
JavaScript of the web application. As part of requirement, the geometry and semantics of 
these city objects can be embedded to web interface for them to be visualized by the end-
user.  
  Web based 3D analysis – As per the requirement, the end-user is capable of performing 
3D  analysis,  in  particular,  buffer  zone  analysis  on  top  of  3D  city  objects  within  web 
interface.  The  end-user  can  create  buffer  zones  and  perform  analysis  directly  on  the 
client, without interaction with the data stored on the server. 
Web based 3D analysis and visualization using HTML5 and WebGL 
Page | 27 
4.  DESIGN AND IMPLEMENTATION 
This  chapter  describes  the  high  level  architecture  of  the  application,  followed  by  detailed 
explanation of implementation of each component. 
4.1.  High Level Architecture 
This section describes the high level architecture diagram of the application for the reader to have 
a better understanding of different components and their interaction with each other. 
Figure 4-1: High level architecture of the application 
As shown in Figure 4-1, the architecture comprises of three main blocks: 
  Pre-processing – It involves the conversion of CityGML files to KML/KMZ files using 
the tool 3DCityDB Importer Exporter. The reason for such conversion is that CityGML 
files are usually written in local spatial reference systems and are not suitable to be directly 
visualized on virtual globes. Virtual globes support global coordinates such as WGS84.  
  Server – The server includes running Apache HTTP server, comprising a single HTML 
file and files related to Cesium API. The HTML file references CSS and JavaScript for 
Cesium API. It enables the user to visualize and interact with the Cesium virtual globe as 
part of the web  interface.  The server also includes  the KML/KMZ  file obtained from 
CityGML. This file is parsed by the JavaScript for the end-user to visualize and interact 
with 3D city objects. 
  Client – The client side involves the web application, which includes the interface for the 
user to visualize and interact dynamically with 3D city objects. The interface also includes 
functionality to create 3D buffer zones and analyse the objects with the buffer. The web 
application runs on an HTML5 enabled browser, which is WebGL compatible.  
Web based 3D analysis and visualization using HTML5 and WebGL 
Page | 28
The  design  and  implementation  for  each  of  the  blocks  have  been  explained  in  subsequent 
sections: 
4.2.  Pre-processing 
As per research requirements, the input should be a well formed CityGML file and the objective 
is to visualize the contents of CityGML on the WebGL based Cesium virtual globe. CityGML 
files are usually written in a local spatial reference system. Due to the same reason, the input file 
Potsdam.gml, being used in this research, is written in local datum ETRS89 (EPSG: 25833). As 
this is a local reference system for Europe zone, it is not suitable to be visualized on global scale 
on a  virtual globe.  In order to achieve the  same, the pre-processing  of the data  is mandatory, 
which projects the local reference system to a global reference system such as WGS84. 
The tool 3DCityDB Importer/Exporter v1.6 has been used for the same purpose. It is an open 
source tool, which allows to import CityGML file to a 3D city database and export the contents 
from the database in the form of KML/KMZ. The functionality can be described with the help 
of Figure 4-2: 
Figure 4-2: Conversion process of CityGML to KML 
As shown, the tool allows us to import CityGML file Potsdam.gml to the 3D city database. It 
provides us the options to import contents for specific object id, bounding box or even the city 
objects such as building, water body, land use, vegetation and transportation. In this research, as 
the  bounding  box  (envelope)  is  already  defined  in  Potsdam.gml,  the  complete  file  has  been 
imported to the database. 
The  3D  city  database is an open source  3D  geo database, which provides the  functionality to 
store,  manage  and  represent  virtual  3D city  models  on  top  of  a  standard  relational  database. 
PostGIS  v2.0  has  been  used  as  a  spatial  relational  database  in  this  research.  The  reason  is, 
PostGIS  v2.0  is  capable  of  handling  and  storing  3D  data  types.  The  installation  of  3D  city 
database on top of PostGIS v2.0 provides the tables to store each class object of a city model 
such as building, water body, land use, vegetation and transportation. By importing the CityGML 
to the  3D  city  database,  all the city objects are stored in their respective tables. Since the file 
Potsdam.gml contains only 3D building objects, they are imported successfully to building table 
in 3D city database. 
Once the data is successfully imported to the 3D city database, the data is ready to be exported. 
The tool provides us an option of ‘KML/COLLADA Export’, with the help of which, the city 
Web based 3D analysis and visualization using HTML5 and WebGL 
Page | 29 
objects from the database can be exported as KML files. The tool also provides us the option to 
specify number of tiles and their length. The information of tiles and corresponding city objects 
can be exported in the form of an external JSON file. The 3D model inside virtual city model can 
also be exported as separate COLLADA file and can be embedded in KML file, which is out of 
scope of this research. 
If there exists tiles and COLLADA models, each of the tile and corresponding objects are stored 
in a KMZ file. Further, the reference of the KMZ files, in accordance with the tiles, is given in a 
master KML file using KMLNetworkLink (KML Tutorial, 2013). In other words, a single KML 
file  is  created,  which  contains  the  references  of  KMZ  files  for  each  of  the  tile  and  the 
corresponding detail for each tile is stored in the KMZ file. If there are no tiles and COLLADA 
models, there will be only one KML file containing geometry and semantic information of the 
CityGML file. The geometry contains x, y and z-coordinates for each of the building vertex and 
they are stored as polygon under a linear ring. With the help of z-coordinate value (height), the 
buildings  appear  as  extruded.  The  semantic  information  is  stored  as  CDATA  (W3C 
Recommendation,  2013)  inside  the  KML.  The  semantic  information  includes  name  of  the 
building, building ID, height value, address and envelope.  
4.3.  Server side implementation
The Apache  HTTP  server has been used  in this research, which  acts  as a local server and  is 
responsible  for  providing  the  data  to  the  client  side.  For  server  side  implementation,  the 
necessary files have been stored as shown by hierarchy diagram in Figure 4-3: 
Figure 4-3: Application’s structure diagram 
Web 3D 
Application
Potsdam.html
Potsdam.kml
Build
Cesium.js
Widgets
Workers
Source
JavaScript
KmlDataSource.js
DrawBuffer.js
3DAnalysis.js
Renderer
Shader
GLSL
Require.js
Documents you may be interested
Documents you may be interested