Language selection

Search

Patent 2562203 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent Application: (11) CA 2562203
(54) English Title: INTERNET CENSUS GEOGRAPHIC INFORMATION SYSTEM (GIS) AND METHOD OF APPLYING CENSUS DATA TO GEOGRAPHIC MAPPING APPLICATIONS
(54) French Title: SYSTEME D'INFORMATION GEOGRAPHIQUE (SIG) DE RECENSEMENT INTERNET ET METHODE PERMETTANT D'APPLIQUER DES DONNEES DE RECENSEMENT AUX APPLICATIONS CARTOGRAPHIQUES
Status: Dead
Bibliographic Data
(51) International Patent Classification (IPC):
  • G06F 16/29 (2019.01)
  • G06F 16/9537 (2019.01)
  • G09B 29/00 (2006.01)
  • H04L 12/16 (2006.01)
(72) Inventors :
  • DIAB, YOSRI (Canada)
(73) Owners :
  • DIAB, YOSRI (Canada)
(71) Applicants :
  • DIAB, YOSRI (Canada)
(74) Agent: NA
(74) Associate agent: NA
(45) Issued:
(22) Filed Date: 2006-09-27
(41) Open to Public Inspection: 2008-03-27
Availability of licence: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): No

(30) Application Priority Data: None

Abstracts

Sorry, the abstracts for patent document number 2562203 were not found.

Claims

Note: Claims are shown in the official language in which they were submitted.

Sorry, the claims for patent document number 2562203 were not found.
Text is not available for all patent documents. The current dates of coverage are on the Currency of Information  page

Description

Note: Descriptions are shown in the official language in which they were submitted.



CA 02562203 2006-09-27

Atty Docket No.: 2106.0001 P
PATENT APPLICATION

Title: INTERNET CENSUS GEOGRAPHIC INFORMATION SYSTEM (GIS) AND
METHOD OF APPLYING CENSUS DATA TO GEOGRAPHIC MAPPING
APPLICATIONS

Inventors:
Cheryl Parker
1711 Leavenworth Street, Apt. 5
San Francisco, California 94109
USA

Yosri Diab
1867 Rufus Drive
North Vancouver, BC V7J 3L8
CANADA


CA 02562203 2006-09-27
BACKGROUND

The present invention combines a Server-Based Vector GIS System with an
API Mapping System. It features a client/server model, which serves vector
based
maps that are rendered directly inside a user's browser. It also features a
Nationwide
Census database web GIS system that can be rendered as polygons over a
National
base map provided by an API Mapping System. And, it features a "Database
Builder" interface that enables users to build the database and all required
server
pages directly from map files.

FIELD OF THE INVENTION

The present invention relates to a system which provides Geographic
Information Systems (GIS) over the Internet. In one embodiment, the present
invention is an interactive multi-National web-based Geographic Information
Systems
(GIS) mapping system that provides a detailed geographical and data profile of
a
local setting. It retrieves, maps and exports datasets that are aggregated
based
upon the boundaries of National Census geographies. It also connects to a
variety of
geographic-based web services to dynamically map listings of current events
and
amenities in a local area. It can be customized to suit unique needs for a
variety of
alternative embodiments.

DESCRIPTION OF RELATED ART

Internet, or "web", Geographic Information Systems (GIS) systems have been
in use for nearly a decade. Typically, web GIS systems are comprised of a GIS

2


CA 02562203 2006-09-27

database that resides on a server, a user interface on the client-side and
some type
of active server page that processes requests between browser and server. In
addition, some of these systems have an "administration" interface to assist a
system
administrator in automatically generating the web protocols for displaying the
GIS
database in a client's browser.

There are a variety of approaches to Web GIS that have appeared in recent
years:

- A server-based "Internet Map Server" (IMS) web GIS method of dynamically
producing opaque raster images on the server-side that must then be uploaded
to
the user's browser. A main problem of these systems is that of requiring a
delay
in request processing time in order to upload the images.

- Adobe Flash-based mapping systems which may or may not have a Flash-based
interface and are not connected to a database. These systems upload static swf
files from a server, either on a per-request basis or upon launch of the
website.
Problems related to these types of Flash mapping systems include: (1) they are
highly limited in the breadth of geographic area they can cover and (2) they
require a delay in processing time required for uploading the swf files to the
client
browser.

- Open Source Flash mapping systems that are connected to a server which
dynamically generate swfs on the server-side that are then uploaded to a
user's
browser. A main problem of these systems is that of requiring a delay in
request
3


CA 02562203 2006-09-27

processing time in order upload the swfs.

- "AJAX-based" (Asynchronous Javascript and XML) client-side API web mapping
systems which use client-side javascript to dynamically render data served
from a
spatial-relational database via an xml data stream. A main problem of these
systems is that they are limited in the amount of client-side rendering they
can do
due to client-side memory restrictions and data transfer limitations. As such,
these systems cannot dynamically render interactive polygons. Rather, they are
limited to just that of points and lines, simple datasets and functions.

- "SVG" (Scalable Vector Graphics) vector-based web GIS systems. A main
problem of these systems is requiring a non-standard "plug-in" download in
order
to use the system.

