US20120158762A1 - Methods, apparatuses and computer program products for converting a geographical database into a map tile database - Google Patents
Methods, apparatuses and computer program products for converting a geographical database into a map tile database Download PDFInfo
- Publication number
- US20120158762A1 US20120158762A1 US12/973,514 US97351410A US2012158762A1 US 20120158762 A1 US20120158762 A1 US 20120158762A1 US 97351410 A US97351410 A US 97351410A US 2012158762 A1 US2012158762 A1 US 2012158762A1
- Authority
- US
- United States
- Prior art keywords
- geographical
- records
- tiles
- tile
- database
- 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.)
- Granted
Links
- 238000004590 computer program Methods 0.000 title claims abstract description 34
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000015654 memory Effects 0.000 claims abstract description 33
- 238000003860 storage Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 description 54
- 230000006870 function Effects 0.000 description 20
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000013507 mapping Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 238000005457 optimization Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
Definitions
- An embodiment of the invention relates generally to database technology and more particularly relates to a method, apparatus and computer program product for optimizing a database to improve database performance for retrieval of location or map data by converting a geographic database into a map tile database.
- mapping services may provide map data and location data requested by media or communication applications of the mobile terminal.
- map or location data provided by mapping services is typically stored in a geographical database.
- the geographical database may be able to store, query and manipulate geographic information and spatial data that may be optimized for two or three dimensions.
- the spatial data may be stored as vector data in the form of geometric data such as, for example, a point, line, polygon, etc. and may have an associated spatial reference system.
- the spatial data may be associated with coordinates such as latitude and longitude coordinates corresponding with locations or objects in the real world.
- coordinates such as latitude and longitude coordinates corresponding with locations or objects in the real world.
- a map of the highway is the visualization of geographic information.
- the data that indicates the locations (e.g., latitude and longitude) of these rendered objects may be the spatial data.
- geographical databases may store geometry data associated with streets, highways, waterways, oceans, landmarks, railroads, administrative area boundaries, etc. It should be pointed out that geographical databases may include records to represent the locations of objects or places in the real world.
- existing systems may utilize map tiles in order to facilitate fast retrieval of geographic data from a geographic database.
- One such technique for rendering the map tiles is tessellation.
- existing systems may utilize tessellation to store data for specific locations by dividing the data up by location and partitioning the world into tiles.
- the geometric data corresponding to the real world may be partitioned into tiles and then a tile index for accessing the geographic database may be created based on the tiles.
- mapping systems typically retrieve data in tile units from a geographical database. While this approach may provide good performance for data retrieval with respect to mapping systems, it may also incur high overhead in computing storage costs and computing processing costs. As such, one drawback with this approach of geometric data retrieval is that it may result in heavy use of computing storage resources (e.g., disk and memory) and processing resources for tile indexes. For instance, geographical data corresponding to a map tile may be zoomed according to a zoom level. As such, given a zoom level z, the number of map tiles at zoom z is 4 z . As an example, consider FIG. 1 relating to the tile system.
- to generate tiles for zoom level z i every tile in zoom level z i-1 may be split into four, as shown in FIG. 1 .
- each tile at a given zoom level may be equivalent to a rectangular block of tiles at higher zoom levels.
- the number of tiles at zoom level 18 is 4 18 , resulting in over 64 billion tiles.
- the size of a leaf index node may be four bytes (e.g., the size of an integer pointer address)
- the total size of the leaf index nodes alone is roughly 256 gigabyte (GB). This is a huge amount of space overhead especially in consideration of the size of the database itself. For instance, the NavteqTM Streets database for the United States has approximately 27 million records with a total disk space size of 11 GB.
- tile-indexing systems typically make tile size tradeoffs when indexing geographical data. Smaller tiles at higher zoom levels contain small amounts of geographical data per tile and hence have better selectivity for queries requesting map data. However, using smaller tiles in this manner typically requires large amounts of disk space to maintain the resulting indexes. For instance, smaller tiles may result in more segment traversals requiring more space to be used. On the other hand, larger tiles at lower zoom levels typically contain large amounts of geographical data per tile and thus may have worse selectivity for queries requesting map data than smaller tiles. However, larger tiles typically require smaller amounts of disk space to maintain the resulting indexes.
- the disk space for leaf index nodes is only about one megabyte (MB) but may result in poor performance for tile requests at zoom level 18, for instance, because the query for map data may typically return a large number of records as there are 2 18 (over 260,000 tiles) zoom 18 tiles contained in each zoom 9 tile.
- MB megabyte
- a method, apparatus and computer program product may convert a geographical database into a map tile database by generating a loose tile representation of the geographical database.
- An example embodiment may not suffer from the heavy use of computing storage (e.g., disk and memory) as do some previously known tile representation approaches.
- An example embodiment may utilize a tile index that has a size that is a function of the cardinality of the geographical database since the tile index may be created directly from record field data, in contrast with earlier solutions in which the size of a tile index may be a function of the number of tiles that cover the world.
- an example embodiment may facilitate the use of a geographic database(s) without the usual requirement of spatial database management systems (e.g. PostgreSQL).
- spatial database management systems e.g. PostgreSQL
- an example embodiment may instead modify the geographical database by modifying each geographical record in the geographical database with additional data fields that may indicate the candidate tiles to which the record's geometry may intersect.
- the resulting tile index generated by an example embodiment may be derived from the additional data fields added to the records, and as a result the tile index of an example embodiment may occupy space that is dependent on the cardinality of the geographical database as opposed to current tile-indexing systems in which the tile index is based on tessellation results and hence the size of the index may be dependent on the number of tiles resulting from the tessellation process (e.g., the number of tiles that cover the world) utilized by the current tile-indexing systems.
- an example embodiment may utilize a loose tile representation for geographical records of a database.
- This loose representation may be captured by an exemplary embodiment generating a rectangular tile block to represent the candidate tiles that the geometry corresponding to a given record may intersect.
- an example embodiment may determine that the geometry corresponding to a record(s) intersects with a tile, then that tile may be guaranteed to be in the tile block of the corresponding record(s).
- an example embodiment may determine that some tiles may exist in that tile block for which the geometry corresponding to the record(s) may not intersect.
- the exemplary embodiments may also generate a query that may be sent to a geographical database for geographical data in a tile.
- an exemplary embodiment may determine that the tile block for a geographical record in the database is only a loose tile definition for the record.
- an example embodiment may determine that each record in the result or response to the query may need to be further examined to determine whether the geometry corresponding to the record(s) actually intersects the tile referenced in the query.
- an example embodiment may allow convenient translation of a query for a tile at any zoom level into a query for the relevant tiles at the zoom level that was used to transform the geographical database and may then retrieve the relevant geographical data from the geographical database.
- An example embodiment of the invention may utilize smaller indexes which may translate to faster record retrieval times. As such, an example embodiment may yield better database performance. This, in turn, may enhance the overall performance of network devices (e.g., a server) that may enable provision of map services which may render map tiles as well as perform other map-based services that may be based on geographical databases such as, for example, retrieving and rendering live traffic data on a map. As such, an example embodiment may yield better database performance for map servers. For instance, an example embodiment may generate a tile index for the NavteqTM streets database that may use a memory (e.g., disk space) of 806 MB, which is an improvement over existing approaches. Additionally, an example embodiment may also improve response times to requests by a client (e.g., a mobile terminal) for location or map data.
- a client e.g., a mobile terminal
- a method for converting geographical geometrical content of a geographical database to map tiles may include modifying a geographical database based in part on adding items of data arranged in fields based on analyzing values corresponding to geometry information associated with geographical records of the geographical database.
- the method may further include determining a set of tiles, for each of the records, at a predetermined zoom level that includes at least a portion of the geographical information of respective records and updating each of the records to include data associated with minimum and maximum x and y values of the tiles that correspond to the geometrical information of a corresponding record.
- the method may further include determining that the minimum and maximum x and y values define one or more rectangular blocks of map tiles.
- an apparatus for converting geographical geometrical content of a geographical database to map tiles may include a processor and a memory including computer program code.
- the memory and computer program code are configured to, with the processor, cause the apparatus to at least perform operations including modifying a geographical database based in part on adding items of data arranged in fields based on analyzing values corresponding to geometry information associated with geographical records of the geographical database.
- the computer program code may further cause the apparatus to determine a set of tiles, for each of the records, at a predetermined zoom level that includes at least a portion of the geographical information of respective records and updating each of the records to include data associated with minimum and maximum x and y values of the tiles that correspond to the geometrical information of a corresponding record.
- the computer program code may further cause the apparatus to determine that the minimum and maximum x and y values define one or more rectangular blocks of map tiles.
- a computer program product for converting geographical geometrical content of a geographical database to map tiles.
- the computer program product includes at least one computer-readable storage medium having computer-executable program code instructions stored therein.
- the computer-executable program code instructions may include program code instructions configured to modify a geographical database based in part on adding items of data arranged in fields based on analyzing values corresponding to geometry information associated with geographical records of the geographical database.
- the program code instructions may also determine a set of tiles, for each of the records, at a predetermined zoom level that includes at least a portion of the geographical information of respective records and updating each of the records to include data associated with minimum and maximum x and y values of the tiles that correspond to the geometrical information of a corresponding record.
- the program code instructions may also determine that the minimum and maximum x and y values define one or more rectangular blocks of map tiles.
- Embodiments of the invention may enhance cost efficiencies related to overhead in computing storage and processing associated with tile indexes of geographical databases. In this manner, an example embodiment may reduce the size of geographical data stored in a geographical database which may enable faster data retrieval. As such, mobile terminal users may enjoy improved mobile device functionality.
- FIG. 1 is a diagram of the tile system corresponding to one or more zoom levels
- FIG. 2 is a schematic block diagram of a system according to an example embodiment of the invention.
- FIG. 3 is a schematic block diagram of an apparatus according to an example embodiment of the invention.
- FIG. 4 is a schematic block diagram of a network entity according to an example embodiment of the invention.
- FIG. 5 is a diagram of a tile mapped from one zoom level to a higher zoom level according to an example embodiment of the invention
- FIG. 6 is a diagram of a tile block according to an example embodiment of the invention.
- FIG. 7 is a diagram of map tiles and geographical records based in part on a query according to an example embodiment of the invention.
- FIG. 8 is a flowchart for converting geographical content corresponding to geometrical data of a geographical database to one or more map tiles according to an example embodiment of the invention.
- FIG. 9 is a flowchart for executing one or more queries on a modified geographical database according to an example embodiment of the invention.
- circuitry refers to (a) hardware-only circuit implementations (e.g., implementations in analog circuitry and/or digital circuitry); (b) combinations of circuits and computer program product(s) comprising software and/or firmware instructions stored on one or more computer readable memories that work together to cause an apparatus to perform one or more functions described herein; and (c) circuits, such as, for example, a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation even if the software or firmware is not physically present.
- This definition of ‘circuitry’ applies to all uses of this term herein, including in any claims.
- circuitry also includes an implementation comprising one or more processors and/or portion(s) thereof and accompanying software and/or firmware.
- circuitry as used herein also includes, for example, a baseband integrated circuit or applications processor integrated circuit for a mobile phone or a similar integrated circuit in a server, a cellular network device, other network device, and/or other computing device.
- a loose tile block may refer to a rectangular block of tiles defining each geographical record(s) even though geometry corresponding to a geographical record(s) may not actually intersect every tile in the rectangular block.
- FIG. 2 illustrates a generic system diagram in which a device such as a mobile terminal 10 is shown in an example communication environment.
- a system in accordance with an example embodiment of the invention may include a first communication device (e.g., mobile terminal 10 ) and a second communication device 20 capable of communication with each other via a network 30 .
- an embodiment of the invention may further include one or more additional communication devices, one of which is depicted in FIG. 2 as a third communication device 25 .
- not all systems that employ an embodiment of the present invention may comprise all the devices illustrated and/or described herein.
- While an embodiment of the mobile terminal 10 and/or second and third communication devices 20 and 25 may be illustrated and hereinafter described for purposes of example, other types of terminals, such as portable digital assistants (PDAs), pagers, mobile televisions, mobile telephones, gaming devices, laptop computers, cameras, video recorders, audio/video players, radios, global positioning system (GPS) devices, Bluetooth headsets, Universal Serial Bus (USB) devices or any combination of the aforementioned, and other types of voice and text communications systems, can readily employ an embodiment of the present invention.
- PDAs portable digital assistants
- GPS global positioning system
- Bluetooth headsets Bluetooth headsets
- USB Universal Serial Bus
- the network 30 may include a collection of various different nodes (of which the second and third communication devices 20 and 25 may be examples), devices or functions that may be in communication with each other via corresponding wired and/or wireless interfaces.
- the illustration of FIG. 2 should be understood to be an example of a broad view of certain elements of the system and not an all inclusive or detailed view of the system or the network 30 .
- the network 30 may be capable of supporting communication in accordance with any one or more of a number of First-Generation (1G), Second-Generation (2G), 2.5G, Third-Generation (3G), 3.5G, 3.9G, Fourth-Generation (4G) mobile communication protocols, Long Term Evolution (LTE) or Evolved Universal Terrestrial Radio Access Network (E-UTRAN), Self Optimizing/Organizing Network (SON) intra-LTE, inter-Radio Access Technology (RAT) Network and/or the like.
- the network 30 may be a point-to-point (P2P) network.
- One or more communication terminals such as the mobile terminal 10 and the second and third communication devices 20 and 25 may be in communication with each other via the network 30 and each may include an antenna or antennas for transmitting signals to and for receiving signals from one or more base sites.
- the base sites could be, for example one or more base stations (BS) (which in E-UTRAN are referred to as node-Bs) that is a part of one or more cellular or mobile networks or an access point that may be coupled to a data network, such as a Local Area Network (LAN), Wireless Local Area Network (WLAN), a Metropolitan Area Network (MAN), and/or a Wide Area Network (WAN), such as the Internet.
- LAN Local Area Network
- WLAN Wireless Local Area Network
- MAN Metropolitan Area Network
- WAN Wide Area Network
- other devices such as processing elements (e.g., personal computers, server computers or the like) may be coupled to the mobile terminal 10 and the second and third communication devices 20 and 25 via the network 30 .
- processing elements e.g., personal computers, server computers or the like
- the mobile terminal 10 and the second and third communication devices 20 and 25 may be enabled to communicate with the other devices or each other.
- the mobile terminal 10 and the second and third communication devices 20 and 25 as well as other devices may communicate according to numerous communication protocols including Hypertext Transfer Protocol (HTTP) and/or the like, to thereby carry out various communication or other functions of the mobile terminal 10 and the second and third communication devices 20 and 25 , respectively.
- HTTP Hypertext Transfer Protocol
- the mobile terminal 10 and the second and third communication devices 20 and 25 may communicate in accordance with, for example, radio frequency (RF), near field communication (NFC), Bluetooth (BT), Infrared (IR) or any of a number of different wireline or wireless communication techniques, including Local Area Network (LAN), Wireless LAN (WLAN), Worldwide Interoperability for Microwave Access (WiMAX), Wireless Fidelity (WiFi), Ultra-Wide Band (UWB), Wibree techniques and/or the like.
- RF radio frequency
- NFC near field communication
- BT Bluetooth
- IR Infrared
- LAN Local Area Network
- WLAN Wireless LAN
- WiMAX Worldwide Interoperability for Microwave Access
- WiFi Wireless Fidelity
- UWB Ultra-Wide Band
- Wibree techniques and/or the like.
- the mobile terminal 10 and the second and third communication devices 20 and 25 may be enabled to communicate with the network 30 and each other by any of numerous different access mechanisms.
- W-CDMA Wideband Code Division Multiple Access
- CDMA2000 Global System for Mobile communications
- GSM Global System for Mobile communications
- GPRS General Packet Radio Service
- WLAN Wireless Local Area Network
- WiMAX Wireless Fidelity
- DSL Digital Subscriber Line
- Ethernet Ethernet and/or the like.
- the first communication device (e.g., the mobile terminal 10 ) may be a mobile communication device such as, for example, a wireless telephone or other devices such as a personal digital assistant (PDA), mobile computing device, camera, video recorder, audio/video player, positioning device, game device, television device, radio device, or various other like devices or combinations thereof.
- PDA personal digital assistant
- the second communication device 20 and the third communication device 25 may be mobile or fixed communication devices.
- the second communication device 20 and the third communication device 25 may be servers, remote computers or terminals such as personal computers (PCs) or laptop computers.
- the network 30 may be an ad hoc or distributed network arranged to be a smart space.
- devices may enter and/or leave the network 30 and the devices of the network 30 may be capable of adjusting operations based on the entrance and/or exit of other devices to account for the addition or subtraction of respective devices or nodes and their corresponding capabilities.
- the mobile terminal as well as the second and third communication devices 20 and 25 may employ an apparatus (e.g., apparatus of FIG. 3 ) capable of employing an embodiment of the invention.
- FIG. 3 illustrates a schematic block diagram of an apparatus according to an example embodiment of the invention.
- An exemplary embodiment of the invention will now be described with reference to FIG. 3 , in which certain elements of an apparatus 50 are displayed.
- the apparatus 50 of FIG. 3 may be employed, for example, on the mobile terminal 10 (and/or the second communication device 20 or the third communication device 25 ).
- the apparatus 50 may be embodied on a network device of the network 30 .
- the apparatus 50 may alternatively be embodied at a variety of other devices, both mobile and fixed (such as, for example, any of the devices listed above).
- an embodiment may be employed on a combination of devices.
- an embodiment of the invention may be embodied wholly at a single device (e.g., the mobile terminal 10 ), by a plurality of devices in a distributed fashion (e.g., on one or a plurality of devices in a P2P network) or by devices in a client/server relationship.
- a single device e.g., the mobile terminal 10
- a plurality of devices in a distributed fashion (e.g., on one or a plurality of devices in a P2P network) or by devices in a client/server relationship.
- the devices or elements described below may not be mandatory and thus some may be omitted in certain embodiments.
- the apparatus 50 may include or otherwise be in communication with a processor 70 , a user interface 67 , a communication interface 74 , a memory device 76 , a display 85 , and a positioning sensor 78 .
- the memory device 76 may include, for example, volatile and/or non-volatile memory.
- the memory device 76 may be configured to store information, data, files, applications, instructions or the like for enabling the apparatus to carry out various functions in accordance with an exemplary embodiment of the invention.
- the memory device 76 could be configured to buffer input data for processing by the processor 70 .
- the memory device 76 could be configured to store instructions for execution by the processor 70 .
- the memory device 76 may be one of a plurality of databases that store information and/or media content (e.g., pictures, videos, etc.).
- the memory device 76 may include one or more databases.
- the memory device 76 may be a tangible memory device that is not transitory.
- the memory device 76 may store map data and/or data associated with one or more locations of objects and/or places or the like.
- the apparatus 50 may, in one embodiment, be a mobile terminal (e.g., mobile terminal 10 ) or a fixed communication device or computing device configured to employ an example embodiment of the invention. However, in one embodiment, the apparatus 50 may be embodied as a chip or chip set. In other words, the apparatus 50 may comprise one or more physical packages (e.g., chips) including materials, components and/or wires on a structural assembly (e.g., a baseboard). The structural assembly may provide physical strength, conservation of size, and/or limitation of electrical interaction for component circuitry included thereon.
- the apparatus 50 may therefore, in some cases, be configured to implement an embodiment of the invention on a single chip or as a single “system on a chip.”
- a chip or chipset may constitute means for performing one or more operations for providing the functionalities described herein.
- the chip or chipset may constitute means for enabling user interface navigation with respect to the functionalities and/or services described herein.
- the positioning sensor 78 may be in communication with processor 70 .
- the positioning sensor 78 may include, for example, a global positioning system (GPS) sensor, an assisted global positioning system (Assisted-GPS) sensor, a Bluetooth (BT)-GPS mouse, or other GPS or positioning receivers or the like. In one embodiment, however, the positioning sensor may include a pedometer or inertial sensor.
- GPS global positioning system
- Assisted-GPS assisted global positioning system
- BT Bluetooth-GPS mouse
- the positioning sensor may be any means such as a device or circuitry operating in accordance with software or otherwise embodied in hardware or a combination of hardware and software (e.g., processor 70 operating under software control, the processor 70 embodied as an ASIC or FPGA specifically configured to perform the operations described herein, or a combination thereof) thereby configuring the device or circuitry to perform the corresponding functions of the positioning sensor as described below.
- a device or circuitry e.g., processor 70 in one example
- executing the software forms the structure associated with such means.
- the positioning sensor 78 may be configured to generate, among other things, GPS data that may be used by the processor of the apparatus to determine the location of the apparatus.
- the data associated with the location may but need not include information related to one or more of longitude, latitude and altitude coordinates of the apparatus.
- the positioning sensor 78 may send one or more queries to a network device for location data (e.g., map data) and upon receipt of the location data from the network device, the positioning sensor 78 may utilize the location information (e.g., map data) to determine a location of a place, object or the like.
- the positioning sensor 78 may send the determined location information to one or more applications of the apparatus 50 .
- the processor 70 may be embodied in a number of different ways.
- the processor 70 may be embodied as various processing means such as a processing element, a coprocessor, a controller or various other processing devices including integrated circuits such as, for example, an ASIC (application specific integrated circuit), an FPGA (field programmable gate array), a hardware accelerator, or the like.
- the processor 70 may be configured to execute instructions stored in the memory device 76 or otherwise accessible to the processor 70 .
- the processor 70 may represent an entity (e.g., physically embodied in circuitry) capable of performing operations according to embodiments of the invention while configured accordingly.
- the processor 70 when the processor 70 is embodied as an ASIC, FPGA or the like, the processor 70 may be specifically configured hardware for conducting the operations described herein.
- the instructions when the processor 70 is embodied as an executor of software instructions, the instructions may specifically configure the processor 70 , which may otherwise be a general purpose processing element or other functionally configurable circuitry if not for the specific configuration provided by the instructions, to perform the algorithms and operations described herein.
- the processor 70 may be a processor of a specific device (e.g., a mobile terminal) adapted for employing an embodiment of the invention by further configuration of the processor 70 by instructions for performing the algorithms and operations described herein.
- the processor 70 may be configured to operate a connectivity program, such as a browser, Web browser or the like.
- the browser may execute one or more applications such as, for example, web applications.
- the connectivity program may enable the apparatus 50 to transmit and receive Web content, such as for example location-based content or any other suitable content, according to a Wireless Application Protocol (WAP), for example.
- WAP Wireless Application Protocol
- the browser may utilize Hypertext Markup Language (HTML), JavaScript or any other suitable programming languages for handling Web content.
- the processor 70 may also be in communication with a display 85 and may instruct the display to illustrate any suitable information, data, content (e.g., media content) or the like.
- the communication interface 74 may be any means such as a device or circuitry embodied in either hardware, software, or a combination of hardware and software that is configured to receive and/or transmit data from/to a network and/or any other device or module in communication with the apparatus 50 .
- the communication interface 74 may include, for example, an antenna (or multiple antennas) and supporting hardware and/or software for enabling communications with a wireless communication network (e.g., network 30 ).
- the communication interface 74 may alternatively or also support wired communication.
- the communication interface 74 may include a communication modem and/or other hardware/software for supporting communication via cable, digital subscriber line (DSL), universal serial bus (USB), Ethernet or other mechanisms.
- the user interface 67 may be in communication with the processor 70 to receive an indication of a user input at the user interface 67 and/or to provide an audible, visual, mechanical or other output to the user.
- the user interface 67 may include, for example, a keyboard, a mouse, a joystick, a display, a touch screen, a microphone, a speaker, or other input/output mechanisms.
- the apparatus is embodied as a server or some other network devices, the user interface 67 may be limited, remotely located, or eliminated.
- the network device 90 may include a processor 94 and an associated memory 96 .
- the memory 96 may comprise volatile and/or non-volatile memory, and may store content, data and/or the like.
- the memory may store content, data, information, and/or the like transmitted from, and/or received by, the network device.
- the memory 96 may store client applications, instructions, computer program code and/or the like for the processor 94 to perform the various operations of the network device in accordance with embodiments of the invention, as described above.
- the memory 96 may include one or more databases, such as, for example, database 93 .
- the memory 96 may be embodied in the network device 90 .
- the memory 96 may be external to the network device 90 .
- the database 93 may be a geographical database (also referred to herein as geodatabase 93 or geographical database 93 ) in which geographical data may be converted to one or more map tiles by the database converter 97 in the manner described more fully below.
- the geographical database may include at least one column that defines the geometry (e.g., points, lines, polygons, etc.) for corresponding records associated with locations (e.g., one or more maps) of places, objects or the like (e.g., cities, highways, bridges, etc.) in the real world.
- the records may be associated with coordinates such as, for example, latitude and longitude coordinates corresponding to the places, objects or the like in the real world.
- the geographical database may receive one or more queries from the processor 94 and/or the database converter 97 for retrieval of data in the geographical database as well as for any other suitable reasons.
- the database 93 may include, but is not limited to, geographical data associated with one or more streets (e.g., corresponding to road geometry), oceans (e.g., corresponding to water geometry), administrative boundaries (e.g., corresponding to boundary geometry for countries, states, counties, cities, zip codes, etc.) or any other suitable geographical data.
- streets e.g., corresponding to road geometry
- oceans e.g., corresponding to water geometry
- administrative boundaries e.g., corresponding to boundary geometry for countries, states, counties, cities, zip codes, etc.
- the processor 94 may also be connected to at least one interface or other means for displaying, transmitting and/or receiving data, content, and/or the like.
- the interface(s) may comprise at least one communication interface 98 or other means for transmitting and/or receiving data, content, and/or the like, as well as at least one user input interface 95 .
- the user input interface 95 may comprise any of a number of devices allowing the network entity to receive data from a user, such as a keypad, a touch display, a joystick or other input device.
- the processor 94 may comprise user interface circuitry configured to control at least some functions of one or more elements of the user input interface.
- the processor and/or user interface circuitry of the processor may be configured to control one or more functions of one or more elements of the user interface through computer program instructions (e.g., software and/or firmware) stored on a memory accessible to the processor (e.g., volatile memory, non-volatile memory, and/or the like).
- computer program instructions e.g., software and/or firmware
- a memory accessible to the processor e.g., volatile memory, non-volatile memory, and/or the like.
- the processor 94 may be embodied as, include or otherwise control the database converter 97 .
- the database converter 97 may be any means such as a device or circuitry operating in accordance with software or otherwise embodied in hardware or a combination of hardware and software (e.g., processor 94 ) operating under software control, the processor 94 embodied as an ASIC or FPGA specifically configured to perform the operations described herein, or a combination thereof) thereby configuring the device or structure to perform the corresponding functions of the database converter 97 as described below.
- a device or circuitry e.g., the processor 94 in one example
- executing the software forms the structure associated with such means.
- the database converter 97 may convert geographical data associated with coordinates such as, for example, latitude and longitude coordinates (associated with locations (e.g., one or more maps) of places or objects or the like in the real world) corresponding to one or more records in a geographical database(s) (e.g., database 93 ) into one or more map tiles.
- the map tiles may be defined by one or more corresponding loose tile blocks that may be associated with records, in the manner described more fully below.
- the database converter 97 may enable reduction of the size of computing storage (e.g., memory) and minimize processing requirements that may be required to maintain tile indexes on geographical databases.
- the database converter 97 may take as input a geographic database D and a map zoom level z input .
- the database converter 97 may then add an entry for R indicating the smallest rectangular block B of tiles on a corresponding map such that B ⁇ S, where B denotes a loose tile block representation for the record R.
- the database converter 97 may identify all records R in the geographic database D such that the loose tile block B (e.g., a rectangular tile block B) for R intersects with T.
- the database converter 97 may convert geographic content corresponding to geometric data (e.g., points, lines, polygons, etc.) of a geographic database to one or more corresponding map tiles, as described more fully below.
- the conversion of the geographic content to corresponding map tiles may reduce computing storage capacity and processing requirements.
- the database converter 97 may convert geographical content corresponding to geometric data in a geographical database to one or more map tiles.
- the database converter 97 may implement a database optimization procedure and may analyze at least two input variables: (1) a geographical database D; and (2) a zoom level z input .
- the output of the database optimization procedure may be a new or modified geographical database D 1 .
- the database converter 97 may set the value of z input to be the maximum zoom level (e.g., a maximum zoom level of 18, 20, etc.) in a map system.
- the geographical database D may include a column(s) named geometry that defines the geometry (e.g. points, lines, polygons, etc.) corresponding to one or more records.
- the geometry may correspond to one or more coordinates such as, for example, longitude and latitude coordinates associated with location data (e.g., map data).
- the geographic database D may be database 93 in one example embodiment.
- the database 93 may include geographic content (e.g., geometrical location data (e.g., map data)) associated with locations of places or objects in the real world such as for example streets, highways (e.g., road geometry), oceans (e.g., water geometry), one or more administrative boundaries (e.g., boundary geometry for countries, states, counties, cities and zip codes) and any other suitable geographic data.
- geographic content e.g., geometrical location data (e.g., map data)
- locations of places or objects in the real world such as for example streets, highways (e.g., road geometry), oceans (e.g., water geometry), one or more administrative boundaries (e.g., boundary geometry for countries, states, counties, cities and zip codes) and any other suitable geographic data.
- the database converter 98 may implement the database optimization procedure and add at least four new columns to the geographic database D.
- the columns added to the geographic database D by the database converter 98 may be denoted as xmin, ymin, xmax, and ymax.
- the database converter 97 Given one or more records R of the geographic database D and one or more values of a geometry field in record(s) R, the database converter 97 may define the fields as follows:
- the database converter 97 may determine that the values of R.xmin, R.ymin, R.xmax, R.ymax may define a loose block (e.g., a rectangular block) of tiles that is a superset of S.
- a client e.g., apparatus 50
- the database converter 97 may perform the following:
- defining the maximum zoom level (e.g., a zoom level of 18, 20, etc.) as the input zoom level to the database optimization procedure may be used in part to determine the set of all tiles at zoom z max that may be included in the tile T.
- the database converter 97 may define U left as the x value of the leftmost tile in the set U of tiles, U right as the x value of the rightmost tile in set U, U top as the y value of the topmost tile in set U and U bottom as the y value of the bottommost tile in set U.
- the database converter 97 may then convert query Q into a new query Q 1 where query Q 1 may be determined by the following:
- the database converter 97 may select each of the records from the new or modified geographical database D 1 where U left ⁇ xmax and U right ⁇ xmin and U top ⁇ ymax and U bottom ⁇ ymin.
- the client e.g., apparatus 50
- the client may utilize the data (e.g., map data) associated with the records.
- the block of tiles contained in T at zoom level z 2 where z 2 ⁇ z 1 may be defined by the database converter 97 as follows:
- the tile T may be included in a query Q from a client (e.g., apparatus 50 ) to the network device 90 for corresponding location data (e.g., map data).
- a client e.g., apparatus 50
- location data e.g., map data
- the database converter 97 may generate the mapped tile of FIG. 5 that may be utilized for any zoom level in order to map a tile from one zoom level (e.g., zoom level 1) to a higher zoom level (e.g., zoom level 15) according to an example embodiment.
- the database converter 97 may convert geographical content corresponding to geometrical data of a geographic database to one or more corresponding map tiles, consider the following example.
- a client e.g., apparatus 50
- may issue or send a query to a network entity e.g., network device 90
- the database converter 97 may perform the following:
- the database converter 97 may select each record R from a geographic database D that may have geometry data (e.g. in a geometry field) corresponding to an x value (e.g., the coordinate) of 100, a y value (e.g., the coordinate) of 200 and a zoom value of 10.
- Zoom level 18 may be used because the geographical records in a map tile database may be represented as zoom level 18 tiled records (since the maximum zoom level for a corresponding map may be 18, in this example).
- the database converter 97 may apply the equations described above with respect to FIG. 5 to this example to compute the following:
- the database converter 97 may determine a rectangular tile block B 1 obtained in response to expanding the tile at zoom level 10 into zoom level 18.
- the database converter 97 of the network device 90 may convert the initial query Q sent by a client (e.g., apparatus 50 ) into a new query Q 1 where the x and y values are now based on a zoom level of 18. Based on the example above, this new query Q 1 may be denoted as follows:
- SELECT* (e.g., select each record(s)) from D 1 WHERE U left ⁇ xmax AND U right ⁇ xmin AND U top ⁇ ymax AND U bottom ⁇ ymin, which yields the following when applied to this example: SELECT*FROM D 1 WHERE 1600 ⁇ xmax AND 1615 ⁇ xmin AND 3200 ⁇ ymax AND 3215 ⁇ ymin.
- this new query Q 1 may be provided by the database converter 97 to the new or modified geographical database (e.g., database 93 ) having map tile data generated based in part on geometric data, in the manner described above.
- the query Q 1 may be utilized to return all geographical records in the new or modified geographic database whose loose tile blocks intersect with the tile block in the new query Q 1 .
- the geographical records 1 , 2 and 3 may be returned to the network device 90 since their tile blocks 80 (also referred to herein as loose tile block 80 ), 82 , 84 , respectively, intersect with the new query Q 1 tile block 87 , as shown in FIG. 7 .
- a map illustrating rectangular blocks to define each geographical record even though the geometry of a geographical record may not actually intersect every tile in the corresponding rectangular tile block is provided.
- the benefit of this example embodiment may be that it may allow an efficient tile representation of geographical records by using the range of tiles in that block as opposed to having a more accurate definition that may require listing every tile that the geometry of a corresponding record(s) intersects.
- the geometry of a record(s) may intersect 1000 random tiles. Instead of maintaining a list of the 1000 tiles for that record, the exemplary embodiments may always use four numbers defining the minimum x and y tile values and the maximum x and y tile values.
- the database converter 97 may receive the results from the new query Q 1 that was provided by the database converter 97 to the new or modified geographical database (e.g., database 93 ). The database converter 97 may then inspect the geometry (e.g., latitude coordinates and longitude coordinates associated with geometric data (e.g., points, lines, polygons, etc.)) corresponding to each record in the results to determine if the geometry actually interests the tile block 87 in the new query Q 1 . As shown in FIG. 7 , the database converter 97 may determine that the geometries of geographical records 2 and 3 intersect the query tile block 87 .
- the geometry e.g., latitude coordinates and longitude coordinates associated with geometric data (e.g., points, lines, polygons, etc.)
- the database converter 97 may also determine that although the loose tile block 80 corresponding to geographical record 1 intersects the query tile block 87 , the actual geometry corresponding to geographical record 1 does not intersect the query tile block 87 . As such, the database converter 97 may remove geographical record 1 from the results retrieved from the new or modified geographical database and may only provide geographical records 2 and 3 to the client (e.g., apparatus 50 ) that initially sent the query Q to the network device 90 . It should be pointed out that geographical record 4 is not retrieved from the database in this example embodiment since the associated loose tile block 85 does not intersect the query tile block 87 .
- the database converter 97 may determine that the tile blocks 80 , 82 , 84 and 85 are rectangular blocks B 2 that are the loose tile representations of the geographical records in the modified database 93 .
- the converter 97 determines that a tile block B 1 (e.g., query tile block 87 ) intersects a given tile block B 2 (e.g., a loose tile block B 2 ) then the geographical records associated with the corresponding rectangular tile blocks B 2 may be returned by the database to the database converter 97 of the network device 90 (e.g., a server).
- the database converter may analyze the results of the query Q 1 and may remove any record(s) whose geometry does not actually intersect query tile block B 1 before returning the results to the client (e.g., apparatus 50 ).
- an apparatus e.g., network device 90
- may analyze geometrical data e.g. points, lines, polygons, etc.
- the geometrical data may be included in a column of the geographical database associated with corresponding records.
- the geometrical data may be associated with coordinates such as, for example, latitude and longitude coordinates.
- the apparatus may modify the geographical database by adding a plurality of items of data arranged in a plurality of receptive fields based in part on analysis of one or more values corresponding to geometry data associated with each of the records.
- the fields may correspond to respective columns (e.g., xmin, ymin, xmax, ymax) of the modified geographic database.
- an apparatus may determine a set of tiles, for each of the records, at a predetermined zoom level that may include at least a portion of geometrical data of respective records.
- the predetermined zoom level may correspond to a maximum zoom level of a corresponding map (e.g., a maximum zoom level of 18).
- the apparatus may update each of the records of the geographical database to include data associated with minimum and maximum x and y values (e.g., R.xmin, R.ymin, R.xmax, R.ymax) of the tiles of the set that correspond to the geometrical data of respective records.
- the apparatus may determine, for each of the records in the modified geographical database, that the minimum and maximum x and y values define a rectangular block of map tiles that is a superset of the set of tiles that includes at least a portion of geometrical data of respective records.
- the apparatus may utilize at least one of the rectangular block of map tiles to determine whether to provide data associated with at least one geographical record to a device (e.g., apparatus 50 ) in response to receipt of a query (e.g., query Q).
- the apparatus may determine to provide the geographical record(s) to a device in an instance in which the geometry data associated with the geographical record(s) intersects the tile referenced in the query received from the device.
- an apparatus may receive a query (e.g., query Q) from a device (e.g., apparatus 50 ) in which the query may include data associated with a tile corresponding to x and y values and a zoom level corresponding to the tile.
- the apparatus may determine a plurality of equivalent tiles, corresponding to the tile in the query, at a maximum zoom level based in part on the zoom level for the tile in the query.
- the apparatus may convert the query into a new query (e.g., query Q 1 ) comprising x and y values corresponding to the maximum zoom level.
- the apparatus may provide the new query to the modified database (e.g., database 93 ) requesting retrieval of each geographical record associated with tile blocks that intersect with the tile block identified in the new query.
- the apparatus may receive results of the new query indicating one or more geographical records associated with tile blocks intersecting the tile block in the new query. The results of the new query may be received from the modified geographical database.
- the apparatus may analyze the one or more geographical records to determine which geographical record(s) is associated with geometry data that intersects the tile block identified in the new query.
- the apparatus may remove any of the one or more geographical records from the results that are determined to be associated with geometry data that does not intersect the tile block in the new query.
- the apparatus may provide the results to a device (e.g., apparatus 50 ) in which the results may indicate at least one of the geographical records with geometry data that intersects the tile block in the new query.
- FIGS. 8 and 9 are flowcharts of systems, methods and computer program products according to an example embodiment of the invention. It will be understood that each block of the flowcharts, and combinations of blocks in the flowcharts, can be implemented by various means, such as hardware, firmware, and/or a computer program product including one or more computer program instructions. For example, one or more of the procedures described above may be embodied by computer program instructions. In this regard, in an example embodiment, the computer program instructions which embody the procedures described above are stored by a memory device (e.g., memory 96 ) and executed by a processor (e.g., processor 94 , database converter 97 ).
- a memory device e.g., memory 96
- a processor e.g., processor 94 , database converter 97
- any such computer program instructions may be loaded onto a computer or other programmable apparatus (e.g., hardware) to produce a machine, such that the instructions which execute on the computer or other programmable apparatus cause the functions specified in the flowchart blocks to be implemented.
- the computer program instructions are stored in a computer-readable memory that can direct a computer or other programmable apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instructions which implement the function(s) specified in the flowcharts blocks.
- the computer program instructions may also be loaded onto a computer or other programmable apparatus to cause a series of operations to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus implement the functions specified in the flowcharts blocks.
- blocks of the flowcharts support combinations of means for performing the specified functions. It will also be understood that one or more blocks of the flowcharts, and combinations of blocks in the flowcharts, can be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.
- an apparatus for performing the methods of FIGS. 8 and 9 above may comprise a processor (e.g., the processor 94 , the database converter 97 ) configured to perform some or each of the operations ( 800 - 820 and 900 - 935 ) described above.
- the processor may, for example, be configured to perform the operations ( 800 - 820 and 900 - 935 ) by performing hardware implemented logical functions, executing stored instructions, or executing algorithms for performing each of the operations.
- the apparatus may comprise means for performing each of the operations described above.
- examples of means for performing operations may comprise, for example, the processor 94 (e.g., as means for performing any of the operations described above), the database converter 97 and/or a device or circuit for executing instructions or executing an algorithm for processing information as described above.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Remote Sensing (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Instructional Devices (AREA)
- Processing Or Creating Images (AREA)
- Navigation (AREA)
Abstract
Description
- An embodiment of the invention relates generally to database technology and more particularly relates to a method, apparatus and computer program product for optimizing a database to improve database performance for retrieval of location or map data by converting a geographic database into a map tile database.
- The modern communications era has brought about a tremendous expansion of wireline and wireless networks. Computer networks, television networks, and telephony networks are experiencing an unprecedented technological expansion, fueled by consumer demand. Wireless and mobile networking technologies have addressed related consumer demands, while providing more flexibility and immediacy of information transfer.
- Current and future networking technologies continue to facilitate ease of information transfer and convenience to users. Due to the now ubiquitous nature of electronic communication devices, people of all ages and education levels are utilizing electronic devices to communicate with other individuals or contacts, receive services and/or share information, media and other content. One area in which there is a demand to increase ease of information transfer relates to the delivery of mapping services to a mobile terminal of a user. The mapping service may provide map data and location data requested by media or communication applications of the mobile terminal.
- Currently, map or location data provided by mapping services is typically stored in a geographical database. The geographical database may be able to store, query and manipulate geographic information and spatial data that may be optimized for two or three dimensions. The spatial data may be stored as vector data in the form of geometric data such as, for example, a point, line, polygon, etc. and may have an associated spatial reference system. In this regard, the spatial data may be associated with coordinates such as latitude and longitude coordinates corresponding with locations or objects in the real world. As an example of spatial data, consider a highway which may be depicted as a two-dimensional object that contains lines, points and polygons that may represent towns, streets and boundaries such as, counties, states, etc. A map of the highway is the visualization of geographic information. The data that indicates the locations (e.g., latitude and longitude) of these rendered objects may be the spatial data. As such, geographical databases may store geometry data associated with streets, highways, waterways, oceans, landmarks, railroads, administrative area boundaries, etc. It should be pointed out that geographical databases may include records to represent the locations of objects or places in the real world.
- At present, existing systems may utilize map tiles in order to facilitate fast retrieval of geographic data from a geographic database. One such technique for rendering the map tiles is tessellation. In this regard, existing systems may utilize tessellation to store data for specific locations by dividing the data up by location and partitioning the world into tiles. In other words, the geometric data corresponding to the real world may be partitioned into tiles and then a tile index for accessing the geographic database may be created based on the tiles.
- This technique may be beneficial for mapping systems because mapping systems typically retrieve data in tile units from a geographical database. While this approach may provide good performance for data retrieval with respect to mapping systems, it may also incur high overhead in computing storage costs and computing processing costs. As such, one drawback with this approach of geometric data retrieval is that it may result in heavy use of computing storage resources (e.g., disk and memory) and processing resources for tile indexes. For instance, geographical data corresponding to a map tile may be zoomed according to a zoom level. As such, given a zoom level z, the number of map tiles at zoom z is 4z. As an example, consider
FIG. 1 relating to the tile system. - Referring to
FIG. 1 , atzoom level 0, the whole world may be covered by one tile (e.g., 4z=40=1). Atzoom level 1, the single tile fromzoom 0 is split into four (e.g., 4z=41=4). Atzoom level 2, each of the four tiles fromzoom 1 is further split into four (e.g., 4z=42=16), so on and so forth. In other words, to generate tiles for zoom level zi every tile in zoom level zi-1 may be split into four, as shown inFIG. 1 . Hence, each tile at a given zoom level may be equivalent to a rectangular block of tiles at higher zoom levels. For instance, the single tile x=0, y=0 atzoom level 0 may be equivalent to all four tiles atzoom level 1. Similarly, the tile x=0, y=1 atzoom level 1 may be equivalent to the tiles x=0, y=2; x=1, y=2; x=0, y=3; x=1, y=3 atzoom level 2. - In a system with a maximum zoom level of 18, the number of tiles at zoom level 18 is 418, resulting in over 64 billion tiles. In an instance in which the size of a leaf index node may be four bytes (e.g., the size of an integer pointer address), then for a zoom of 18 tiles, the total size of the leaf index nodes alone is roughly 256 gigabyte (GB). This is a huge amount of space overhead especially in consideration of the size of the database itself. For instance, the Navteq™ Streets database for the United States has approximately 27 million records with a total disk space size of 11 GB.
- To resolve the disk space issue, existing tile-indexing systems typically make tile size tradeoffs when indexing geographical data. Smaller tiles at higher zoom levels contain small amounts of geographical data per tile and hence have better selectivity for queries requesting map data. However, using smaller tiles in this manner typically requires large amounts of disk space to maintain the resulting indexes. For instance, smaller tiles may result in more segment traversals requiring more space to be used. On the other hand, larger tiles at lower zoom levels typically contain large amounts of geographical data per tile and thus may have worse selectivity for queries requesting map data than smaller tiles. However, larger tiles typically require smaller amounts of disk space to maintain the resulting indexes. For instance, at zoom level 9, the disk space for leaf index nodes is only about one megabyte (MB) but may result in poor performance for tile requests at zoom level 18, for instance, because the query for map data may typically return a large number of records as there are 218 (over 260,000 tiles) zoom 18 tiles contained in each zoom 9 tile.
- In view of the foregoing drawbacks of existing tile-indexing systems, it may be beneficial to provide an alternative mechanism for accessing geographic databases via tiles that may utilize computing storage resources more efficiently for tile indexes with respect to geographic databases.
- A method, apparatus and computer program product are therefore provided that may convert a geographical database into a map tile database by generating a loose tile representation of the geographical database. An example embodiment may not suffer from the heavy use of computing storage (e.g., disk and memory) as do some previously known tile representation approaches. An example embodiment may utilize a tile index that has a size that is a function of the cardinality of the geographical database since the tile index may be created directly from record field data, in contrast with earlier solutions in which the size of a tile index may be a function of the number of tiles that cover the world.
- By creating and using an index with integer-type columns (e.g., xmin, ymin, xmax, ymax) for retrieving tile geographical data, an example embodiment may facilitate the use of a geographic database(s) without the usual requirement of spatial database management systems (e.g. PostgreSQL).
- Rather than tessellate the world and create a tile index from the resulting tessellation to facilitate fast retrieval of data from a geographical database, an example embodiment may instead modify the geographical database by modifying each geographical record in the geographical database with additional data fields that may indicate the candidate tiles to which the record's geometry may intersect.
- In this regard, the resulting tile index generated by an example embodiment may be derived from the additional data fields added to the records, and as a result the tile index of an example embodiment may occupy space that is dependent on the cardinality of the geographical database as opposed to current tile-indexing systems in which the tile index is based on tessellation results and hence the size of the index may be dependent on the number of tiles resulting from the tessellation process (e.g., the number of tiles that cover the world) utilized by the current tile-indexing systems.
- In order to facilitate better use of storage for indexing, an example embodiment may utilize a loose tile representation for geographical records of a database. This loose representation may be captured by an exemplary embodiment generating a rectangular tile block to represent the candidate tiles that the geometry corresponding to a given record may intersect. In this regard, in an instance in which an example embodiment may determine that the geometry corresponding to a record(s) intersects with a tile, then that tile may be guaranteed to be in the tile block of the corresponding record(s). However, an example embodiment may determine that some tiles may exist in that tile block for which the geometry corresponding to the record(s) may not intersect.
- The exemplary embodiments may also generate a query that may be sent to a geographical database for geographical data in a tile. In this regard, an exemplary embodiment may determine that the tile block for a geographical record in the database is only a loose tile definition for the record. As such, in resolving the query, an example embodiment may determine that each record in the result or response to the query may need to be further examined to determine whether the geometry corresponding to the record(s) actually intersects the tile referenced in the query.
- By utilizing an example embodiment, the usual tile size tradeoff problems encountered by current tile-indexing schemes may be alleviated. In this regard, an example embodiment may allow convenient translation of a query for a tile at any zoom level into a query for the relevant tiles at the zoom level that was used to transform the geographical database and may then retrieve the relevant geographical data from the geographical database.
- An example embodiment of the invention may utilize smaller indexes which may translate to faster record retrieval times. As such, an example embodiment may yield better database performance. This, in turn, may enhance the overall performance of network devices (e.g., a server) that may enable provision of map services which may render map tiles as well as perform other map-based services that may be based on geographical databases such as, for example, retrieving and rendering live traffic data on a map. As such, an example embodiment may yield better database performance for map servers. For instance, an example embodiment may generate a tile index for the Navteq™ streets database that may use a memory (e.g., disk space) of 806 MB, which is an improvement over existing approaches. Additionally, an example embodiment may also improve response times to requests by a client (e.g., a mobile terminal) for location or map data.
- In one example embodiment, a method for converting geographical geometrical content of a geographical database to map tiles is provided. The method may include modifying a geographical database based in part on adding items of data arranged in fields based on analyzing values corresponding to geometry information associated with geographical records of the geographical database. The method may further include determining a set of tiles, for each of the records, at a predetermined zoom level that includes at least a portion of the geographical information of respective records and updating each of the records to include data associated with minimum and maximum x and y values of the tiles that correspond to the geometrical information of a corresponding record. The method may further include determining that the minimum and maximum x and y values define one or more rectangular blocks of map tiles.
- In another example embodiment, an apparatus for converting geographical geometrical content of a geographical database to map tiles is provided. The apparatus may include a processor and a memory including computer program code. The memory and computer program code are configured to, with the processor, cause the apparatus to at least perform operations including modifying a geographical database based in part on adding items of data arranged in fields based on analyzing values corresponding to geometry information associated with geographical records of the geographical database. The computer program code may further cause the apparatus to determine a set of tiles, for each of the records, at a predetermined zoom level that includes at least a portion of the geographical information of respective records and updating each of the records to include data associated with minimum and maximum x and y values of the tiles that correspond to the geometrical information of a corresponding record. The computer program code may further cause the apparatus to determine that the minimum and maximum x and y values define one or more rectangular blocks of map tiles.
- In another example embodiment, a computer program product for converting geographical geometrical content of a geographical database to map tiles is provided. The computer program product includes at least one computer-readable storage medium having computer-executable program code instructions stored therein. The computer-executable program code instructions may include program code instructions configured to modify a geographical database based in part on adding items of data arranged in fields based on analyzing values corresponding to geometry information associated with geographical records of the geographical database. The program code instructions may also determine a set of tiles, for each of the records, at a predetermined zoom level that includes at least a portion of the geographical information of respective records and updating each of the records to include data associated with minimum and maximum x and y values of the tiles that correspond to the geometrical information of a corresponding record. The program code instructions may also determine that the minimum and maximum x and y values define one or more rectangular blocks of map tiles.
- Embodiments of the invention may enhance cost efficiencies related to overhead in computing storage and processing associated with tile indexes of geographical databases. In this manner, an example embodiment may reduce the size of geographical data stored in a geographical database which may enable faster data retrieval. As such, mobile terminal users may enjoy improved mobile device functionality.
- Having thus described the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
-
FIG. 1 is a diagram of the tile system corresponding to one or more zoom levels; -
FIG. 2 is a schematic block diagram of a system according to an example embodiment of the invention; -
FIG. 3 is a schematic block diagram of an apparatus according to an example embodiment of the invention; -
FIG. 4 is a schematic block diagram of a network entity according to an example embodiment of the invention; -
FIG. 5 is a diagram of a tile mapped from one zoom level to a higher zoom level according to an example embodiment of the invention; -
FIG. 6 is a diagram of a tile block according to an example embodiment of the invention; -
FIG. 7 is a diagram of map tiles and geographical records based in part on a query according to an example embodiment of the invention; -
FIG. 8 is a flowchart for converting geographical content corresponding to geometrical data of a geographical database to one or more map tiles according to an example embodiment of the invention; and -
FIG. 9 is a flowchart for executing one or more queries on a modified geographical database according to an example embodiment of the invention. - Some embodiments of the present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the invention are shown. Indeed, various embodiments of the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Like reference numerals refer to like elements throughout. As used herein, the terms “data,” “content,” “information” and similar terms may be used interchangeably to refer to data capable of being transmitted, received and/or stored in accordance with embodiments of the present invention. Moreover, the term “exemplary”, as used herein, is not provided to convey any qualitative assessment, but instead merely to convey an illustration of an example. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments of the present invention.
- Additionally, as used herein, the term ‘circuitry’ refers to (a) hardware-only circuit implementations (e.g., implementations in analog circuitry and/or digital circuitry); (b) combinations of circuits and computer program product(s) comprising software and/or firmware instructions stored on one or more computer readable memories that work together to cause an apparatus to perform one or more functions described herein; and (c) circuits, such as, for example, a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation even if the software or firmware is not physically present. This definition of ‘circuitry’ applies to all uses of this term herein, including in any claims. As a further example, as used herein, the term ‘circuitry’ also includes an implementation comprising one or more processors and/or portion(s) thereof and accompanying software and/or firmware. As another example, the term ‘circuitry’ as used herein also includes, for example, a baseband integrated circuit or applications processor integrated circuit for a mobile phone or a similar integrated circuit in a server, a cellular network device, other network device, and/or other computing device.
- As defined herein a “computer-readable storage medium,” which refers to a non-transitory, physical or tangible storage medium (e.g., volatile or non-volatile memory device), may be differentiated from a “computer-readable transmission medium,” which refers to an electromagnetic signal.
- As referred to herein, a loose tile block may refer to a rectangular block of tiles defining each geographical record(s) even though geometry corresponding to a geographical record(s) may not actually intersect every tile in the rectangular block.
-
FIG. 2 illustrates a generic system diagram in which a device such as amobile terminal 10 is shown in an example communication environment. As shown inFIG. 2 , an embodiment of a system in accordance with an example embodiment of the invention may include a first communication device (e.g., mobile terminal 10) and asecond communication device 20 capable of communication with each other via anetwork 30. In some cases, an embodiment of the invention may further include one or more additional communication devices, one of which is depicted inFIG. 2 as athird communication device 25. In one embodiment, not all systems that employ an embodiment of the present invention may comprise all the devices illustrated and/or described herein. While an embodiment of themobile terminal 10 and/or second andthird communication devices - The
network 30 may include a collection of various different nodes (of which the second andthird communication devices FIG. 2 should be understood to be an example of a broad view of certain elements of the system and not an all inclusive or detailed view of the system or thenetwork 30. Although not necessary, in one embodiment, thenetwork 30 may be capable of supporting communication in accordance with any one or more of a number of First-Generation (1G), Second-Generation (2G), 2.5G, Third-Generation (3G), 3.5G, 3.9G, Fourth-Generation (4G) mobile communication protocols, Long Term Evolution (LTE) or Evolved Universal Terrestrial Radio Access Network (E-UTRAN), Self Optimizing/Organizing Network (SON) intra-LTE, inter-Radio Access Technology (RAT) Network and/or the like. In one embodiment, thenetwork 30 may be a point-to-point (P2P) network. - One or more communication terminals such as the
mobile terminal 10 and the second andthird communication devices network 30 and each may include an antenna or antennas for transmitting signals to and for receiving signals from one or more base sites. The base sites could be, for example one or more base stations (BS) (which in E-UTRAN are referred to as node-Bs) that is a part of one or more cellular or mobile networks or an access point that may be coupled to a data network, such as a Local Area Network (LAN), Wireless Local Area Network (WLAN), a Metropolitan Area Network (MAN), and/or a Wide Area Network (WAN), such as the Internet. In turn, other devices such as processing elements (e.g., personal computers, server computers or the like) may be coupled to themobile terminal 10 and the second andthird communication devices network 30. By directly or indirectly connecting themobile terminal 10 and the second andthird communication devices 20 and 25 (and/or other devices) to thenetwork 30, themobile terminal 10 and the second andthird communication devices mobile terminal 10 and the second andthird communication devices mobile terminal 10 and the second andthird communication devices - Furthermore, although not shown in
FIG. 2 , themobile terminal 10 and the second andthird communication devices mobile terminal 10 and the second andthird communication devices network 30 and each other by any of numerous different access mechanisms. For example, mobile access mechanisms such as Wideband Code Division Multiple Access (W-CDMA), CDMA2000, Global System for Mobile communications (GSM), General Packet Radio Service (GPRS) and/or the like may be supported as well as wireless access mechanisms such as WLAN, WiMAX, and/or the like and fixed access mechanisms such as Digital Subscriber Line (DSL), cable modems, Ethernet and/or the like. - In an example embodiment, the first communication device (e.g., the mobile terminal 10) may be a mobile communication device such as, for example, a wireless telephone or other devices such as a personal digital assistant (PDA), mobile computing device, camera, video recorder, audio/video player, positioning device, game device, television device, radio device, or various other like devices or combinations thereof. The
second communication device 20 and thethird communication device 25 may be mobile or fixed communication devices. However, in one example, thesecond communication device 20 and thethird communication device 25 may be servers, remote computers or terminals such as personal computers (PCs) or laptop computers. - In an example embodiment, the
network 30 may be an ad hoc or distributed network arranged to be a smart space. Thus, devices may enter and/or leave thenetwork 30 and the devices of thenetwork 30 may be capable of adjusting operations based on the entrance and/or exit of other devices to account for the addition or subtraction of respective devices or nodes and their corresponding capabilities. - In an example embodiment, the mobile terminal as well as the second and
third communication devices FIG. 3 ) capable of employing an embodiment of the invention. -
FIG. 3 illustrates a schematic block diagram of an apparatus according to an example embodiment of the invention. An exemplary embodiment of the invention will now be described with reference toFIG. 3 , in which certain elements of anapparatus 50 are displayed. Theapparatus 50 ofFIG. 3 may be employed, for example, on the mobile terminal 10 (and/or thesecond communication device 20 or the third communication device 25). Alternatively, theapparatus 50 may be embodied on a network device of thenetwork 30. However, theapparatus 50 may alternatively be embodied at a variety of other devices, both mobile and fixed (such as, for example, any of the devices listed above). In some cases, an embodiment may be employed on a combination of devices. Accordingly, an embodiment of the invention may be embodied wholly at a single device (e.g., the mobile terminal 10), by a plurality of devices in a distributed fashion (e.g., on one or a plurality of devices in a P2P network) or by devices in a client/server relationship. Furthermore, it should be noted that the devices or elements described below may not be mandatory and thus some may be omitted in certain embodiments. - Referring now to
FIG. 3 , an apparatus according to an exemplary embodiment is provided. Theapparatus 50 may include or otherwise be in communication with aprocessor 70, auser interface 67, acommunication interface 74, amemory device 76, adisplay 85, and apositioning sensor 78. Thememory device 76 may include, for example, volatile and/or non-volatile memory. Thememory device 76 may be configured to store information, data, files, applications, instructions or the like for enabling the apparatus to carry out various functions in accordance with an exemplary embodiment of the invention. For example, thememory device 76 could be configured to buffer input data for processing by theprocessor 70. Additionally or alternatively, thememory device 76 could be configured to store instructions for execution by theprocessor 70. As yet another alternative, thememory device 76 may be one of a plurality of databases that store information and/or media content (e.g., pictures, videos, etc.). Thememory device 76 may include one or more databases. In an example embodiment, thememory device 76 may be a tangible memory device that is not transitory. Thememory device 76 may store map data and/or data associated with one or more locations of objects and/or places or the like. - The
apparatus 50 may, in one embodiment, be a mobile terminal (e.g., mobile terminal 10) or a fixed communication device or computing device configured to employ an example embodiment of the invention. However, in one embodiment, theapparatus 50 may be embodied as a chip or chip set. In other words, theapparatus 50 may comprise one or more physical packages (e.g., chips) including materials, components and/or wires on a structural assembly (e.g., a baseboard). The structural assembly may provide physical strength, conservation of size, and/or limitation of electrical interaction for component circuitry included thereon. Theapparatus 50 may therefore, in some cases, be configured to implement an embodiment of the invention on a single chip or as a single “system on a chip.” As such, in some cases, a chip or chipset may constitute means for performing one or more operations for providing the functionalities described herein. Additionally or alternatively, the chip or chipset may constitute means for enabling user interface navigation with respect to the functionalities and/or services described herein. - The
positioning sensor 78 may be in communication withprocessor 70. Thepositioning sensor 78 may include, for example, a global positioning system (GPS) sensor, an assisted global positioning system (Assisted-GPS) sensor, a Bluetooth (BT)-GPS mouse, or other GPS or positioning receivers or the like. In one embodiment, however, the positioning sensor may include a pedometer or inertial sensor. In another embodiment, the positioning sensor may be any means such as a device or circuitry operating in accordance with software or otherwise embodied in hardware or a combination of hardware and software (e.g.,processor 70 operating under software control, theprocessor 70 embodied as an ASIC or FPGA specifically configured to perform the operations described herein, or a combination thereof) thereby configuring the device or circuitry to perform the corresponding functions of the positioning sensor as described below. Thus, in examples in which software is employed, a device or circuitry (e.g.,processor 70 in one example) executing the software forms the structure associated with such means. - In this regard, for example, the
positioning sensor 78 may be configured to generate, among other things, GPS data that may be used by the processor of the apparatus to determine the location of the apparatus. The data associated with the location may but need not include information related to one or more of longitude, latitude and altitude coordinates of the apparatus. In an example embodiment, thepositioning sensor 78 may send one or more queries to a network device for location data (e.g., map data) and upon receipt of the location data from the network device, thepositioning sensor 78 may utilize the location information (e.g., map data) to determine a location of a place, object or the like. In an example embodiment, thepositioning sensor 78 may send the determined location information to one or more applications of theapparatus 50. - The
processor 70 may be embodied in a number of different ways. For example, theprocessor 70 may be embodied as various processing means such as a processing element, a coprocessor, a controller or various other processing devices including integrated circuits such as, for example, an ASIC (application specific integrated circuit), an FPGA (field programmable gate array), a hardware accelerator, or the like. In an exemplary embodiment, theprocessor 70 may be configured to execute instructions stored in thememory device 76 or otherwise accessible to theprocessor 70. As such, whether configured by hardware or software methods, or by a combination thereof, theprocessor 70 may represent an entity (e.g., physically embodied in circuitry) capable of performing operations according to embodiments of the invention while configured accordingly. Thus, for example, when theprocessor 70 is embodied as an ASIC, FPGA or the like, theprocessor 70 may be specifically configured hardware for conducting the operations described herein. Alternatively, as another example, when theprocessor 70 is embodied as an executor of software instructions, the instructions may specifically configure theprocessor 70, which may otherwise be a general purpose processing element or other functionally configurable circuitry if not for the specific configuration provided by the instructions, to perform the algorithms and operations described herein. However, in some cases, theprocessor 70 may be a processor of a specific device (e.g., a mobile terminal) adapted for employing an embodiment of the invention by further configuration of theprocessor 70 by instructions for performing the algorithms and operations described herein. - In an exemplary embodiment, the
processor 70 may be configured to operate a connectivity program, such as a browser, Web browser or the like. The browser may execute one or more applications such as, for example, web applications. In this regard, the connectivity program may enable theapparatus 50 to transmit and receive Web content, such as for example location-based content or any other suitable content, according to a Wireless Application Protocol (WAP), for example. The browser may utilize Hypertext Markup Language (HTML), JavaScript or any other suitable programming languages for handling Web content. Theprocessor 70 may also be in communication with adisplay 85 and may instruct the display to illustrate any suitable information, data, content (e.g., media content) or the like. - Meanwhile, the
communication interface 74 may be any means such as a device or circuitry embodied in either hardware, software, or a combination of hardware and software that is configured to receive and/or transmit data from/to a network and/or any other device or module in communication with theapparatus 50. In this regard, thecommunication interface 74 may include, for example, an antenna (or multiple antennas) and supporting hardware and/or software for enabling communications with a wireless communication network (e.g., network 30). In fixed environments, thecommunication interface 74 may alternatively or also support wired communication. As such, thecommunication interface 74 may include a communication modem and/or other hardware/software for supporting communication via cable, digital subscriber line (DSL), universal serial bus (USB), Ethernet or other mechanisms. - The
user interface 67 may be in communication with theprocessor 70 to receive an indication of a user input at theuser interface 67 and/or to provide an audible, visual, mechanical or other output to the user. As such, theuser interface 67 may include, for example, a keyboard, a mouse, a joystick, a display, a touch screen, a microphone, a speaker, or other input/output mechanisms. In an example embodiment in which the apparatus is embodied as a server or some other network devices, theuser interface 67 may be limited, remotely located, or eliminated. - Referring now to
FIG. 4 , a block diagram of an exemplary embodiment of a network entity such as, for example,network device 90 is provided. As shown inFIG. 4 , the network device 90 (e.g., a server) may include aprocessor 94 and an associatedmemory 96. Thememory 96 may comprise volatile and/or non-volatile memory, and may store content, data and/or the like. For example, the memory may store content, data, information, and/or the like transmitted from, and/or received by, the network device. Also for example, thememory 96 may store client applications, instructions, computer program code and/or the like for theprocessor 94 to perform the various operations of the network device in accordance with embodiments of the invention, as described above. Thememory 96 may include one or more databases, such as, for example,database 93. In one example embodiment, thememory 96 may be embodied in thenetwork device 90. In another alternative example embodiment, thememory 96 may be external to thenetwork device 90. Thedatabase 93 may be a geographical database (also referred to herein asgeodatabase 93 or geographical database 93) in which geographical data may be converted to one or more map tiles by thedatabase converter 97 in the manner described more fully below. In this regard, the geographical database may include at least one column that defines the geometry (e.g., points, lines, polygons, etc.) for corresponding records associated with locations (e.g., one or more maps) of places, objects or the like (e.g., cities, highways, bridges, etc.) in the real world. In this regard, the records may be associated with coordinates such as, for example, latitude and longitude coordinates corresponding to the places, objects or the like in the real world. The geographical database may receive one or more queries from theprocessor 94 and/or thedatabase converter 97 for retrieval of data in the geographical database as well as for any other suitable reasons. In an example embodiment, thedatabase 93 may include, but is not limited to, geographical data associated with one or more streets (e.g., corresponding to road geometry), oceans (e.g., corresponding to water geometry), administrative boundaries (e.g., corresponding to boundary geometry for countries, states, counties, cities, zip codes, etc.) or any other suitable geographical data. - In addition to the
memory 96, theprocessor 94 may also be connected to at least one interface or other means for displaying, transmitting and/or receiving data, content, and/or the like. In this regard, the interface(s) may comprise at least onecommunication interface 98 or other means for transmitting and/or receiving data, content, and/or the like, as well as at least oneuser input interface 95. Theuser input interface 95, in turn, may comprise any of a number of devices allowing the network entity to receive data from a user, such as a keypad, a touch display, a joystick or other input device. In this regard, theprocessor 94 may comprise user interface circuitry configured to control at least some functions of one or more elements of the user input interface. The processor and/or user interface circuitry of the processor may be configured to control one or more functions of one or more elements of the user interface through computer program instructions (e.g., software and/or firmware) stored on a memory accessible to the processor (e.g., volatile memory, non-volatile memory, and/or the like). - In an example embodiment, the
processor 94 may be embodied as, include or otherwise control thedatabase converter 97. Thedatabase converter 97 may be any means such as a device or circuitry operating in accordance with software or otherwise embodied in hardware or a combination of hardware and software (e.g., processor 94) operating under software control, theprocessor 94 embodied as an ASIC or FPGA specifically configured to perform the operations described herein, or a combination thereof) thereby configuring the device or structure to perform the corresponding functions of thedatabase converter 97 as described below. Thus, in an example in which software is employed, a device or circuitry (e.g., theprocessor 94 in one example) executing the software forms the structure associated with such means. - The
database converter 97 may convert geographical data associated with coordinates such as, for example, latitude and longitude coordinates (associated with locations (e.g., one or more maps) of places or objects or the like in the real world) corresponding to one or more records in a geographical database(s) (e.g., database 93) into one or more map tiles. The map tiles may be defined by one or more corresponding loose tile blocks that may be associated with records, in the manner described more fully below. - In this regard, the
database converter 97 may enable reduction of the size of computing storage (e.g., memory) and minimize processing requirements that may be required to maintain tile indexes on geographical databases. To achieve this, thedatabase converter 97 may take as input a geographic database D and a map zoom level zinput. For each geographical record R in the geographic database D, thedatabase converter 97 may determine the set of tiles S={Ti} at zoom level zinput such that the geometry (e.g., a point(s), line(s), polygon)(s), etc.), corresponding to a location of a place, area or object, for record R intersects with Ti. - The
database converter 97 may then add an entry for R indicating the smallest rectangular block B of tiles on a corresponding map such that B⊃S, where B denotes a loose tile block representation for the record R. In order to execute a query to retrieve all geographical records R whose geometry may intersect with a given tile T, thedatabase converter 97 may identify all records R in the geographic database D such that the loose tile block B (e.g., a rectangular tile block B) for R intersects with T. In this regard, thedatabase converter 97 may convert geographic content corresponding to geometric data (e.g., points, lines, polygons, etc.) of a geographic database to one or more corresponding map tiles, as described more fully below. The conversion of the geographic content to corresponding map tiles according to an example embodiment may reduce computing storage capacity and processing requirements. - For purposes of illustration and not of limitation consider the following as an example in which the
database converter 97 may convert geographical content corresponding to geometric data in a geographical database to one or more map tiles. - In this regard, the
database converter 97 may implement a database optimization procedure and may analyze at least two input variables: (1) a geographical database D; and (2) a zoom level zinput. The output of the database optimization procedure may be a new or modified geographical database D1. In this regard, thedatabase converter 97 may set the value of zinput to be the maximum zoom level (e.g., a maximum zoom level of 18, 20, etc.) in a map system. The geographical database D may include a column(s) named geometry that defines the geometry (e.g. points, lines, polygons, etc.) corresponding to one or more records. The geometry may correspond to one or more coordinates such as, for example, longitude and latitude coordinates associated with location data (e.g., map data). An example of the geographic database D may bedatabase 93 in one example embodiment. In this regard, thedatabase 93 may include geographic content (e.g., geometrical location data (e.g., map data)) associated with locations of places or objects in the real world such as for example streets, highways (e.g., road geometry), oceans (e.g., water geometry), one or more administrative boundaries (e.g., boundary geometry for countries, states, counties, cities and zip codes) and any other suitable geographic data. - The
database converter 98 may implement the database optimization procedure and add at least four new columns to the geographic database D. The columns added to the geographic database D by thedatabase converter 98 may be denoted as xmin, ymin, xmax, and ymax. Given one or more records R of the geographic database D and one or more values of a geometry field in record(s) R, thedatabase converter 97 may define the fields as follows: -
- xmin: the minimum x value of all tiles at zoom level zinput that may include some portion of the geometry of R;
- ymin: the minimum y value of all tiles at zoom level zinput that may include some portion of the geometry of R;
- xmax: the maximum x value of all tiles at zoom level zinput that may include some portion of the geometry of R; and
- ymax: the maximum y value of all tiles at zoom level zinput that may include some portion of the geometry of R,
- where, xmin, ymin, xmax and ymax represents the loose tile block (e.g., a rectangular tile block) for the geographic record R.
- For each record R in the geographic database D (e.g., database 93), the
database converter 97 may perform the following: (1) compute the set of tiles S={Ti} at zoom level zinput that may include some portion of the geometry of a record(s) R (e.g., a record associated with geometry (e.g., latitude and longitude coordinates) for a street, etc.); and (2) update a record(s) R as follows: - Set R.xmin=the minimum x value of tiles in S
- Set R.ymin=the minimum y value of tiles in S
- Set R.xmax=the maximum x value of tiles in S
- Set R.ymax=the maximum y value of tiles in S
- In this regard, the
database converter 97 may determine that the values of R.xmin, R.ymin, R.xmax, R.ymax may define a loose block (e.g., a rectangular block) of tiles that is a superset of S. - A client (e.g., apparatus 50) may issue a query Q for a tile in the new or modified geographical database D1 (e.g., database 93). In response to receipt of the query Q by the
network device 90, thedatabase converter 97 may perform the following: - SELECT*from D1 WHERE x=xi AND y=yi AND zoom=zi.
- In other words, the
database converter 97 may select each of the records of the modified or new geographical database D1, where x=xi and y=yi and zoom=zi. It should be pointed out that in one example embodiment thepositioning sensor 78 of theapparatus 50 may generate and send the query Q to thenetwork device 90. - In this regard, the
database converter 97 may first compute the set U of tiles such that the tiles in set U are at the maximum zoom level zmax (or the zoom level that was chosen as input (e.g., zinput) to the database optimization procedure) and that may be included in the tile referenced in the client query Q (e.g., the x=xi, y=yi, zoom=zi). Due to the hierarchical nature of map tiles, thedatabase converter 97 may compute, for any map tile T at any zoom level, all tiles at the maximum zoom level zmax that may be included in the tile T. In this regard, defining the maximum zoom level (e.g., a zoom level of 18, 20, etc.) as the input zoom level to the database optimization procedure may be used in part to determine the set of all tiles at zoom zmax that may be included in the tile T. Thedatabase converter 97 may define Uleft as the x value of the leftmost tile in the set U of tiles, Uright as the x value of the rightmost tile in set U, Utop as the y value of the topmost tile in set U and Ubottom as the y value of the bottommost tile in set U. - The
database converter 97 may then convert query Q into a new query Q1 where query Q1 may be determined by the following: - SELECT*FROM D1 WHERE Uleft≦xmax AND Uright≧xmin AND Utop≦ymax AND Ubottom≧ymin.
In other words, thedatabase converter 97 may select each of the records from the new or modified geographical database D1 where Uleft≦xmax and Uright≧xmin and Utop≦ymax and Ubottom≧ymin. - The
database converter 97 may define C as the set of candidate records returned based on executing query Q1. For each record R in candidate records C, thedatabase converter 97 may determine if the tile identified by x=xi, y=yi, zoom=zi includes some portion of the geometry of a record(s) R. In an instance in which thedatabase converter 78 determines that the result is false, thedatabase converter 97 may remove a corresponding record(s) R from the candidate record(s) C. In this regard, thedatabase converter 97 may return the final candidate record(s) C to the client (e.g., apparatus 50) that sent the query Q to thenetwork device 90. In this manner, the client may utilize the data (e.g., map data) associated with the records. - Referring now to
FIG. 5 an example embodiment for mapping a tile from one zoom level to a higher zoom level is provided. In this regard, given a tile T=(x1, y1) at zoom level z1, the block of tiles contained in T at zoom level z2 where z2≧z1 may be defined by thedatabase converter 97 as follows: - Define z2−z1=z, then
-
Equation 1 is defined as: x 2=2×z×x 1; -
Equation 2 is defined as: y 2=2×z×y 1; and -
Equation 3: n=m=2×z−1. - It should be pointed out that the tile T may be included in a query Q from a client (e.g., apparatus 50) to the
network device 90 for corresponding location data (e.g., map data). - By utilizing these equations, the
database converter 97 may generate the mapped tile ofFIG. 5 that may be utilized for any zoom level in order to map a tile from one zoom level (e.g., zoom level 1) to a higher zoom level (e.g., zoom level 15) according to an example embodiment. - For purposes of illustration and not of limitation regarding an example manner in which the
database converter 97 may convert geographical content corresponding to geometrical data of a geographic database to one or more corresponding map tiles, consider the following example. - In this example embodiment, a client (e.g., apparatus 50) may issue or send a query to a network entity (e.g., network device 90) for a tile at
zoom level 10 in which a corresponding map may have a maximum zoom level of 18. As such, thedatabase converter 97 may perform the following: - SELECT*FROM D WHERE x=100 AND y=200 AND zoom=10
- In other words, the
database converter 97 may select each record R from a geographic database D that may have geometry data (e.g. in a geometry field) corresponding to an x value (e.g., the coordinate) of 100, a y value (e.g., the coordinate) of 200 and a zoom value of 10. - In this regard, the
database converter 97 of thenetwork device 90 may first compute or determine the equivalent block of tiles at zoom level 18 for this tile corresponding to a zoom level of 10 where x=100, y=200, zoom=10. Zoom level 18 may be used because the geographical records in a map tile database may be represented as zoom level 18 tiled records (since the maximum zoom level for a corresponding map may be 18, in this example). - The
database converter 97 may apply the equations described above with respect toFIG. 5 to this example to compute the following: -
x 1=100,y 1=200,z 1=10,z 2=18 -
z 2 −z 1=8(e.g., 18−10=8=z) -
x 2=1600(e.g., 2×8×100=1600),y 2=3200(e.g., 2×8×200=3200),n=m=15(e.g., 2×8−1=15),x 2 +n=1615(e.g., 1600+15=1615),y 2 +m=3215(e.g., 3200+15=3215). - Referring now to
FIG. 6 , based on the above calculations, thedatabase converter 97 may generate the tile block at zoom level 18 that is equivalent to thezoom level 10 in which x=100, y=200, zoom=10. For instance, the tile block ofFIG. 6 shows that x2=1600, y2=3200, x2+n=1615, y2+m=3215, etc. In this regard, thedatabase converter 97 may determine a rectangular tile block B1 obtained in response to expanding the tile atzoom level 10 into zoom level 18. - After computing the equivalent tiles at zoom level 18, the
database converter 97 of thenetwork device 90 may convert the initial query Q sent by a client (e.g., apparatus 50) into a new query Q1 where the x and y values are now based on a zoom level of 18. Based on the example above, this new query Q1 may be denoted as follows: - SELECT*(e.g., select each record(s)) from D1 WHERE Uleft≦xmax AND Uright≧xmin AND Utop≦ymax AND Ubottom≧ymin, which yields the following when applied to this example:
SELECT*FROM D1 WHERE 1600≦xmax AND 1615≧xmin AND 3200≦ymax AND 3215≧ymin. - As such, this new query Q1 may be provided by the
database converter 97 to the new or modified geographical database (e.g., database 93) having map tile data generated based in part on geometric data, in the manner described above. In this regard, the query Q1 may be utilized to return all geographical records in the new or modified geographic database whose loose tile blocks intersect with the tile block in the new query Q1. In this manner, thegeographical records network device 90 since their tile blocks 80 (also referred to herein as loose tile block 80), 82, 84, respectively, intersect with the new query Q1 tile block 87, as shown inFIG. 7 . - Referring to
FIG. 7 , a map illustrating rectangular blocks to define each geographical record even though the geometry of a geographical record may not actually intersect every tile in the corresponding rectangular tile block is provided. The benefit of this example embodiment may be that it may allow an efficient tile representation of geographical records by using the range of tiles in that block as opposed to having a more accurate definition that may require listing every tile that the geometry of a corresponding record(s) intersects. Consider a case in which the geometry of a record(s) may intersect 1000 random tiles. Instead of maintaining a list of the 1000 tiles for that record, the exemplary embodiments may always use four numbers defining the minimum x and y tile values and the maximum x and y tile values. - With respect to the example above, the
database converter 97 may receive the results from the new query Q1 that was provided by thedatabase converter 97 to the new or modified geographical database (e.g., database 93). Thedatabase converter 97 may then inspect the geometry (e.g., latitude coordinates and longitude coordinates associated with geometric data (e.g., points, lines, polygons, etc.)) corresponding to each record in the results to determine if the geometry actually interests thetile block 87 in the new query Q1. As shown inFIG. 7 , thedatabase converter 97 may determine that the geometries ofgeographical records query tile block 87. However, thedatabase converter 97 may also determine that although theloose tile block 80 corresponding togeographical record 1 intersects thequery tile block 87, the actual geometry corresponding togeographical record 1 does not intersect thequery tile block 87. As such, thedatabase converter 97 may removegeographical record 1 from the results retrieved from the new or modified geographical database and may only providegeographical records network device 90. It should be pointed out thatgeographical record 4 is not retrieved from the database in this example embodiment since the associatedloose tile block 85 does not intersect thequery tile block 87. - Referring again to
FIG. 7 , thedatabase converter 97 may determine that the tile blocks 80, 82, 84 and 85 are rectangular blocks B2 that are the loose tile representations of the geographical records in the modifieddatabase 93. In an instance in which theconverter 97 determines that a tile block B1 (e.g., query tile block 87) intersects a given tile block B2 (e.g., a loose tile block B2) then the geographical records associated with the corresponding rectangular tile blocks B2 may be returned by the database to thedatabase converter 97 of the network device 90 (e.g., a server). In this regard, the database converter may analyze the results of the query Q1 and may remove any record(s) whose geometry does not actually intersect query tile block B1 before returning the results to the client (e.g., apparatus 50). - Referring now to
FIG. 8 , an exemplary method for converting geographical content corresponding to geometric data in a geographical database to one or more map tiles is provided. Atoperation 800, an apparatus (e.g., network device 90) may analyze geometrical data (e.g. points, lines, polygons, etc.) corresponding to a plurality of records of a geographic database (e.g., database 93). The geometrical data may be included in a column of the geographical database associated with corresponding records. The geometrical data may be associated with coordinates such as, for example, latitude and longitude coordinates. Atoperation 805, the apparatus (e.g., network device 90) may modify the geographical database by adding a plurality of items of data arranged in a plurality of receptive fields based in part on analysis of one or more values corresponding to geometry data associated with each of the records. The fields may correspond to respective columns (e.g., xmin, ymin, xmax, ymax) of the modified geographic database. - At
operation 810, an apparatus (e.g., network device 90) may determine a set of tiles, for each of the records, at a predetermined zoom level that may include at least a portion of geometrical data of respective records. The predetermined zoom level may correspond to a maximum zoom level of a corresponding map (e.g., a maximum zoom level of 18). Atoperation 815, the apparatus may update each of the records of the geographical database to include data associated with minimum and maximum x and y values (e.g., R.xmin, R.ymin, R.xmax, R.ymax) of the tiles of the set that correspond to the geometrical data of respective records. Optionally, atoperation 820, the apparatus may determine, for each of the records in the modified geographical database, that the minimum and maximum x and y values define a rectangular block of map tiles that is a superset of the set of tiles that includes at least a portion of geometrical data of respective records. In this regard, the apparatus may utilize at least one of the rectangular block of map tiles to determine whether to provide data associated with at least one geographical record to a device (e.g., apparatus 50) in response to receipt of a query (e.g., query Q). The apparatus may determine to provide the geographical record(s) to a device in an instance in which the geometry data associated with the geographical record(s) intersects the tile referenced in the query received from the device. - Referring now to
FIG. 9 , an exemplary method is provided for executing one or more queries on the modified database according to an example embodiment. Atoperation 900, an apparatus (e.g., network device 90) may receive a query (e.g., query Q) from a device (e.g., apparatus 50) in which the query may include data associated with a tile corresponding to x and y values and a zoom level corresponding to the tile. Atoperation 905, the apparatus may determine a plurality of equivalent tiles, corresponding to the tile in the query, at a maximum zoom level based in part on the zoom level for the tile in the query. Atoperation 910, the apparatus may convert the query into a new query (e.g., query Q1) comprising x and y values corresponding to the maximum zoom level. - At
operation 915, the apparatus may provide the new query to the modified database (e.g., database 93) requesting retrieval of each geographical record associated with tile blocks that intersect with the tile block identified in the new query. Atoperation 920, the apparatus may receive results of the new query indicating one or more geographical records associated with tile blocks intersecting the tile block in the new query. The results of the new query may be received from the modified geographical database. Atoperation 925, the apparatus may analyze the one or more geographical records to determine which geographical record(s) is associated with geometry data that intersects the tile block identified in the new query. Atoperation 930, the apparatus may remove any of the one or more geographical records from the results that are determined to be associated with geometry data that does not intersect the tile block in the new query. Atoperation 935, the apparatus may provide the results to a device (e.g., apparatus 50) in which the results may indicate at least one of the geographical records with geometry data that intersects the tile block in the new query. - It should be pointed out that
FIGS. 8 and 9 are flowcharts of systems, methods and computer program products according to an example embodiment of the invention. It will be understood that each block of the flowcharts, and combinations of blocks in the flowcharts, can be implemented by various means, such as hardware, firmware, and/or a computer program product including one or more computer program instructions. For example, one or more of the procedures described above may be embodied by computer program instructions. In this regard, in an example embodiment, the computer program instructions which embody the procedures described above are stored by a memory device (e.g., memory 96) and executed by a processor (e.g.,processor 94, database converter 97). As will be appreciated, any such computer program instructions may be loaded onto a computer or other programmable apparatus (e.g., hardware) to produce a machine, such that the instructions which execute on the computer or other programmable apparatus cause the functions specified in the flowchart blocks to be implemented. In one embodiment, the computer program instructions are stored in a computer-readable memory that can direct a computer or other programmable apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instructions which implement the function(s) specified in the flowcharts blocks. The computer program instructions may also be loaded onto a computer or other programmable apparatus to cause a series of operations to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus implement the functions specified in the flowcharts blocks. - Accordingly, blocks of the flowcharts support combinations of means for performing the specified functions. It will also be understood that one or more blocks of the flowcharts, and combinations of blocks in the flowcharts, can be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.
- In an example embodiment, an apparatus for performing the methods of
FIGS. 8 and 9 above may comprise a processor (e.g., theprocessor 94, the database converter 97) configured to perform some or each of the operations (800-820 and 900-935) described above. The processor may, for example, be configured to perform the operations (800-820 and 900-935) by performing hardware implemented logical functions, executing stored instructions, or executing algorithms for performing each of the operations. Alternatively, the apparatus may comprise means for performing each of the operations described above. In this regard, according to an example embodiment, examples of means for performing operations (800-820 and 900-935) may comprise, for example, the processor 94 (e.g., as means for performing any of the operations described above), thedatabase converter 97 and/or a device or circuit for executing instructions or executing an algorithm for processing information as described above. - Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, although the foregoing descriptions and the associated drawings describe exemplary embodiments in the context of certain exemplary combinations of elements and/or functions, it should be appreciated that different combinations of elements and/or functions may be provided by alternative embodiments without departing from the scope of the appended claims. In this regard, for example, different combinations of elements and/or functions than those explicitly described above are also contemplated as may be set forth in some of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
Claims (20)
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/973,514 US8352480B2 (en) | 2010-12-20 | 2010-12-20 | Methods, apparatuses and computer program products for converting a geographical database into a map tile database |
KR20137018896A KR101493184B1 (en) | 2010-12-20 | 2011-10-18 | Methods, apparatuses and computer program products for converting a geographical database into a map tile database |
EP11851800.0A EP2656249A4 (en) | 2010-12-20 | 2011-10-18 | Methods, apparatuses and computer program products for converting a geographical database into a map tile database |
CN201180061216.3A CN103270509B (en) | 2010-12-20 | 2011-10-18 | Method, apparatus and computer program product for converting a geographic database into a map tile database |
PCT/IB2011/054612 WO2012085693A1 (en) | 2010-12-20 | 2011-10-18 | Methods, apparatuses and computer program products for converting a geographical database into a map tile database |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/973,514 US8352480B2 (en) | 2010-12-20 | 2010-12-20 | Methods, apparatuses and computer program products for converting a geographical database into a map tile database |
Publications (2)
Publication Number | Publication Date |
---|---|
US20120158762A1 true US20120158762A1 (en) | 2012-06-21 |
US8352480B2 US8352480B2 (en) | 2013-01-08 |
Family
ID=46235788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/973,514 Expired - Fee Related US8352480B2 (en) | 2010-12-20 | 2010-12-20 | Methods, apparatuses and computer program products for converting a geographical database into a map tile database |
Country Status (5)
Country | Link |
---|---|
US (1) | US8352480B2 (en) |
EP (1) | EP2656249A4 (en) |
KR (1) | KR101493184B1 (en) |
CN (1) | CN103270509B (en) |
WO (1) | WO2012085693A1 (en) |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120209818A1 (en) * | 2011-02-11 | 2012-08-16 | Jan Richter | Incremental testing of a navigation database |
US20140122418A1 (en) * | 2012-10-29 | 2014-05-01 | Anthony Leto | Systems and methods for determining data dependency for dynamic tiles |
US8937627B1 (en) * | 2012-03-28 | 2015-01-20 | Google Inc. | Seamless vector map tiles across multiple zoom levels |
CN104572755A (en) * | 2013-10-24 | 2015-04-29 | 高德软件有限公司 | Method for creating data index, data searching method and related device |
RU2632150C1 (en) * | 2016-04-04 | 2017-10-02 | Общество С Ограниченной Ответственностью "Яндекс" | Method and system of downloading the image to the customer's device |
US9934757B2 (en) | 2016-04-04 | 2018-04-03 | Yandex Europe Ag | Method and system of downloading image tiles onto a client device |
US10210272B1 (en) * | 2017-11-27 | 2019-02-19 | The Florida International University Board Of Trustees | Window query monitoring for mobile devices and central database servers with a tree-like index |
US10248663B1 (en) * | 2017-03-03 | 2019-04-02 | Descartes Labs, Inc. | Geo-visual search |
CN111221933A (en) * | 2019-12-31 | 2020-06-02 | 武汉市珞珈俊德地信科技有限公司 | Three-dimensional tile construction method for fusion of massive map data and building information model |
US20210374858A1 (en) * | 2016-09-15 | 2021-12-02 | Simpsx Technologies Llc | Transportation and Freight Capacity Units |
US20220004308A1 (en) * | 2016-09-15 | 2022-01-06 | Simpsx Technologies Llc | Multi-Dimension Information Service Helmet Method and System |
US20220358725A1 (en) * | 2019-06-13 | 2022-11-10 | Airbus Defence And Space Sas | Digital mission preparation system |
US11790382B2 (en) | 2016-09-15 | 2023-10-17 | Circlesx Llc | Method to transmit geolocation exchange based markets |
US11810023B2 (en) | 2018-10-22 | 2023-11-07 | Circlesx Llc | System and method for a transportation or freight capacity exchange for one or more transportation or freight capacity units |
US11823090B2 (en) | 2016-09-15 | 2023-11-21 | Circlesx Llc | Transportation and freight and parking and tolling and curb capacity unit IPO method and system |
US11829594B2 (en) | 2017-01-13 | 2023-11-28 | Circlesx Llc | Computer ball device for mixed reality, virtual reality, or augmented reality |
US11836791B2 (en) | 2016-09-15 | 2023-12-05 | Circlesx Llc | Securitization of transportation units |
US11861527B2 (en) | 2018-11-07 | 2024-01-02 | Circlesx Llc | Financial swap payment structure method and system on transportation capacity unit assets |
RU2811359C1 (en) * | 2023-06-29 | 2024-01-11 | Общество с ограниченной ответственностью "Технологии Отраслевой Трансформации" | Method and system for forming partitioned data marts containing geodata and their use in process of data storage operation |
US11880883B2 (en) | 2016-09-15 | 2024-01-23 | Circlesx Llc | Systems and methods for geolocation portfolio exchanges |
US11907870B2 (en) | 2018-01-23 | 2024-02-20 | Circlesx Llc | Market exchange for transportation capacity in transportation vehicles |
US12001999B2 (en) | 2016-09-15 | 2024-06-04 | Circlesx Llc | Price based navigation |
US12020532B2 (en) | 2016-09-15 | 2024-06-25 | Circlesx Llc | Implementations of a computerized business transaction exchange for various users |
US12039585B2 (en) | 2017-04-10 | 2024-07-16 | Circlesx Llc | System and method for blood and saliva optimized food consumption and delivery |
US12106365B2 (en) | 2016-09-15 | 2024-10-01 | Circlesx Llc | Web browser and operating system portal and search portal with price time priority queues |
US12141885B2 (en) | 2016-09-15 | 2024-11-12 | Circlesx Llc | Parking community objects with price-time priority queues for transformed parking units |
US12152894B2 (en) | 2016-09-15 | 2024-11-26 | Circlesx Llc | Multi-dimension classification object matrices to estimate multi-dimensional representations with multi function device |
US12154183B2 (en) | 2016-09-15 | 2024-11-26 | Circlesx Llc | System and method for a tutoring exchange for tutoring units |
US12165223B2 (en) | 2016-09-15 | 2024-12-10 | Circlesx Llc | Renewable energy community objects with price-time priority queues for transformed renewable energy units |
WO2025005820A1 (en) * | 2023-06-29 | 2025-01-02 | Общество с ограниченной ответственностью "Технологии Отраслевой Трансформации" | Method and system for creating and using partitioned geodata marts |
US12260456B2 (en) | 2016-09-15 | 2025-03-25 | Circlesx Llc | Virtual reality, augmented reality, mixed reality data exchange social network with multi dimensional map tile porting |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015195923A1 (en) * | 2014-06-21 | 2015-12-23 | Google Inc. | Tile-based distribution of searchable geospatial data to client devices |
KR101598809B1 (en) * | 2014-10-30 | 2016-03-02 | 김시윤 | The method for setting the position of user and searching for adjacent users by the relation of up and down |
CN104537031B (en) * | 2014-12-19 | 2018-06-08 | 百度在线网络技术(北京)有限公司 | The amending method and device of a kind of map datum |
EP3038018A1 (en) * | 2014-12-27 | 2016-06-29 | Dassault Systèmes | Clustering database queries for runtime prediction |
US10008046B2 (en) * | 2016-06-29 | 2018-06-26 | Here Global B.V. | Method, apparatus and computer program product for adaptive venue zooming in a digital map interface |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060184519A1 (en) * | 1997-02-27 | 2006-08-17 | Smartt Brian E | System and method of optimizing database queries in two or more dimensions |
US20060218114A1 (en) * | 2005-03-25 | 2006-09-28 | Microsoft Corporation | System and method for location based search |
US7397811B2 (en) * | 2003-04-23 | 2008-07-08 | Ericsson Ab | Method and apparatus for determining shared broadcast domains of network switches, ports and interfaces |
US20090027418A1 (en) * | 2007-07-24 | 2009-01-29 | Maru Nimit H | Map-based interfaces for storing and locating information about geographical areas |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5953722A (en) | 1996-10-25 | 1999-09-14 | Navigation Technologies Corporation | Method and system for forming and using geographic data |
US7689621B1 (en) | 2000-11-06 | 2010-03-30 | Navteq North America, Llc | Multi-dimensional spatial index for a geographic database |
US7580927B1 (en) | 2001-05-29 | 2009-08-25 | Oracle International Corporation | Quadtree center tile/boundary tile optimization |
US6879980B1 (en) | 2001-06-29 | 2005-04-12 | Oracle International Corporation | Nearest neighbor query processing in a linear quadtree spatial index |
US7152071B2 (en) | 2002-05-01 | 2006-12-19 | Sun Microsystems, Inc. | Shape-based geometric database and methods and systems for construction and use thereof |
US7099882B2 (en) | 2003-04-29 | 2006-08-29 | Navteq North America, Llc | Method and system for forming, updating, and using a geographic database |
US7539666B2 (en) | 2004-04-06 | 2009-05-26 | International Business Machines Corporation | Method, system and program for managing geographic data stored in a database |
US7801897B2 (en) * | 2004-12-30 | 2010-09-21 | Google Inc. | Indexing documents according to geographical relevance |
WO2007056449A2 (en) * | 2005-11-07 | 2007-05-18 | Google Inc. | Mapping in mobile devices |
CN102027468B (en) | 2008-05-16 | 2014-04-23 | 上海惠普有限公司 | Provisioning a geographical image for retrieval |
-
2010
- 2010-12-20 US US12/973,514 patent/US8352480B2/en not_active Expired - Fee Related
-
2011
- 2011-10-18 EP EP11851800.0A patent/EP2656249A4/en not_active Withdrawn
- 2011-10-18 KR KR20137018896A patent/KR101493184B1/en not_active Expired - Fee Related
- 2011-10-18 CN CN201180061216.3A patent/CN103270509B/en not_active Expired - Fee Related
- 2011-10-18 WO PCT/IB2011/054612 patent/WO2012085693A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060184519A1 (en) * | 1997-02-27 | 2006-08-17 | Smartt Brian E | System and method of optimizing database queries in two or more dimensions |
US7397811B2 (en) * | 2003-04-23 | 2008-07-08 | Ericsson Ab | Method and apparatus for determining shared broadcast domains of network switches, ports and interfaces |
US20060218114A1 (en) * | 2005-03-25 | 2006-09-28 | Microsoft Corporation | System and method for location based search |
US20090027418A1 (en) * | 2007-07-24 | 2009-01-29 | Maru Nimit H | Map-based interfaces for storing and locating information about geographical areas |
Cited By (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9075822B2 (en) * | 2011-02-11 | 2015-07-07 | Here Global B.V. | Incremental testing of a navigation database |
US20120209818A1 (en) * | 2011-02-11 | 2012-08-16 | Jan Richter | Incremental testing of a navigation database |
US8937627B1 (en) * | 2012-03-28 | 2015-01-20 | Google Inc. | Seamless vector map tiles across multiple zoom levels |
US20140122418A1 (en) * | 2012-10-29 | 2014-05-01 | Anthony Leto | Systems and methods for determining data dependency for dynamic tiles |
US9128975B2 (en) * | 2012-10-29 | 2015-09-08 | Anthony Leto | Systems and methods for determining data dependency for dynamic tiles |
CN104572755A (en) * | 2013-10-24 | 2015-04-29 | 高德软件有限公司 | Method for creating data index, data searching method and related device |
US10297226B2 (en) | 2016-04-04 | 2019-05-21 | Yandex Europe Ag | Method and system of downloading image tiles onto a client device |
RU2632150C1 (en) * | 2016-04-04 | 2017-10-02 | Общество С Ограниченной Ответственностью "Яндекс" | Method and system of downloading the image to the customer's device |
US9934757B2 (en) | 2016-04-04 | 2018-04-03 | Yandex Europe Ag | Method and system of downloading image tiles onto a client device |
US20210374858A1 (en) * | 2016-09-15 | 2021-12-02 | Simpsx Technologies Llc | Transportation and Freight Capacity Units |
US11740777B2 (en) * | 2016-09-15 | 2023-08-29 | Circlesx Llc | Multi-dimension information service helmet method and system |
US12154183B2 (en) | 2016-09-15 | 2024-11-26 | Circlesx Llc | System and method for a tutoring exchange for tutoring units |
US11880883B2 (en) | 2016-09-15 | 2024-01-23 | Circlesx Llc | Systems and methods for geolocation portfolio exchanges |
US20220004308A1 (en) * | 2016-09-15 | 2022-01-06 | Simpsx Technologies Llc | Multi-Dimension Information Service Helmet Method and System |
US12152894B2 (en) | 2016-09-15 | 2024-11-26 | Circlesx Llc | Multi-dimension classification object matrices to estimate multi-dimensional representations with multi function device |
US12141885B2 (en) | 2016-09-15 | 2024-11-12 | Circlesx Llc | Parking community objects with price-time priority queues for transformed parking units |
US12165223B2 (en) | 2016-09-15 | 2024-12-10 | Circlesx Llc | Renewable energy community objects with price-time priority queues for transformed renewable energy units |
US11790382B2 (en) | 2016-09-15 | 2023-10-17 | Circlesx Llc | Method to transmit geolocation exchange based markets |
US12106365B2 (en) | 2016-09-15 | 2024-10-01 | Circlesx Llc | Web browser and operating system portal and search portal with price time priority queues |
US11823090B2 (en) | 2016-09-15 | 2023-11-21 | Circlesx Llc | Transportation and freight and parking and tolling and curb capacity unit IPO method and system |
US12260456B2 (en) | 2016-09-15 | 2025-03-25 | Circlesx Llc | Virtual reality, augmented reality, mixed reality data exchange social network with multi dimensional map tile porting |
US11836791B2 (en) | 2016-09-15 | 2023-12-05 | Circlesx Llc | Securitization of transportation units |
US12020532B2 (en) | 2016-09-15 | 2024-06-25 | Circlesx Llc | Implementations of a computerized business transaction exchange for various users |
US12001999B2 (en) | 2016-09-15 | 2024-06-04 | Circlesx Llc | Price based navigation |
US11829594B2 (en) | 2017-01-13 | 2023-11-28 | Circlesx Llc | Computer ball device for mixed reality, virtual reality, or augmented reality |
US12292920B2 (en) | 2017-03-03 | 2025-05-06 | Earthdaily Analytics Usa, Inc. | Geo-visual search |
US10248663B1 (en) * | 2017-03-03 | 2019-04-02 | Descartes Labs, Inc. | Geo-visual search |
US11354352B1 (en) | 2017-03-03 | 2022-06-07 | Descartes Labs, Inc. | Geo-visual search |
US12039585B2 (en) | 2017-04-10 | 2024-07-16 | Circlesx Llc | System and method for blood and saliva optimized food consumption and delivery |
US10210272B1 (en) * | 2017-11-27 | 2019-02-19 | The Florida International University Board Of Trustees | Window query monitoring for mobile devices and central database servers with a tree-like index |
US12124976B2 (en) | 2018-01-23 | 2024-10-22 | Circlesx Llc | Market exchange for transportation capacity in transportation vehicles |
US11907870B2 (en) | 2018-01-23 | 2024-02-20 | Circlesx Llc | Market exchange for transportation capacity in transportation vehicles |
US11810023B2 (en) | 2018-10-22 | 2023-11-07 | Circlesx Llc | System and method for a transportation or freight capacity exchange for one or more transportation or freight capacity units |
US11907869B2 (en) | 2018-10-22 | 2024-02-20 | Circlesx Llc | System and method for a transportation or freight capacity exchange for one or more transportation or freight capacity units |
US11861527B2 (en) | 2018-11-07 | 2024-01-02 | Circlesx Llc | Financial swap payment structure method and system on transportation capacity unit assets |
US20220358725A1 (en) * | 2019-06-13 | 2022-11-10 | Airbus Defence And Space Sas | Digital mission preparation system |
US11847749B2 (en) * | 2019-06-13 | 2023-12-19 | Airbus Defence And Space Sas | Digital mission preparation system |
CN111221933A (en) * | 2019-12-31 | 2020-06-02 | 武汉市珞珈俊德地信科技有限公司 | Three-dimensional tile construction method for fusion of massive map data and building information model |
RU2811359C1 (en) * | 2023-06-29 | 2024-01-11 | Общество с ограниченной ответственностью "Технологии Отраслевой Трансформации" | Method and system for forming partitioned data marts containing geodata and their use in process of data storage operation |
WO2025005820A1 (en) * | 2023-06-29 | 2025-01-02 | Общество с ограниченной ответственностью "Технологии Отраслевой Трансформации" | Method and system for creating and using partitioned geodata marts |
Also Published As
Publication number | Publication date |
---|---|
CN103270509A (en) | 2013-08-28 |
EP2656249A4 (en) | 2016-09-28 |
KR101493184B1 (en) | 2015-02-12 |
CN103270509B (en) | 2016-11-16 |
WO2012085693A1 (en) | 2012-06-28 |
US8352480B2 (en) | 2013-01-08 |
EP2656249A1 (en) | 2013-10-30 |
KR20130096765A (en) | 2013-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8352480B2 (en) | Methods, apparatuses and computer program products for converting a geographical database into a map tile database | |
KR102196401B1 (en) | Electronic map interface | |
CN103927933B (en) | A kind of magnanimity moves method and the device that target renders | |
US8954860B1 (en) | Method and apparatus for generating and displaying tourist maps | |
US9418466B2 (en) | Geospatial representation of data-less map areas | |
US10921136B2 (en) | Efficient processing for vector tile generation | |
US20120303263A1 (en) | Optimization of navigation tools using spatial sorting | |
EP2958033A1 (en) | Tile-based distribution of searchable geospatial data to client devices | |
US20150062114A1 (en) | Displaying textual information related to geolocated images | |
US20130159825A1 (en) | Search results with maps | |
CN103959279A (en) | Map tile data pre-fetching based on mobile device generated event analysis | |
CN107092623B (en) | Method and device for querying a point of interest | |
US20180112996A1 (en) | Point of Interest Selection Based on a User Request | |
CN108009205B (en) | Search result caching method based on position, search method, client and system | |
US10133751B2 (en) | Facilitating location-aware analysis | |
US9940743B1 (en) | Optimizing map generation by reducing redundant tiles | |
US11402232B2 (en) | Off-viewport location indications for digital mapping | |
Vert et al. | Integrating linked open data in mobile augmented reality applications-a case study | |
Kim et al. | Preparing and evaluating geospatial data models using X3D encodings for web 3D geovisualization services | |
US20140317516A1 (en) | Address formatting on a digital map | |
Yin et al. | Touch2Query enabled mobile devices: a case study using OpenStreetMap and iPhone | |
Li et al. | Bringing geospatial data closer to mobile users: A caching approach based on vector tiles for wireless multihop scenarios | |
US20160078074A1 (en) | Method of spatial storage of an object by means of a flexible hierarchical structure, and a non-transient storage medium | |
US20200005163A1 (en) | Inference-use knowledge generation apparatus, inference-use knowledge generation method, and computer-readable recording medium | |
Yan et al. | Design and implementation of a mobile gis for field data collection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: NOKIA CORPORATION, FINLAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:IWUCHUKWU, TOCHUKWU;REEL/FRAME:025530/0867 Effective date: 20101220 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
AS | Assignment |
Owner name: NOKIA TECHNOLOGIES OY, FINLAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NOKIA CORPORATION;REEL/FRAME:035457/0764 Effective date: 20150116 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: PIECE FUTURE PTE LTD, SINGAPORE Free format text: CHANGE OF NAME;ASSIGNOR:NOKIA TECHNOLOGIES OY;REEL/FRAME:048376/0576 Effective date: 20181124 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20210108 |