CA2562203A1 - Internet census geographic information system (gis) and method of applying census data to geographic mapping applications - Google Patents

Internet census geographic information system (gis) and method of applying census data to geographic mapping applications Download PDF

Info

Publication number
CA2562203A1
CA2562203A1 CA002562203A CA2562203A CA2562203A1 CA 2562203 A1 CA2562203 A1 CA 2562203A1 CA 002562203 A CA002562203 A CA 002562203A CA 2562203 A CA2562203 A CA 2562203A CA 2562203 A1 CA2562203 A1 CA 2562203A1
Authority
CA
Canada
Prior art keywords
server
gis
database
map
php
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002562203A
Other languages
French (fr)
Inventor
Yosri Diab
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CA002562203A priority Critical patent/CA2562203A1/en
Publication of CA2562203A1 publication Critical patent/CA2562203A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/003Maps
    • G09B29/006Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes
    • G09B29/007Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes using computer methods

Description

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

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 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 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 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.

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 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.

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.

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, 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 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.

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 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, 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 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 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.

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 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 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.

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.

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 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 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 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 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 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 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 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 "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 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 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.

Claims

CA002562203A 2006-09-27 2006-09-27 Internet census geographic information system (gis) and method of applying census data to geographic mapping applications Abandoned CA2562203A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CA002562203A CA2562203A1 (en) 2006-09-27 2006-09-27 Internet census geographic information system (gis) and method of applying census data to geographic mapping applications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CA002562203A CA2562203A1 (en) 2006-09-27 2006-09-27 Internet census geographic information system (gis) and method of applying census data to geographic mapping applications

Publications (1)

Publication Number Publication Date
CA2562203A1 true CA2562203A1 (en) 2008-03-27

Family

ID=39264188

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002562203A Abandoned CA2562203A1 (en) 2006-09-27 2006-09-27 Internet census geographic information system (gis) and method of applying census data to geographic mapping applications

Country Status (1)

Country Link
CA (1) CA2562203A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020160591A1 (en) * 2019-02-04 2020-08-13 Nearmap Australia Pty Ltd Method of and system for defining a service for serving map images

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020160591A1 (en) * 2019-02-04 2020-08-13 Nearmap Australia Pty Ltd Method of and system for defining a service for serving map images
US11874859B2 (en) 2019-02-04 2024-01-16 Nearmap Australia Pty Ltd Method of and system for defining a service for serving map images

Similar Documents

Publication Publication Date Title
US7925982B2 (en) System and method of overlaying and integrating data with geographic mapping applications
US10795958B2 (en) Intelligent distributed geographic information system
US7353114B1 (en) Markup language for an interactive geographic information system
US20090027418A1 (en) Map-based interfaces for storing and locating information about geographical areas
US9218362B2 (en) Markup language for interactive geographic information system
CN103398719B (en) Digital mapping system
CN101014831B (en) A digital mapping system
JP5789026B2 (en) Generation and supply of tiles in a digital mapping system
WO2007127814A2 (en) Identifying geo-located objects
US20240045571A1 (en) Immersive, Multi-State Uni-Card
Lehto et al. Real‐time generalization of XML‐encoded spatial data for the Web and mobile devices
WO2007124512A2 (en) Registration of geographic objects at a geographic information system for publication
CN101140579A (en) Double windows electronic map with magnifying glasses windows service system and method on internet
CA2562203A1 (en) Internet census geographic information system (gis) and method of applying census data to geographic mapping applications
Valentini et al. Multi-frame and multi-dimensional historical digital cities: the Como example
Boulos Principles and techniques of interactive Web cartography and Internet GIS
Pannevis et al. Using web-sources for location based systems on mobile phones
RU2793286C2 (en) Method and server for provision of user with points of interest on map
Palazzolo et al. Mapping with Drupal
Li Design Patterns of Web Maps
Yinga et al. Design and implementation of a portal site for the Olympic games 2008 in Beijing using Google Maps
Huang et al. Mobile GIS-based navigation guide
Bello et al. Design and Implementation of a Navigational System for the University of Ilorin

Legal Events

Date Code Title Description
FZDE Dead