SUMMARY OF THE INVENTION

In view of the above mentioned problems, advantages of the present
invention include providing a quick request/response loop for map data
retrieval,
providing comprehensiveness in both the geographic breadth and detail it can
cover,
providing high resolution vector-based imagery, not requiring download of a
non-
standard plug-in, and rendering interactive client-side polygons. Each of
these
advantages is elaborated below.

To summarize, the present invention combines a Server-Based Vector GIS
System and an API Mapping System (like Google Maps) with a database composed
of National Census geographic boundaries and data files. The present
4


CA 02562203 2006-09-27

uses a combination of dynamic HTML and an embedded Flash Player to
seamlessly overlay translucent, interactive dynamically generated vector-based
polygonal Census boundary maps on top of an API Mapping System. The overlaying
Flash-based vector maps can perform thematic analysis, be clicked-on for
information retrieval, display mouse-over tool-tips and query a dynamic block-
level
National spatial-relational database.

The Server-Based Vector GIS System is a free-standing web GIS system that
dynamically renders vector-based maps using an Adobe Flash Player' with data
served from a MySQL2 spatial-relational database via PHP pages3. Advantages of
the Server-Based Vector GIS System include optimizing result/response time,
user
interactivity and quality of map resolution. This is possible because of the
combination of the following:

a. Client-side+Server-side GIS: The Server-Based Vector GIS System combines
an Adobe Flash-based client-side Interface with server-side Open Source and
commercial spatial-relational databases. The underlying server-based spatial-

' Adobe Flash Player. The Adobe Flash Player is available from Adobe Corp for
use with visualization
in web browsers.

2 NIySQL is an open source database from MySQL Inc. It can provide fast,
multithreaded, multi-user,
and robust SQL (Structured Query Language) database server. With the release
of v4.x, a "spatial
component" has been added. This component makes it possible to have a
relational database with
latitudinal and longitudinal coordinates. MySQL v4.x conforms to the Open GIS
Consortium (OGC)
standards.

3 PHP is a server-side scripting language for creating dynamic Web pages. The
pages are created
with PHP and HTML. When a visitor opens the page, the server processes the PHP
commands and
then sends the results to the visitor's browser, just as with ASP or
ColdFusion. Unlike ASP or
ColdFusion, however, PHP is Open Source and cross-platform. Without any
process creation
overhead, it can return results quickly.


CA 02562203 2006-09-27

relational database provides speed and scalability in serving data to a user's
browser. The ability to dynamically render vector-based spatially accurate
maps within the client's browser directly from a spatial-relational database
makes the system fast, very robust, with high resolution maps. This is
because no raster images or "swfs"4 need to be uploaded to the user's
browser. Rather, only a data stream is passed to the browser from the server
and the Flash player then dynamically renders the map. This technique
optimizes the speed of the request/response loop and therefore the speed of
the system as a whole.

b. Flash-based GIS Interface: The Server-Based Vector GIS System Graphical
User Interface is completely Flash-based, making the system highly
interactive. This highly interactive nature, combined with a very fast
request/response loop and high resolution maps brings web GIS into the realm
of desktop mapping software.

c. A "Database Builder": The system's "Database Builder" automatically creates
the MySQL relational database and all required PHP code based upon user-
defined parameters which can then be saved in a template.

The vector-based mapping property enables the Server-Based Vector GIS
System to be integrated with an API Mapping System. That is, due to the
translucent
character of the vector-based Flash Layers, an API Mapping System can be seen

4 a"swf' file is embedded in the main web page and runs off the Flash Player.
It is the object that a
user interacts with. It must be "compiled" from a6Fla file


CA 02562203 2006-09-27

underneath. And, because the vector map layers are served by an OGC-compliant
spatial-relational database, they align seamlessly with an underlying API
Mapping
System.

The combination of an API Mapping System, a client/server-based
dynamically generated Flash-based web GIS (like the Server-Based Vector GIS
System) and a National spatial relational database results in a comprehensive
multi-
National web GIS system. The API Mapping System provides seamless, accurate
multi-National coverage with panning and zooming and accurate multi-National
address location/geocoding. The Server-Based Vector GIS System, in turn,
provides
the major component that an API Mapping System lacks - a true GIS that
connects
to a spatial-relational database, performs dynamic spatial analysis, and
displays
polygonal-based datasets that can also be displayed thematically. An
underlying
spatial-relational database composed of all National Census geographies (from
the
smallest geographic unit up to the largest one), creates a National block-
level web
GIS framework. This enables users to perform dynamic thematic/spatial analysis
for
any location in a Nation down to the smallest aggregate level. In addition,
the system
enables users to add any local or National data set directly into the
relational
database, enabling detailed local GIS data systems within the context of a
multi-
National system. Finally, by combining two systems -- the Server-Based Vector
GIS
System and an API Mapping System -- speed is optimized because multiple
servers
simultaneously process a single request.

7


CA 02562203 2006-09-27
Functionality of Embodiments

In one embodiment, the present invention provides the following functionality:
= Dynamic tool tips and labeling.

= Zoom to an address.

= "Local search" for businesses and events.
= Web/blog search for any selected item.

= Select-and-zoom drop-down lists.
= Dynamic multi-criteria queries.

= Map navigation, including panning and zooming.

= Click-on-map to retrieve data for the selected geographic area.
= Draw on the map to define an area.

= Dynamic 2-D and 3-D Thematic Mapping of polygon, point and line data.
Users view the thematic distribution of a selected polygonal dataset across
the
map, either via a color range distributed across a 2-D map or by a 3-D
display,
with heights varying per data range.

= Dynamic tables that display information about the selected geographic area
or
item.

= Report Templates that can be printed.

= Trend graphs that display selected data results across time.

= Animated maps that display selected data results across time.

= Pie or Bar charts that display data distribution across each variable.
8


CA 02562203 2006-09-27

Tabular data that can be exported as a Comma Delimited file.

Map Data that can be exported as xml to be dynamically integrated into other
web GIS services.

Ability to connect to other xml, gml or php-based web services.

Both the Flash interface and underlying database can be customized for
unique needs and therefore can serve a variety of alternative embodiments.
Users
can add any number of spatial and relational layers to enhance the existing
Census
spatial-relational database, covering any breadth and scale of geography to
develop
a highly detailed and comprehensive database. These datasets can either be
tabular,
providing data that conforms to existing census boundaries or spatial,
providing
additional polygon, point or line layers to the existing present invention
layers. For
example, a statewide or National parcel layer could be accommodated by the
system. In addition, the system can dynamically integrate spatial layers and
datasets
that are brought in via web services to enhance a local spatial-relational
database.
Furthermore, a custom-designed "Database Builder" back-end GUI interface can
be
developed to automate database updates.

Various "modules" can be added to the above embodiment to enhance the system's
overall functionality. These include:

Ortho Photo Module

This module enables users to incorporate ortho photos into an interface,
9


CA 02562203 2006-09-27

enabling seamless integration with other layers and dynamic panning and
zooming.
GeoCoding & Remote Update Module

This module is a geocoder, enabling single and multiple-address dynamic
geocoding. "Remote Update" enables a data table (can be dbf, csv, excel) with
address coordinates to be remotely uploaded to the database, geocoded and
displayed as a point layer.

Alternative embodiments of the software include any disciplines that can
benefit from a spatial component in decision-making. This includes, but is not
limited
to:

Real Estate

Economic Development
City Planning

Public Works and Utilities
Location-Based Services
Parcel Data Portals
Surveying

Hydrology
Transportation and Land Use Planning
Demographics and Census

Imagery
Street/address Location



CA 02562203 2006-09-27
Forestry

Oceans
Environmental
Health

Business
Agriculture
Homeland Security

BRIEF DESCRIPTION OF THE DRAWINGS

Figure 1 is a axonometric diagram showing the components of the present
invention.

Figure 2 is a diagram illustrating the difference between the way a
conventional server-based system processes request/response and the way the
present invention does this process.

Figure 3 is a diagram depicting the components of the Server-Based Vector
GIS System.

Figure 4 is a diagram showing the Inputs/Ouputs of the "Database Builder."
Figure 5 is a flow chart depicting the flow of the process for converting
shapefiles to a MySQL and database and PHP statements.

Figure 6 depicts the Server of the Server-Based Vector GIS System.
Figure 7 depicts the Viewer of the Server-Based Vector GIS System.
Figure 8 is a diagram showing how the Server-Based Vector GIS System
Viewer is compiled from a Flash "fla" file.

11


CA 02562203 2006-09-27

Figure 9 is a diagram depicting the request/response communication between
the Server-Based Vector GIS System Viewer, Communicator and Server.

Figure 10 is a flow chart depicting the process of aligning the Server-Based
Vector GIS System with the API Mapping System upon webiste launch.

Figure 11 is a diagram showing the communication between the Server-Based
Vector GIS System and an API Mapping System.

Figure 12 is a simplified process flow diagram of the way a request gets
processed in the present invention.

Figure 13 is a detailed process flow diagram of the way a request gets
processed in the present invention.

DETAILED DESCRIPTION OF THE INVENTION
COMPONENTS OF THE PRESENT INVENTION

As figure 1 illustrates, the present invention is composed of two sub-systems
a
Server-Based Vector GIS System 1, connected to a National Census spatial-
relational database 3 and an API Mapping System 2. Each of the components of
these systems is described in detail below.

SUB-SYSTEM 1: Server-Based Vector GIS System
Overview

The Server-Based Vector GIS System is a server-driven interactive vector-
based mapping system for the web. It combines an Adobe Flash-based Interface 4
12


CA 02562203 2006-09-27

with Open Source and commercial spatial-relational databases 5. The underlying
spatial-relational database provides speed and scalability. The ability to
dynamically
render vector-based spatially accurate maps from a spatial-relational database
on the
client-side makes the system fast with high resolution map layers, including
points,
lines and polygons. The highly interactive and customizable Flash Interface
brings
web GIS into the realm of desktop mapping.

Features
Spatial Relational Database Provides Spatial Interactive Functionality

The Server-Based Vector GIS System includes a Spatial-Relational Database 6
that
is fully compliant with Open GIS Consortium (OGC) standards. OGC compliance
enables
the Server-Based Vector GIS System to be seamlessly integrated with other web
GIS
systems and geospatial web services. This OGC compliance also enables the full
range of
spatial analytical capabilities as all web GIS systems, including buffering,
cross-layer
analysis, and so on. This spatial analytical functionality is enhanced by the
user interactivity
provided by the system's Flash interface 4. Thus, it is possible for users to
draw on a map,
save the boundaries, and perform a multi-layered spatial analysis that
incorporates this
newly generated layer. As such, the Server-Based Vector GIS System is on par
with
desktop GIS.

In one embodiment, the Server-Based Vector GIS System comes standard with an
Open Source MySQL database but can also be configured to work with other
commercial
databases in alternate embodiments, such as Oracle, Informix, SQL Server and
MSAccess,
13


CA 02562203 2006-09-27

and so on. MySQL 4.x is fully compliant with Open GIS Consortium (OGC)
standards.
Client/Server Model

The Server-Based Vector GIS System is based on a client/server model
designed specifically to optimize speed and functionality. The system directly
reads
a spatial-relational database 6 and then uses this information to dynamically
render
a vector map layer within the Flash player inside a user's browser 4. As
figure 2
illustrates, only a data stream 10 is sent across the web; not a raster image
8 as in a
server-based IMS web system 7. This client/server design 9 accelerates speed
and,
given that the map image is vector-based, resolution is high.

Though the system is vector-based, it also can serve raster imagery. The
system's "Ortho Photo Module" seamlessly integrates ortho photos with other
base
layers.

Scalability
The "Database Builder" 11 (Fig. 3) provides a System Administrator with a
Graphical User Interface for indexing, tiling and scaling data sets to
optimize speed
and "grow" a MySQL-based dataset incrementally over time. The MySQL database
can handle very large data sets, such as a National parcel data set. If the
data set is
indexed properly, the speed of a multimillion record data set will be as fast
as a
hundred record data set. The system can be configured across multiple CPUs and
servers 6 to accommodate the needs for redundancy and for memory. The system
can also readily accommodate incremental growth of a dataset, as long as the
data

14


CA 02562203 2006-09-27

structure and functionality remain the same. Thus, a parcel website that began
as a
city can easily grow incrementally to a county, then to a region, then to a
Nation.
System Architecture

As shown in figure 3, the Server-Based Vector GIS System is built upon the
following elements: a Database Builder 11 , Server (MySQL Database) 12,
Communicator (PHP) 13 and Viewer (Adobe Flash Player) 14. It directly reads
ESRI
shapefiles 15 and xml, and in alternative embodiments, can be custom-
configured to
connect to Oracle Spatial, and can output web services as xml to be able to be
incorporated into other web GIS systems. It can directly overlay API Mapping
Systems (like Google Maps), connect to xml, gml and php-based web services, as
well as incorporate an entire National Census, thus providing a National base
map
and spatial-relational database as a highly robust starting framework upon
which to
build a custom system using a detailed local database. Each of the Server-
Based
Vector GIS System's components is described below.

Database Builder

The Database Builder 11 is a desktop Graphical User Interface (GUI)
programmed using c++, that translates a series of maps from the standard ESRI
shapefile format 15 to a series of SQL tables in a MySQL Database and PHP
pages
16.

The Database Builder provides the System Administrator with a variety of
options to optimize the speed of the database, to determine which layers
display at


CA 02562203 2006-09-27

various zoom levels. The Builder automatically optimizes the drawing speed for
layers by limiting the number of points based on the desired drawing scale.

As figure 4 illustrates, map layer specifications 17 are entered through a
Database Builder Graphical User Interface 18 as "Inputs". Then based upon
these
specifications, the Database Builder automatically generates a series of MySQL
and
PHP statements to build the components needed for the operation of the system
19.
The System Administrator can then save all settings as a "template," such that
the
next time s/he must update the database, s/he only needs to open the template
and
press "Run."

Figure 5 details the Database Builder process flow for converting shapefiles
to
a MySQL and database and PHP statements. Specifically, a user must first
launch
the Builder GUI software 20. Next, s/he must choose which "shapefile" map
layers to
include via an interactive directory 21. The selected layers will appear as a
list 22.
The user then can order the layers based upon which is topmost and which is
bottommost 23. S/he can also specify which layers will be used for multi-
criteria
queries and define which variables will be used as criteria 23. After defining
the
order of layers and the criteria for queries, the user assigns a name to the
"project" by
typing it into a "save as" text box 24. This is the name that will be assigned
to the
MySQL database as well as become the name of the directory for all of the PHP
files
that will be generated by the Builder. At this time, the user will also be
prompted to
enter the IP address of the server where the databases and PHP files will
reside 25.

16


CA 02562203 2006-09-27

These parameters (database name and server address) will also be stamped into
all
of the automatically generated PHP pages.

After naming the "project" and defining the IP address of the server, the user
can then hit the "run" button, which automatically generates the MySQL
database
and all PHP pages required for processing all requests 26. A user can then
save all
these settings as a "Builder Template" by assigning a name and pressing the
"Save
as Template" button 27. Then, at a later date, if the user wishes to update
the
database due to changed shapefile layers, all s/he needs to do is make sure
the
shapefiles are saved in the same place with the same names and then open the
saved template and hit "run" 28.

Server

The MySQL Database, or "Server" 19, is automatically populated by the
Database Builder 18 with data translated from ESRI shapefiles, address files
and
other tabular data sets (such as building permits, assessor data, etc) 17. As
figure 6
shows, each Server-Based Vector GIS System map layer has its own table in the
Server 29, and all the fields of this table come from the original shapefile.
The
attribute data is stored in a standard MySQL format side-by-side with the
spatial
coordinates (a series of longitude and latitude pairs) 29.

Given that MySQL is a relational database, all of the rules of relational
databases apply 30. These tables can be edited, other tables can be placed in
this
database, and tables in this database can be queried relative to those in
other

17


CA 02562203 2006-09-27

databases. This aspect enables dynamically driven multi-table/multi-variable
spatial
queries to be integrated into the web GIS interface.

In one embodiment, the present invention comes standard with a National
spatial-relational database composed of demographic tables and geographic
boundaries for all official Census areas 3 (Fig. 1). The database structure
and
corresponding Flash Interface can be applied to any Nation with a National
demographic dataset.

In alternative embodiments, this database can be enhanced by any number of
additional databases with tabular datasets conforming to Census boundaries or
any
other GIS layer and its corresponding attribute data 5. This is significant
because
jurisdictions that do not have a comprehensive set of GIS layers can now
readily
have a fairly robust local GIS system with little effort. In addition,
jurisdictions can
build their specific GIS system within a larger regional context and therefore
be able
to perform spatial analyses within a more natural data context than is
typically
possible due to the "artificial" analytical context imposed by jurisdictional
boundaries
and the corresponding GIS data limits.

Viewer
The "Viewer" is a custom-designed Macromedia Flash Interface for GIS that is
integral to the Server-Based Vector GIS System. The use of Macromedia Flash as
the viewing interface, results in a highly interactive Graphical User
Interface,
including instant map re-draw, no page refresh, one-page display (i.e.,
enabling

18


CA 02562203 2006-09-27

various data display windows to simultaneously interact with each other). The
Viewer
can also dynamically connect to xml, gml and php-based web services to bring
in and
render additional layers and data. Figure 7 shows the aspects of the Viewer 31
in
one embodiment. As the diagram illustrates, it includes a navigable
interactive map
35, tools for map navigation 32, input forms for search queries 33 and display
areas
for search results 34.

As figure 8 shows, the Viewer runs off a library of pre-programmed
"Actionscript"5 scripts 36 that make the various Flash elements move, re-size
and
dynamically render the various map layers. It is composed of one central
decompiled
Flash file (fla) 37 that can be compiled as a variety of distinct "swf' files
39 for any
number of different customized designs and layouts. That is, though multiple
custom-designed Server-Based Vector GIS System websites may look completely
different and contain a different range of functions, each of these websites
was
compiled from exactly the same decompiled Fla file 37.

This is possible because of the way the decompiled Fla file is composed. It
includes: an "include" function to access a library of all Actionscript
functions 36 for
sending/receiving requests from PHP pages to dynamically render the various
map
layers inside the swf file and make the system behave as a GIS. This library
is
automatically "included" when the swf gets compiled. In the very first
Actionscript
line of the Fla, each customized design/layout is assigned a unique "template"
name
40. This name is then used as a parameter that gets passed to various
functions to
Actionscript is the programming language of Flash. It is a client-side
scripting language similar to
Javascript.
19


CA 02562203 2006-09-27

determine the distinct functionality and layout of each compiled swf 39.
Actionscript
functions 41, distinct from the "included" library, can accept the name of the
template
as a parameter when the function is called. The function will execute
differently
depending upon the name of the template (these functions include directions
for
colors, shapes, color gradients, tool tip attributes, font colors and shapes,
URL links
to graphic objects, JPEG images, video links, symbol selection, rotation, map
specifications, raster specifications,photo links, etc). A series of "symbol
libraries" 38
composed of movie clips, buttons and graphics get positioned within the main
swf
"Stage" based upon the name of the template that gets passed as a parameter
during the initialization script that executes when the website is initially
launched.
These movie clips, buttons and graphics provide a distinct "look and feel" for
each
distinct Server-Based Vector GIS System website. Once compiled, all of these
elements combine to produce a distinct swf to be embedded in the host PHP
page,
based upon the assigned "TemplateName" 39.

Communicator
The "Communicator" includes a series of PHP pages that are automatically
generated by the Database Builder. These PHP pages serve as the medium for
processing the request/response loop between the Viewer and the Server. Simply
put, the Server receives database instructions (SQL) from the Viewer via
Actionscript
and a Communicator PHP page. The Communicator, in turn, sends database results
(SQL) back to the Viewer to display for the user via Actionscript.



CA 02562203 2006-09-27

As Figure 9 illustrates, when a user clicks on a map layer inside the Viewer
42,
a Flash "ActionScript" sends this request to a Communicator PHP page 43. This
PHP page then translates this request 44 into an SQL query that the Server can
understand 45. The Server executes the SQL query 46, retrieves the data and
then
sends the result 47 back through the Communicator PHP page 44 to an
ActionScript within the Viewer 48. The user will then see the map change, data
tables
get displayed, charts appear, videos play, etc 42. It all depends upon the
instructions
inside the ActionScript.

To illustrate the process, consider the practical example of a Viewer
developed for finding residential real estate. Assume that a user wants to
search for
all houses that are for sale, within a certain price range, have four
bedrooms, and
within a certain district of the city. Once the user fills in the information
within Viewer
"Property Search" column and clicks on the "Run Query" button, the Viewer will
format an SQL database query statement and send it to a Communicator PHP page,
which in turn queries the Server. Results are then sent back through the
Communicator, formatted in ActionScript and then displayed within the Viewer.
The
Viewer will populate the appropriate list with the found properties and
display the
properties on the map. When a user wants to see the location about a specific
house
s/he simply selects a property from the property list or clicks on the map, At
this point
the same process is repeated again.

This system architecture reflects a very efficient and robust method of doing
21


CA 02562203 2006-09-27

web GIS that makes optimal use of both client-side and server-side
environments 9
(Fig. 2). All requests to-and-from the Server are simple data streams 10 and
thus
move very quickly across the Internet. Users do not have to wait for map
images to
be uploaded to their browser after being sent back from the server 8 (unlike
server-
side IMS web systems 7). Rather, given that the Flash Player is client-side,
the
results of requests can be processed immediately inside a user's browser by
Actionscript which simply instructs map layers how to be rendered or other
objects to
re-position or animate themselves. For this reason also, the speed of the
Server-
Based Vector GIS System as a web-based GIS system is very fast.

SUB-SYSTEM 2: API MAPPING SYSTEM

The second sub-system comprising the present invention is an API Mapping
System 2 (Fig. 1). An API Mapping System is an interactive client/server web
mapping system like Google Maps or MapQuest, that provides the ability to pan,
zoom, geocode, route, and display more detail as a user zooms closer. It
features an
Application Programming Interface (API) that enables developers to leverage
the
mapping functionality and integrate it into their own websites. The
functionality of the
API Mapping Systems can be accessed by client-side javascript functions and
typically use "AJAX" techniques to dynamically display geospatial data served
by web
services 49.

The use of javascript and AJAX in these mapping systems limits the amount of
dynamic rendering possible from web services or geospatial databases due to

22


CA 02562203 2006-09-27

memory restrictions and in "Network latency" -the delayed interval between
user
request and server response. As such, these javascript/ AJAX -based mapping
systems are only capable of rendering points and lines in a dynamic manner,
but not
polygons. This limitation therefore restricts the capacity of these systems to
that of
simple datasets and functions. By combining an API Mapping System with a
dynamic, vector-based system such as the Server-Based Vector GIS System and
thereby seamlessly overlaying multi-national coverage with dynamic polygonal
information, this limitation is overcome. And, not only is the latency problem
removed, but speed is now optimized because the system seamlessly engages
multiple servers in order to simultaneously process a single request.

Referring back to figure 1, in the present invention system, the Server-Based
Vector GIS System Viewer I communicates with the API Mapping System 2 by
passing Actionscript and javascript functions back-and-forth 50, enabling both
mapping systems to dynamically align themselves based upon user interaction.
The
API Mapping System is embedded in the same PHP page as the Flash Player
containing the Server-Based Vector GIS System Viewer 51, and both are
dynamically
aligned via the use of Cascading Stylesheets (CSS).

As the process flow diagram in Figure 10 illustrates, both the API Mapping
System and the Server-Based Vector GIS System Viewer are positioned and
sized per the parameters passed to the CSS based upon detection of a user's
screen
resolution during the website launch. This same process is repeated every time
a
23


CA 02562203 2006-09-27

user tries to re-size the browser window. Specifically, a user presses a
launch button
or link 52, which passes a series of parameters, such as "swf' name, starting
lat/lon
and dimensions and x/y coordinates to a "Launch" javascript script 53. The
launch
script opens a temporary "intermediary" php page that detects the user's
screen
resolution 54. This page uses a series of javascripts to determine the size of
the API
Mapping System map and swf based upon screen resolution and the passed
parameters, and uses a relocation script to pass these parameters to the
"host" PHP
page 55. The host PHP then executes a javascript for dynamically positioning
both
the embedded API Mapping System and Flash Player based on passed parameters.
Each embedded map object is placed in a "Div" tag and are positioned using CSS
56. If a user re-sizes his/her browser, then the last step is repeated based
upon the
new screen size/resolution 57.

As Figure 11 illustrates: once the website is launched, the two mapping
systems are embedded and aligned within the same hosting PHP page via
Cascading Style Sheets (CSS) 58. The embedded Server-Based Vector GIS System
swf file then uses Actionscript (contained within the swf) to process commands
59. In
a similar way, the embedded API Mapping System uses javascript, contained
within
the host PHP page to process commands 60. The two systems then pass
javascript/Actionscript commands back-and-forth in order to communicate with
each
other 61.

As depicted in the process flow diagram in Figure 12, when a user interacts
24


CA 02562203 2006-09-27

with the flash interface 62 (i.e., selects an item, Navigates or runs a
search) the
following occurs: a javascript in the main PHP page is called from the
embedded swf
file 63. This javascript is passed several parameters based upon the user's
input.
The javascript executes within the PHP page and makes the embedded API Mapping
System map move or zoom 64. Parameters, based upon the new API Mapping
System map location are passed back to the embedded swf file 65. The swf file,
via
a series of "watch" Actionscript functions programmed to determine when a
variable
changes, receives the new variables and then executes a series of
Actionscripts 66,
including rendering and coloring the map based on new coordinates 67,
displaying
query results in pre-set display grids 68 and performing any other functions
required
to address the original request 69.

Figure 13 depicts this process flow in detail. Specifically, after a user
launches
the application 70, s/he has the choice of selecting an item 71, navigating
the map 72
or running a search 73. S/he can choose to select an item 71 by clicking on
the map
74. This causes an Actionscript to execute via an "onMapClick" function 75.
This
function determines the unique ID or "handle" of the map object which gets
clicked.
Alternatively, a user can select an item from a list 76. An "eventObj"
Actionscript
function will get triggered which will then determine the "handle" of the
selected list
item 77.

This "handle" is then passed to a "sendAndLoadVars" Actionscript function 78.
This function determines the map layer from the handle, and sends both the
handle


CA 02562203 2006-09-27

and map layer as parameters to a PHP page 79. This PHP page contains an SQL
query to send as a "request" to the MySQL database. The database runs the
query
and then sends the results back to the same PHP page for parsing/processing
80.
The PHP page parses all returned items, including geometry, as text strings
and
arrays 81. After all parsing/processing is completed within the PHP page, a
"print"
PHP function sends the text string back through to the swf viewer, to the
original
"sendAndLoadVars" Actionscript function 82. This function then calls various
other
Actionscript functions 83, including displaying attributes in a listbox 84,
rendering
selected items on the map 85, or running dynamic web searches that are keyed
to
specific identifying attributes of the selected item 86. These search results
are then
displayed in a list box inside the swf 87.

The user can choose to navigate the map 72 by either zooming 88, panning
89, or searching for an address 90. To zoom 88, s/he clicks on a button in the
swf
91. This button then executes an Actionscript function that passes the desired
zoom
level as a parameter to a javascript "zoom" function that is embedded in the
host
PHP page 92. This javascript gets executed and causes the API Mapping System
to
zoom to the desired level 99.

Alternatively, a user can navigate the map by panning the map east, west,
north or south 89. To do so, s/he clicks a button 93 which executes an
Actionscript to
determine the new center of the map extent 94. This new map extent information
is
passed as a parameter to a javascript "navigate" function that is embedded in
the

26


CA 02562203 2006-09-27

host PHP page 95. This javascript gets executed and causes the API Mapping
System to re-center itself to the desired location 99.

Alternatively, a user can navigate the map by searching for an address 90. To
do so, s/he enters the address into a text box in the swf and hits a button to
execute
the process 96. Upon pressing the button, an Actionscript function gets called
that
passes the address as a parameter via a "send xml" Actionscript function to an
outside xmi geocoding web service 97. This web service retrieves the Lat/Lon
coordinate information of the address and passes it back to the swf file,
where the
xmi coordinate information is parsed 98. The parsed geographic coordinate data
is
then passed as a parameter to a javascript "navigate" function that is
embedded in
the host PHP page 95. This javascript gets executed and causes the API Mapping
System to re-center itself to the desired location 99.

After the API Mapping System map completes its move in the Host PHP page
99, an "onMoveEnd" listener javascript executes in the host PHP page, passing
the
lat/lon coordinates of the new map position as variables back to the embedded
swf
file 100. A "watch" Actionscript inside the swf then determines when the new

variables enter the swf 101. Upon receiving these new variables, this same
"watch"
function passes the variables as parameters to a series of nested Actionscript
functions 102. These Actionscript functions include that of determining the
new "Map
Extent" for all Flash-based map layers 103. This "Map Extent" is then passed
as a
parameter in a "sendAndLoadVars" function 104 that calls a PHP page to execute

27


CA 02562203 2006-09-27

the necessary SQL for retrieving the geometric coordinates and attribute data
for all
for all map layers to be drawn in the Flash map view 105. The data is
retrieved from
the MySQL database and passed back through the PHP page 106, where it is
parsed
into text strings and arrays 107. These text strings and arrays are then
passed back,
via a PHP "print" function, to the original "sendAndLoadVars" function 108
where a
series of nested Actionscript functions use the information to render various
map
layers and execute any other nested functions, including rendering "selected"
items
and executing and searches 109.

If a user chooses to run a search 73, s/he can either run a search that uses
an
xml-based web service 110 or a search that uses the MySQL database that is
part of
the overall system 111. If s/he chooses the web service option 110, s/he will
enter a
search term in a text input box and then hit a button to execute the process
112.

Upon pressing the button, an Actionscript function gets called that passes the
search
string as a parameter via a "send xml" Actionscript function to an outside xmI
web
service 113. This web service retrieves the desired information and passes it
back
through to the swf file where the xml is parsed 114.

Alternatively, a user can run a search 73 by running a database search 111.
To do so, s/he enters all search criteria through an input "Query" form on the
Flash
Interface and hits "run" 115. Upon pressing the button, the search criteria
get passed
to a "sendAndLoadVars" Actionscript function. This function sends the criteria
as
parameters to a PHP page 116. This PHP page contains an SQL query to send as a

28


CA 02562203 2006-09-27

"request" to the MySQL database 117. The database runs the query and then
sends
the results back to the PHP page for parsing/processing 118. The PHP page
parses
all returned items, including geometry, as text strings and arrays 119. After
all
parsing/processing is completed within the PHP page, a "print" PHP function
sends
the text strings and arrays back through to the swf viewer, to the original
"sendAndLoadVars" Actionscript function where they are passed to nested
Actionscript functions for further processing 120.

After the results from running the search (either web service or database) are
parsed, an Actionscript divides the results into arrays of attribute and
geometric
coordinates 121. The geometric coordinate array is passed to an Actionscript
rendering function which loops through each coordinate element and renders it
within
the map extent 122. The attribute array is passed to an Actionscript function
which
loops through each item and displays it in a list 123. These respective arrays
are
saved as "global" variables 124, so that any time someone selects an item from
a list
76 or the map 74, the information that is displayed or rendered comes from one
of
the saved global arrays 124.

The computer systems employed by the present invention embodiments may
be implemented by any quantity of any personal or other type of computer
system
(e.g., IBM-compatible, Apple, Macintosh, laptop, palm pilot, etc.), and may
include
any commercially available operating system (e.g., Windows, OS/2, Unix, Linux,
etc.)
and any commercially available or custom software (e.g., browser software,
mapping

29


CA 02562203 2006-09-27

software, etc.). These systems may include any types of monitors and input
devices
(e.g., keyboard, mouse, voice recognition, etc.) to enter and/or view
information.

It is to be understood that the software for the computer systems of the
present invention embodiments may be implemented in any desired computer
language and could be developed by one of ordinary skill in the computer arts
based
on the functional descriptions contained in the specification and flow charts
illustrated
in the drawings. Further, any references herein of software performing various
functions generally refer to computer systems or processors performing those
functions under software control. The computer systems of the present
invention
embodiments may alternatively be implemented by any type of hardware and/or
other
processing circuitry. The various functions of the computer systems may be
distributed in any manner among any quantity of software modules or units,
processing or computer systems and/or circuitry, where the computer or
processing
systems may be disposed locally or remotely of each other and communicate via
any
suitable communications medium (e.g., LAN, WAN, Intranet, Internet, hardwire,
modem connection, wireless, etc.). The software and/or algorithms described
above
and illustrated in the flow charts may be modified in any manner that
accomplishes
the functions described herein. In addition, the functions in the flow charts
or
description may be performed in any order that accomplishes a desired
operation.

The software of the present invention embodiments may be available on a
recordable or computer readable medium (e.g., magnetic or optical mediums,
magneto-optic mediums, floppy diskettes, CD-ROM, DVD, memory devices, etc.)
for


CA 02562203 2006-09-27

use on stand-alone systems or systems connected by a network or other
communications medium, and/or may be downloaded (e.g., in the form of carrier
waves, packets, etc.) to systems via a network or other communications medium.

The communication networks may be implemented by any quantity of any type
of communications network (e.g., LAN, WAN, Internet, Intranet, VPN, etc.). The
computer systems of the present invention embodiments may include any
conventional or other communications devices to communicate over the networks
via
any conventional or other protocols. The computer systems may utilize any type
of
connection (e.g., wired, wireless, etc.) for access to the network.

31

Representative Drawing

Sorry, the representative drawing for patent document number 2562203 was not found.

Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date Unavailable
(22) Filed 2006-09-27
(41) Open to Public Inspection 2008-03-27
Dead Application 2009-09-28

Abandonment History

Abandonment Date Reason Reinstatement Date
2008-09-29 FAILURE TO PAY APPLICATION MAINTENANCE FEE

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Application Fee $200.00 2006-09-27
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
DIAB, YOSRI
Past Owners on Record
None
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Cover Page 2008-03-10 1 21
Description 2006-09-27 31 1,066
Abstract 2008-03-27 1 3
Claims 2008-03-27 1 3
Drawings 2006-09-27 13 463
Correspondence 2006-11-01 1 29
Assignment 2006-09-27 2 74
Correspondence 2009-07-06 1 20