System and method for identification of geospatial objects for input coordinates
The system optimizes geospatial object identification by using a search space manager and tile mid-region bounds to efficiently determine relevant map tiles, addressing inefficiencies in traditional methods and enhancing scalability and speed.
Patent Information
- Application Number
- PCT/IN2025/050336
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-22
- Filing Date
- 2025-03-07
- Publication Date
- 2025-09-25
AI Technical Summary
Traditional methods for identifying the nearest geospatial object, such as buildings, in densely populated areas are inefficient due to high computational overhead, scalability issues, resource wastage, and increased response times, particularly on mobile devices.
A system and method that utilizes a search space manager to determine a set of map tiles corresponding to input coordinates, retrieving geospatial objects associated only with these tiles from a database, and employing a tile mid-region bound parameter to optimize the search process.
This approach significantly reduces search time and computational resources, providing a scalable solution for quickly and accurately identifying the nearest geospatial object, even in large urban areas.
Smart Images

Figure IN2025050336_25092025_PF_FP_ABST
Abstract
Description
SYSTEM AND METHOD FOR IDENTIFICATION OF GEOSPATIAL OBJECTS FOR INPUT COORDINATESRESERVATION OF RIGHTS
[0001] A portion of the disclosure of this patent document contains material, which is subject to intellectual property rights such as, but are not limited to, copyright, design, trademark, Integrated Circuit (IC) layout design, and / or trade dress protection, belonging to Jio Platforms Limited (JPL) or its affiliates (hereinafter referred as owner). The owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all rights whatsoever. All rights to such intellectual property are fully reserved by the owner.FIELD OF THE DISCLOSURE
[0002] The embodiments of the present disclosure generally relate communication systems. In particular, the present disclosure relates to a system and method for identification of geospatial objects for input coordinates.DEFINITION
[0003] As used in the present disclosure, the following terms are generally intended to have the meaning as set forth below, except to the extent that the context in which they are used to indicate otherwise.
[0004] The expression "geospatial object" used hereinafter in the specification may refer to any entity or feature that has a specific geographic location and can be represented on a map, such as buildings, landmarks, natural features, or points of interest.
[0005] The expression "input coordinates" used hereinafter in the specification may refer to a pair of numerical values representing the latitude and longitude of a specific geographic location on the Earth's surface.
[0006] The expression "search parameter" used hereinafter in the specification may refer to additional criteria or constraints used to refine or guide the geospatial object search process, such as zoom level or search radius.
[0007] The expression "map tiles" used hereinafter in the specification may refer to segmented, square portions of a map at a particular zoom level, forming a grid that covers a geographic area.
[0008] The expression "search space manager" used hereinafter in the specification may refer to a component or algorithm designed to narrow down the area within which the system searches for the nearest geospatial object.
[0009] The expression "object identification module" used hereinafter in the specification may refer to a component responsible for determining which geospatial object among a set of candidates is nearest to the input coordinates.
[0010] The expression "tile mid-region bound" used hereinafter in the specification may refer to a parameter that defines a central area within each map tile, used to optimize the search process by determining whether input coordinates fall within the central region of a tile or near its edges.
[0011] The expression "zoom level" used hereinafter in the specification may refer to a parameter that determines the level of detail and scale at which the map is viewed, and the search is conducted, affecting the size and number of map tiles used in the search process.
[0012] The expression "adjacent map tiles" used hereinafter in the specification may refer to the tiles that immediately surround a given tile in the map grid, which may be considered in the search process when input coordinates fall near tile edges.
[0013] The expression "centroid coordinate" used hereinafter in the specification may refer to the geometric center of a geospatial object, used as a reference point for associating the object with a specific map tile.
[0014] The expression "tagging" used hereinafter in the specification may refer to the process of associating each geospatial object with a corresponding map tile identifier in advance, to optimize retrieval during search operations.
[0015] The expression "row key" used hereinafter in the specification may refer to a unique identifier used in the database to index and retrieve geospatial objects, typically composed of the Tile ID and zoom level.
[0016] The expression "pixel coordinate" used hereinafter in the specification may refer to the position of a point within a map tile, expressed in terms of x and y coordinates relative to the tile's dimensions.
[0017] The expression "search expansion" used hereinafter in the specification may refer to the process of extending the search to additional neighboring map tiles when no geospatial objects are found within initially searched tiles.
[0018] These definitions are in addition to those expressed in the art.BACKGROUND OF THE DISCLOSURE
[0019] The following description of related art is intended to provide background information pertaining to the field of the disclosure. This section may include certain aspects of the art that may be related to various features of the present disclosure. However, it should be appreciated that this section be used only to enhance the understanding of the reader with respect to the present disclosure, and not as admissions of prior art.
[0020] In the rapidly evolving field of geospatial technology, digital representations of physical environments have become increasingly important for various applications, including urban planning, navigation, and location-based services. Building polygons are commonly used to create digital twins of densely populated areas, where the coordinates of building vertices are captured in either geographical or projected coordinate systems. These digital representations provide a visual and analytical framework for numerous geospatial applications.
[0021] However, as urban areas continue to grow and become more complex, the density of buildings within a given area has increased significantly. This presents a challenge when there is a need to identify the nearest building or geospatial object for a given set of input coordinates. The sheer volume of buildings, even in a relatively small geographic area, makes traditional search methods inefficient and time-consuming.
[0022] Currently, the predominant approach for finding the nearest building involves a full distance-based search across all buildings in the area. This method calculates the distance between the input coordinates and every building in the dataset, then selects the one with the shortest distance. While straightforward, this approach becomes increasingly problematic as the number of buildings in the search area grows. The limitations of the full distance-based search method include: a. High computational overhead: As the number of buildings increases, the time and processing power required to perform distance calculations for each building becomes substantial. b. Scalability issues: The method does not scale well for large urban areas or applications requiring real-time responses. c. Inefficient use of resources: Many distance calculations are performed for buildings that are clearly too far from the input coordinates to be relevant. d. Increased response time: Users experience longer wait times for results, which can be particularly problematic for real-time applications like navigation or emergency services. e. Limited practicality for mobile devices: The high computational requirements make this approach less suitable for mobile devices with limited processing power and battery life.
[0023] These limitations highlight the need for a more efficient and scalable solution to identify the nearest geospatial object for given input coordinates. The current approach becomes increasingly unsuitable as urban density grows and the demand for quick, accurate geospatial information increases across various industries and applications.
[0024] Conventional systems and methods face difficulty in identification of the nearest geospatial object for input coordinates. There is, therefore, a need inthe art to provide a method and a system that can overcome the shortcomings of the existing prior arts.SUMMARY OF THE DISCLOSURE
[0025] In an exemplary embodiment, a system for identification of a nearest geospatial object for input coordinates is described. The system comprises a memory and one or more processors configured to execute a set of instructions stored in the memory. The system comprises an input module, a search space manager, an object identification module and a user interface. The input module is configured to receive a set of inputs comprising the input coordinates, wherein the input coordinates comprise latitude and longitude values of a geographic location, and at least one search parameter. The search space manager is configured to a set of map tiles corresponding to the input coordinates. The search space manager is further configured to retrieve a set of geospatial objects associated with the determined set of map tiles from a database. The object identification module is configured to identify the nearest geospatial object from the retrieved set of geospatial objects. Finally, the system further comprises a user interface configured to display the identified nearest geospatial object.
[0026] In some embodiments, the at least one search parameter comprises a zoom level and a tile mid-region bound parameter. The zoom level determines a size and a number of map tiles used for identification of the nearest geospatial object. The tile mid-region bound parameter defines a central region within each map tile of the set of map tiles.
[0027] In some embodiments, the search space manager is configured to evaluate whether the input coordinates fall inside or outside a tile mid-region bound of a determined map tile.
[0028] In some embodiments, the search space manager is configured to retrieve the set of geospatial objects associated with only the determined map tile when the input coordinates fall inside the tile mid-region bound.
[0029] In some embodiments, the search space manager is configured to determine a set of adjacent map tiles when the input coordinates fall outside the tile mid-region bound. The search space manager is configured to retrieve the set of geospatial objects associated with the determined map tile and the determined set of adjacent map tiles.
[0030] In some embodiments, the search space manager is configured to determine a position of the input coordinates within the determined map tile. The position comprises one of Top Left, Top Right, Bottom Left, or Bottom Right when the input coordinates fall outside the tile mid-region bound.
[0031] In some embodiments, the set of adjacent map tiles is identified based on the determined position of the input coordinates within the determined map tile.
[0032] In some embodiments, the search space manager is configured to extend a search to a set of additional neighbouring map tiles when no geospatial objects are found within initially searched map tiles.
[0033] In some embodiments, the set of geospatial objects comprises at least one of: buildings, telecommunication towers, base stations, cell sites, network equipment facilities, network nodes, antenna installations, transmission towers, switching centers, and telecommunication infrastructure components.
[0034] In some embodiments, a data preparation module is configured to tag each geospatial object with a corresponding map tile identifier and a zoom levelparameter, wherein the zoom level parameter determines the granularity of the map tile identifier associated with the geospatial object.
[0035] In some embodiments, the set of geospatial objects is retrieved from the database indexed by map tile identifiers.
[0036] In another exemplary embodiment, a method for identification of a nearest geospatial object for input coordinates is described. The method comprises receiving, by an input module, a set of inputs comprising the input coordinates, wherein the input coordinates comprise latitude and longitude values of a geographic location, and at least one search parameter. The method further includes determining, by a search space manager, a set of map tiles corresponding to the input coordinates. It also includes retrieving, by the search space manager, a set of geospatial objects associated with the determined set of map tiles from a database. The method then involves identifying, by an object identification module, the nearest geospatial object from the retrieved set of geospatial objects. Finally, it includes displaying the identified nearest geospatial object to a user interface.
[0037] In some embodiments, the at least one search parameter comprises a zoom level and a tile mid-region bound parameter. The zoom level determines a size and a number of map tiles used for identification of the nearest geospatial object. The tile mid-region bound parameter defines a central region within each map tile of the set of map tiles.
[0038] In some embodiments, the method further comprises evaluating, by the search space manager, whether the input coordinates fall inside or outside a tile mid-region bound of a determined map tile.
[0039] In some embodiments, the method further comprises retrieving, by the search space manager, the set of geospatial objects associated with only thedetermined map tile when the input coordinates fall inside the tile mid-region bound.
[0040] In some embodiments, the method further comprises determining, by the search space manager, a set of adjacent map tiles when the input coordinates fall outside the tile mid-region bound. It also includes retrieving, by the search space manager, the set of geospatial objects associated with the determined map tile and the determined set of adjacent map tiles.
[0041] In some embodiments, the method further comprises determining, by the search space manager, a position of the input coordinates within the determined map tile. The position comprises one of Top Left, Top Right, Bottom Left, or Bottom Right when the input coordinates fall outside the tile mid-region bound.
[0042] In some embodiments, the set of adjacent map tiles is identified based on the determined position of the input coordinates within the determined map tile.
[0043] In some embodiments, the method further comprises extending, by the search space manager, a search to a set of additional neighbouring map tiles when no geospatial objects are found within initially searched map tiles.
[0044] In some embodiments, the set of geospatial objects comprises at least one of: buildings, telecommunication towers, base stations, cell sites, network equipment facilities, network nodes, antenna installations, transmission towers, switching centers, and telecommunication infrastructure components.
[0045] In some embodiments, the method further comprises tagging, by a data preparation module, each geospatial object with a corresponding map tileidentifier and a zoom level parameter, wherein the zoom level parameter determines the granularity of the map tile identifier associated with the geospatial object.
[0046] In some embodiments, the set of geospatial objects is retrieved from the database indexed by map tile identifiers.
[0047] In yet another exemplary embodiment, a non-transitory computer- readable medium storing instructions for identification of a nearest geospatial object for input coordinates is described. When executed by one or more processors of a system, the instructions cause the one or more processors to perform operations. These operations comprise receiving, by an input module, a set of inputs comprising the input coordinates, wherein the input coordinates comprise latitude and longitude values of a geographic location, and at least one search parameter. The operations further include determining, by a search space manager, a set of map tiles corresponding to the input coordinates. They also include retrieving, by the search space manager, a set of geospatial objects associated with the determined set of map tiles from a database. The operations then involve identifying, by an object identification module, the nearest geospatial object from the retrieved set of geospatial objects. Finally, they include displaying the identified nearest geospatial object to a user interface.
[0048] In a further exemplary embodiment, a user equipment communicatively coupled to a system for identification of a nearest geospatial object for input coordinates via a network is described. The system comprises a memory and one or more processors configured to execute a set of instructions stored in the memory to perform the method for identification of a nearest geospatial object for input coordinates. This method includes receiving, by an input module, a set of inputs comprising the input coordinates, wherein the input coordinates comprise latitude and longitude values of a geographic location, and at least one search parameter. It further includes determining, by a search space manager, a set of map tiles corresponding to the input coordinates. The method alsoinvolves retrieving, by the search space manager, a set of geospatial objects associated with the determined set of map tiles from a database. It then includes identifying, by an object identification module, the nearest geospatial object from the retrieved set of geospatial objects. Finally, the method involves displaying the identified nearest geospatial object to a user interface.
[0049] The foregoing general description of the illustrative embodiments and the following detailed description thereof are merely exemplary aspects of the teachings of this disclosure and are not restrictive.OBJECTS OF THE DISCLOSURE
[0050] Some of the objects of the present disclosure, which at least one embodiment herein satisfies are as listed herein below.
[0051] An object of the present disclosure is to provide a system and a method for efficient identification of a nearest geospatial object for input coordinates.
[0052] An object of the present disclosure is to determine a set of map tiles corresponding to input coordinates, thereby dividing the entire geospatial object dataset based on map tiles.
[0053] An object of the present disclosure is to retrieve a set of geospatial objects associated with the determined set of map tiles from a database, thus reducing the search space for identifying the nearest geospatial object.
[0054] An object of the present disclosure is to identify the nearest geospatial object from the retrieved set of geospatial objects, thereby eliminating the need for a full search across all geospatial objects in the database.
[0055] An object of the present disclosure is to provide a search space manager that efficiently narrows down the area of search based on input coordinates and map tiles.
[0056] An object of the present disclosure is to implement a tile mid-region bound parameter that defines a central region within each map tile, allowing for more precise search space reduction.
[0057] An object of the present disclosure is to offer a scalable solution for identifying nearest geospatial objects that can handle large datasets efficiently.BRIEF DESCRIPTION OF DRAWINGS
[0058] The accompanying drawings, which are incorporated herein, and constitute a part of this disclosure, illustrate exemplary embodiments of the disclosed methods and systems in which like reference numerals refer to the same parts throughout the different drawings. Components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. Some drawings may indicate the components using block diagrams and may not represent the internal circuitry of each component. It will be appreciated by those skilled in the art that disclosure of such drawings includes the disclosure of electrical components, electronic components or circuitry commonly used to implement such components.
[0059] FIG. 1 illustrates an exemplary network architecture of a system, in accordance with embodiments of the present disclosure.
[0060] FIG. 2 illustrates an exemplary micro service-based architecture of the system, in accordance with embodiments of the present disclosure.
[0061] FIG. 3 illustrates an exemplary system architecture for facilitating identification of geospatial objects for input coordinates, in accordance with embodiments of the present disclosure.
[0062] FIG. 4A illustrates an exemplary architecture of input coordinates nearby or at center of underlying tile, in accordance with embodiments of the present disclosure.
[0063] FIG. 4B illustrates an exemplary architecture of input coordinates at offset from the center of tile, in accordance with embodiments of the present disclosure.
[0064] FIG. 4C illustrates an exemplary architecture of input coordinates at bottom right position of tile, in accordance with embodiments of the present disclosure.
[0065] FIG. 5 illustrates an exemplary flow diagram for identification of geospatial objects for input coordinates, in accordance with embodiments of the present disclosure.
[0066] FIG. 6 illustrates an exemplary flow diagram for updating geospatial objects (e.g., building polygon) with tile ID, in accordance with embodiments of the present disclosure.
[0067] FIG. 7 illustrates an exemplary flow diagram of a method, in accordance with embodiments of the present disclosure.
[0068] FIG. 8 illustrates an exemplary computer system in which or with which embodiments of the present disclosure may be implemented.
[0069] The foregoing shall be more apparent from the following more detailed description of the disclosure.LIST OF REFERENCE NUMERALS100 - Network architecture102 - System104- Network106 - Centralized server108-1, 108-2... 108-N - User equipment110-1, 110-2...110-N - Users202 - One or more processor(s)204- Memory206 - I / O interface(s)208 - Processing module(s)210- Database212- Input module214- Data preparation module216- Search space manager218- Object identification module220- Storage module222- Other module(s)302- User interface304-Search parameters306-Display400- Input coordinates positions on underlying tile500- Flow diagram 600-Block diagram 700-Method flowcharts 10 - External Storage Device 820 - Bus830 - Main Memory840 - Read Only Memory850 - Mass Storage Device860 - Communication Port870- ProcessorDETAILED DESCRIPTION OF THE DISCLOSURE
[0070] In the following description, for the purposes of explanation, various specific details are set forth in order to provide a thorough understanding of embodiments of the present disclosure. It will be apparent, however, that embodiments of the present disclosure may be practiced without these specific details. Several features described hereafter can each be used independently of one another or with any combination of other features. An individual feature may not address all of the problems discussed above or might address only some of the problems discussed above. Some of the problems discussed above might not be fully addressed by any of the features described herein.
[0071] The ensuing description provides exemplary embodiments only, and is not intended to limit the scope, applicability, or configuration of the disclosure. Rather, the ensuing description of the exemplary embodiments will provide those skilled in the art with an enabling description for implementing an exemplary embodiment. It should be understood that various changes may be made in thefunction and arrangement of elements without departing from the spirit and scope of the disclosure as set forth.
[0072] Specific details are given in the following description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits, systems, networks, processes, and other components may be shown as components in block diagram form in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.
[0073] Also, it is noted that individual embodiments may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed but could have additional steps not included in a figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination can correspond to a return of the function to the calling function or the main function.
[0074] The word “exemplary” and / or “demonstrative” is used herein to mean serving as an example, instance, or illustration. For the avoidance of doubt, the subject matter disclosed herein is not limited by such examples. In addition, any aspect or design described herein as “exemplary” and / or “demonstrative” is not necessarily to be construed as preferred or advantageous over other aspects or designs, nor is it meant to preclude equivalent exemplary structures and techniques known to those of ordinary skill in the art. Furthermore, to the extent that the terms “includes,” “has,” “contains,” and other similar words are used in either the detaileddescription or the claims, such terms are intended to be inclusive in a manner similar to the term “comprising” as an open transition word without precluding any additional or other elements.
[0075] Reference throughout this specification to “one embodiment” or “an embodiment” or “an instance” or “one instance” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. Thus, the appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
[0076] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and / or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof. As used herein, the term “and / or” includes any and all combinations of one or more of the associated listed items.
[0077] The aspects of the present disclosure are directed to a system and method for efficient identification of a nearest geospatial object for input coordinates. The invention introduces a novel approach that utilizes a search space manager to determine a set of map tiles corresponding to the input coordinates, thereby significantly reducing the search area. By retrieving geospatial objects associated only with the determined map tiles from a database, the system achieves faster and more efficient identification of the nearest object. This approachovercomes the limitations of full distance-based searches, particularly in densely populated areas with numerous geospatial objects, and provides a scalable solution for various applications requiring quick and accurate geospatial object identification.
[0078] The various embodiments throughout the disclosure will be explained in more detail with reference to FIGS. 1-8.
[0079] As illustrated in FIG. 1, one or more user equipment's (108-1, 108-2...108-N) may be connected to a system (102) for identification of a nearest geospatial object for input coordinates through a network (106). A person of ordinary skill in the art will understand that the one or more user equipment's (108- 1, 108-2...108-N) may be collectively referred as computing devices (108) and individually referred as a user equipment (108). One or more users (110-1, 110-2...110-N) may provide one or more requests to the system (102). A person of ordinary skill in the art will understand that the one or more users (110-1, 110-2. . . 110-N) may be collectively referred as users (110) and individually referred as a user (110). Further, the user equipment (UE) (108) may also be referred as a user equipment (UE) (108) or as UEs (108) throughout the disclosure.
[0080] In an embodiment, the user equipment (108) may include, but not be limited to, a mobile, a laptop, etc. Further, the user equipment (108) may include one or more in-built or externally coupled accessories including, but not limited to, a visual aid device such as a camera, audio aid, microphone, or keyboard. Furthermore, the user equipment (108) may include a mobile phone, smartphone, virtual reality (VR) devices, augmented reality (AR) devices, a laptop, a general- purpose computer, a desktop, a personal digital assistant, a tablet computer, and a mainframe computer. Additionally, input devices for receiving input from the user (110) such as a touchpad, touch-enabled screen, electronic pen, and the like may be used.
[0081] In an embodiment, the network (104) may include, by way of example but not limitation, at least a portion of one or more networks having one or more nodes that transmit, receive, forward, generate, buffer, store, route, switch, process, or a combination thereof, etc. one or more messages, packets, signals, waves, voltage or current levels, some combination thereof, or so forth. The network (104) may also include, by way of example but not limitation, one or more of a wireless network, a wired network, an internet, an intranet, a public network, a private network, a packet-switched network, a circuit-switched network, an ad hoc network, an infrastructure network, a 5G network, a cloud network, an edge network, or some combination thereof. Furthermore, the system (102) may be connected to a centralized server (106).
[0082] In an embodiment, the system (102) may continuously receive input coordinates and search parameters. The search space manager may then determine a set of map tiles corresponding to the input coordinates and retrieve associated geospatial objects from a database. The object identification module may identify the nearest geospatial object from the retrieved set. If updates are needed, the system may reconfigure the search and provide the identified nearest geospatial object to the user interface for display.
[0083] Although FIG. 1 shows exemplary components of the network architecture (100), in other embodiments, the network architecture (100) may include fewer components, different components, differently arranged components, or additional functional components than depicted in FIG. 1. Additionally, or alternatively, one or more components of the network architecture (100) may perform functions described as being performed by one or more other components of the network architecture (100).
[0084] FIG. 2 illustrates an example block diagram (200) of a proposed system (102) for identification of a nearest geospatial object for input coordinates, in accordance with an embodiment of the present disclosure.
[0085] Referring to FIG. 2, in an embodiment, the system (102) may include one or more processor(s) (202). The one or more processor(s) (202) may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, logic circuitries, and / or any devices that process data based on operational instructions. Among other capabilities, the one or more processor(s) (202) may be configured to fetch and execute computer-readable instructions stored in a memory (204) of the system (102). The memory (204) may be configured to store one or more computer- readable instructions or routines in a non-transitory computer readable storage medium, which may be fetched and executed to identify the nearest geospatial object for input coordinates. The memory (204) may comprise any non-transitory storage device including, for example, volatile memory such as random-access memory (RAM), or non-volatile memory such as erasable programmable read only memory (EPROM), flash memory, and the like.
[0086] In an embodiment, the system (102) may include an interface(s) (206). The interface(s) (206) may comprise a variety of interfaces, for example, interfaces for data input and output devices (I / O), storage devices, and the like. The interface(s) (206) may facilitate communication through the system (102). The interface(s) (206) may also provide a communication pathway for one or more components of the system (102). Examples of such components include, but are not limited to, processing module(s) (208), a database (210). Further, the processing module(s) (208) may include an input module (212), a data preparation module (214), a search space manager (216), an object identification module (218), and other module(s) (222). In an embodiment, the other module(s) (222) may include, but not limited to, a data preparation module, an output module, and a storage module.
[0087] The input module (212) may receive a set of inputs comprising input coordinates and search parameters. The search space manager (216) may determinea set of map tiles corresponding to the input coordinates and retrieve associated geospatial objects from the database. The object identification module (218) may identify the nearest geospatial object from the retrieved set of geospatial objects.
[0088] In an embodiment, the processing module(s) (208) may be implemented as a combination of hardware and programming (for example, programmable instructions) to implement one or more functionalities of the processing module(s) (208). In examples described herein, such combinations of hardware and programming may be implemented in several different ways. For example, the programming for the processing module(s) (208) may be processorexecutable instructions stored on a non-transitory machine-readable storage medium and the hardware for the processing module(s) (208) may comprise a processing resource (for example, one or more processors), to execute such instructions. In the present examples, the machine-readable storage medium may store instructions that, when executed by the processing resource, implement the processing module(s) (208). In such examples, the system may comprise the machine-readable storage medium storing the instructions and the processing resource to execute the instructions, or the machine-readable storage medium may be separate but accessible to the system and the processing resource. In other examples, the processing module(s) (208) may be implemented by electronic circuitry.
[0089] Although FIG. 2 shows exemplary components of the system (102), in other embodiments, the system (102) may include fewer components, different components, differently arranged components, or additional functional components than depicted in FIG. 2. Additionally, or alternatively, one or more components of the system (102) may perform functions described as being performed by one or more other components of the system (102).
[0090] The system (102) for identification of a nearest geospatial object for input coordinates may comprise a memory (204) and one or more processors (202).The one or more processors (202) may be configured to execute a set of instructions stored in the memory (204) to perform various operations.
[0091] The system (102) may include an input module (212) that may receive a set of inputs comprising the input coordinates. These input coordinates may comprise latitude and longitude values of a geographic location. The input module (212) may also receive at least one search parameter. This search parameter may include a zoom level and a tile mid-region bound parameter. The zoom level may determine the size and number of map tiles used for identification of the nearest geospatial object. The tile mid-region bound parameter may define a central region within each map tile of the set of map tiles.
[0092] The system (102) may include an input module (212) that may receive a set of inputs comprising the input coordinates. These input coordinates may comprise latitude and longitude values of a geographic location. For example, the input coordinates might be 40.7128° N, 74.0060° W, which represent the approximate location of New York City. Another example could be 51.5074° N, 0.1278° W, corresponding to the location of London, United Kingdom. The input module (212) may accept these coordinates in various formats, including decimal degrees (as in the examples above), or degrees, minutes, and seconds (DMS) format (e.g., 40°42'45.6"N 74°00'21.6"W for New York City).
[0093] The input module (212) may also receive at least one search parameter. A search parameter may be defined as a criterion or set of criteria that refine or constrain the geospatial object search process. Examples of search parameters may include: a. Radius: A specified distance from the input coordinates within which to search for geospatial objects. For instance, "Find objects within 5 kilometers of the input coordinates. "b. Object type: A classification of the geospatial objects to be considered in the search. For example, "Search only for buildings" or "Consider only parks and recreational areas." c. Temporal constraints: Time-based limitations on the objects to be included. For instance, "Include only objects added to the database within the last year" or "Consider only buildings constructed after 2000." d. Attribute-based filters: Specific characteristics of the geospatial objects to be included or excluded. For example, "Search for buildings taller than 50 meters" or "Include only restaurants with a rating of 4 stars or higher. " e. Zoom level: A parameter that determines the level of detail and scale at which the map is viewed and the search is conducted. For instance, a zoom level of 15 might be suitable for searching within a city, while a zoom level of 10 might be more appropriate for a regional search.A search space manager (216) may determine a set of map tiles corresponding to the input coordinates. The search space manager (216) may then retrieve a set of geospatial objects associated with the determined set of map tiles from a database (210). The set of geospatial objects may be retrieved from the database (210) indexed by map tile identifiers. The set of geospatial objects may be retrieved from the database (210) indexed by map tile identifiers. In this context, indexing by map tile identifiers refers to a database organization method where geospatial objects are associated with and can be quickly accessed using the identifiers of the map tiles they occupy. A map tile identifier typically consists of three components: the zoom level, and the x and y coordinates of the tile. For example, a tile identifier might be "15 / 16372 / 11504", where 15 is the zoom level, 16372 is the x-coordinate, and 11504 is the y-coordinate of the tile. This indexing method may allow for efficient retrieval of geospatial objects within specific geographic areas. For instance, if the system needs to find all objects in central Paris at zoom level 15, it might query thedatabase for objects associated with tile identifiers like "15 / 16372 / 11504", "15 / 16373 / 11504", and their neighboring tiles. This approach may significantly reduce the search space and improve query performance compared to searching through all geospatial objects in the database. The search space manager (216) may retrieve a set of geospatial objects associated with the determined set of map tiles from a database (210). Geospatial objects in this context refer to any entities or features that have a specific geographic location and can be represented on a map. These objects may include, but are not limited to:a. Buildings: Such as residential houses, office buildings, schools, or hospitalsb. Telecommunication Infrastructure: Including telecommunication towers, base stations, cell sites, network nodes, antenna installations, transmission towers, switching centers, and network equipment facilities. c. Points of Interest (POIs): Including restaurants, museums, parks, or historical landmarks. d. Transportation Infrastructure: Like roads, railways, airports, or bus stops. e. Natural Features: Such as lakes, rivers, mountains, or forests. f. Administrative Boundaries: Including city limits, postal codes, or district boundaries. g. Network Coverage Areas: Including cellular coverage zones, signal strength regions, and service availability boundaries. h. Telecommunication Service Points: Such as fiber optic terminals, distribution points, and network access points.
[0094] In one embodiment, the retrieval process may involve the following steps: a. Database Query Formation: The search space manager (216) may construct a database query using the identifiers of the determined map tiles. For example, if the system determined that tiles (8399, 5741) and its eight surrounding tiles are relevant, it might form a query like: "SELECT * FROM geospatial_objects WHERE tile_idIN (8398, 5740), (8399, 5740), (8400, 5740), (8398, 5741), (8399, 5741), (8400, 5741), (8398, 5742), (8399, 5742), (8400, 5742)" b. Query Execution: The formed query is then executed against the database (210). The database (210) may use spatial indexing techniques to efficiently retrieve the relevant objects. c. Object Filtering: If additional search parameters were specified, the search space manager (216) may apply these filters to the retrieved objects. For instance, if the search was limited to buildings taller than 50 meters, this filter would be applied at this stage. d. Object Compilation: The search space manager (216) may compile the filtered results into a set of geospatial objects for further processing.
[0095] Examples of retrieved geospatial objects might include: a. For a search in central Paris: b. The Eiffel Tower (building / landmark) c. The Eouvre Museum (building / POI) d. The Seine River (natural feature) e. The Champs-Elysees (road) f. The 8th arrondissement boundary (administrative boundary)
[0096] This retrieval process allows the system to efficiently gather all potentially relevant geospatial objects within the area of interest, as defined by the input coordinates and the determined map tiles, setting the stage for the subsequent identification of the nearest object.
[0097] The search space manager (216) may perform additional operations. It may evaluate whether the input coordinates fall inside or outside a tile mid-region bound of a determined map tile. If the input coordinates fall inside the tile midregion bound, the search space manager (216) may retrieve the set of geospatial objects associated with only the determined map tile. If the input coordinates falloutside the tile mid-region bound, the search space manager (216) may identify a set of adjacent map tiles and retrieve the set of geospatial objects associated with both the determined map tile and the identified set of adjacent map tiles.
[0098] The search space manager (216) may also determine the position of the input coordinates within the determined map tile. This position may comprise one of Top Left, Top Right, Bottom Left, or Bottom Right when the input coordinates fall outside the tile mid-region bound. The set of adjacent map tiles may be identified based on this determined position.
[0099] The system (102) may include a search space manager (216) that may determine a set of map tiles corresponding to the input coordinates. This determination process may involve several steps: a. Coordinate Normalization: The search space manager (216) may first normalize the input coordinates to ensure they are in a consistent format. For example, if the input coordinates are in degrees, minutes, and seconds (DMS), they may be converted to decimal degrees. b. Projection Conversion: The normalized coordinates may then be converted from their geographic coordinate system (latitude and longitude) to a projected coordinate system that matches the map tile system being used. This step may involve using a specific map projection, such as Web Mercator, which is commonly used in web mapping applications. c. Zoom Level Application: The search space manager (216) may apply the specified zoom level to determine the appropriate tile size and numbering scheme. At higher zoom levels, each tile represents a smaller geographic area, resulting in more tiles for the same region. d. Tile Coordinate Calculation: Using the projected coordinates and the zoom level, the search space manager (216) may calculate the specific x and y coordinates of the tile that contains the inputlocation. This calculation typically involves mathematical formulas that translate the projected coordinates into tile numbers. e. Neighboring Tile Identification: Depending on the search parameters and the position of the input coordinates within the calculated tile, the search space manager (216) may also identify neighboring tiles. This step ensures that objects near the edges of tiles are not overlooked. f. Tile Set Compilation: Finally, the search space manager (216) may compile the set of relevant map tiles, which includes the primary tile containing the input coordinates and potentially some or all of its neighboring tiles. g. For example, if the input coordinates correspond to a location in central Paris at zoom level 14, the search space manager (216) might determine that the primary tile is (8399, 5741), and also include the eight surrounding tiles in the set: (8398, 5740), (8399, 5740), (8400, 5740), (8398, 5741), (8400, 5741), (8398, 5742), (8399, 5742), and (8400, 5742).
[0100] This process allows the system to focus the subsequent search operations on a specific, limited set of map tiles, thereby significantly reducing the search space and improving efficiency.
[0101] In cases where no geospatial objects are found within initially searched map tiles, the search space manager (216) may extend the search to a set of additional neighboring map tiles.
[0102] An object identification module (218) may identify the nearest geospatial object from the retrieved set of geospatial objects. The set of geospatial objects may comprise buildings.
[0103] The system (102) may include a user interface that displays the identified nearest geospatial object.
[0104] A data preparation module (214) may tag each geospatial object with a corresponding map tile identifier.
[0105] The system (102) may include a data preparation module (214) that may tag each geospatial object with a corresponding map tile identifier. This tagging process is a crucial step in optimizing the system's performance for geospatial searches. The process may involve the following steps: a. Geospatial Object Analysis: The data preparation module (214) may analyze each geospatial object in the database. This analysis may include examining the object's geographic coordinates, shape, and size. b. Coordinate Projection: The geographic coordinates of the object (typically in latitude and longitude) may be projected into the same coordinate system used by the map tiles, often the Web Mercator projection. c. Zoom Level Iteration: The module may iterate through relevant zoom levels, typically from a minimum zoom level (e.g., 10) to a maximum zoom level (e.g., 20). d. Tile Identification: For each zoom level, the module may determine which tile(s) the object intersects with. This is done by converting the projected coordinates to tile coordinates at the current zoom level. e. Tile ID Generation: For each identified tile, the module may generate a tile identifier. This identifier typically includes the zoom level and the x and y coordinates of the tile. f. Object Tagging: The module may then tag the geospatial object with the generated tile identifier(s). This tagging might involve addingthe tile IDs to the object's metadata or creating separate database entries linking objects to tiles.
[0106] Example: Let's consider a geospatial object representing the Eiffel Tower in Paris, France: a. The Eiffel Tower's coordinates are approximately 48.8584° N, 2.2945° E. b. The data preparation module projects these coordinates to the Web Mercator system. c. The module iterates through zoom levels 10 to 20. d. At zoom level 15, the module determines that the Eiffel Tower falls within the tile with coordinates (16372, 11504). e. The module generates the tile identifier "15 / 16372 / 11504" (format: zoom / x / y). f. The Eiffel Tower object is tagged with this tile identifier in the database.The process might result in database entries like: g. Object ID: ET001 h. Name: Eiffel Tower i. Latitude: 48.8584 j. Longitude: 2.2945 k. Tile IDs: ["15 / 16372 / 11504", "16 / 32744 / 23008","17 / 65488 / 46016", ...]
[0107] This tagging process may be repeated for all geospatial objects in the database. By tagging objects with their corresponding tile identifiers at various zoom levels and storing these associations in an HBase database, the system enables efficient object retrieval and search operations. The HBase database uses a composite row key structure combining the tile ID and zoom level, which facilitates rapid access to geospatial objects during search operations.
[0108] The database organization supports key invention steps as follows: a. Initial Tagging and Storage: Each geospatial object is tagged with tile identifiers at appropriate zoom levels. These associations are stored in the HBase database with row keys structured as <TileID_ZoomLevel>, enabling efficient indexing and retrieval. b. Search Space Management: When processing input coordinates, the system uses the HBase database's row key structure to quickly identify and retrieve only the relevant objects from the specific tiles of interest, eliminating the need to scan the entire dataset. c. Adjacent Tile Handling: The database structure allows efficient retrieval of objects from adjacent tiles when needed, by performing targeted queries using the neighboring tile IDs at the same zoom level.
[0109] This database-centric approach significantly enhances the efficiency of the search process by eliminating the need for real-time spatial calculations and enabling direct access to relevant objects, especially when dealing with large numbers of geospatial objects.
[0110] Finally, a storage module (220) may store the identified nearest geospatial object in the memory (204).
[0111] The input module (212) may receive input coordinates representing latitude and longitude values of a specific geographic location. The input module (212) may accept coordinates in various formats, such as decimal degrees or degrees, minutes, and seconds (DMS). The input module (212) may perform necessary conversions to ensure compatibility across different geospatial standards. The input coordinates may serve as the starting point for the search process, providing a fixed reference for evaluating the proximity of geospatial objects.
[0112] The input module (212) may also receive search parameters (304), which may include criteria to refine the search process. These parameters may rangefrom simple distance thresholds to complex conditions. For example, a search parameter may specify a radial distance from the input coordinates or include object type classifications, temporal constraints, or attribute-based filters.
[0113] The search space manager (216) may interact with the input module (212) to receive the input coordinates and search parameters. The search space manager (216) may then determine a set of map tiles corresponding to the input coordinates. This process may involve a mapping operation to associate the geographic coordinates with specific tiles at the appropriate zoom level. The system may utilize pre-computed lookup tables or efficient algorithms to quickly identify which tile contains the given coordinates. For example, at zoom level 15, the coordinates 48.8584° N, 2.2945° E (Paris) might map to the tile with identifier "15 / 16372 / 11504". The search space manager (216) may also consider the tiles adjacent to the one containing the input coordinates, as the nearest object might be just across a tile boundary. This approach allows for efficient narrowing of the search space without the need for complex real-time coordinate transformations. The system may use standardized tile mapping schemes, such as those employed by popular web mapping services, ensuring consistent tile identification across different geographic regions.
[0114] The search space manager (216) may then interact with the database (210) to retrieve geospatial objects associated with the determined map tiles. The database (210) may employ spatial indexing techniques, such as R-tree or quadtree structures, to efficiently handle location-based queries. This indexing may allow the database (210) to quickly narrow down the set of potentially relevant objects without scanning the entire dataset.
[0115] The object identification module (218) may receive the set of candidate geospatial objects from the search space manager (216). The object identification module (218) may then determine which object among the candidates is nearest to the input coordinates. This module may use various distancecalculation algorithms, potentially including Euclidean distance for small areas and geodesic calculations for larger distances. The object identification module (218) may also handle special cases, such as objects spanning multiple map tiles or situations where multiple objects are equidistant from the input coordinates.
[0116] In cases where multiple objects are equidistant, the object identification module (218) may employ a tie-breaking mechanism. This mechanism may consider secondary factors such as object size, relevance to search parameters, or orientation relative to the input coordinates. For example, if two buildings are equidistant, the module may choose the one with the larger floor area or the one facing the input coordinates.
[0117] The system (102) may include a user interface (302) to display the identified nearest geospatial object. This interface may incorporate mapping capabilities, allowing users to explore the geographic context surrounding the input coordinates and the identified nearest object. The user interface (302) may highlight spatial relationships between the input location and the nearest object, potentially including distance measurements or routing information.
[0118] The data preparation module (214) may pre-process geospatial data to optimize system performance. This module may tag geospatial objects with corresponding map tile identifiers by analyzing each object's geographic location and determining which map tiles it intersects at various zoom levels. This tagging may speed up the process of retrieving relevant objects during search operations.
[0119] The at least one search parameter may comprise a zoom level and a tile mid-region bound parameter. These parameters play crucial roles in determining how the system processes and searches for geospatial objects.
[0120] The zoom level may determine a size and a number of map tiles used for identification of the nearest geospatial object. In digital mapping, zoom levels typically range from 0 to 20 or higher, where: a. Zoom level 0 represents the entire world in a single 256x256 pixel tile. b. Each subsequent zoom level doubles the number of tiles in both dimensions.For example: a. At zoom level 0, the whole world is represented by one tile. c. At zoom level 1, the world is divided into 4 tiles (2x2). d. At zoom level 2, there are 16 tiles (4x4). e. At zoom level 10, there are approximately 1 million tiles covering the Earth.The choice of zoom level affects the search process as follows: f. Lower zoom levels (e.g., 5-10) might be used for searches covering large areas, like finding the nearest airport in a country. At zoom level 5, each tile covers approximately 1,487 km x 1,487 km at the equator. g. Higher zoom levels (e.g., 15-20) might be used for more precise searches in smaller areas, like finding the nearest coffee shop in a city neighborhood. At zoom level 15, each tile covers approximately 1.22 km x 1.22 km at the equator.
[0121] For instance, if searching for the nearest restaurant in Manhattan, New York, a zoom level of 15 or 16 might be appropriate to capture the dense urban environment without processing an excessive number of tiles.
[0122] The tile mid-region bound parameter may define a central region within each map tile of the set of map tiles. This parameter helps optimize the search process by determining whether the input coordinates fall within the central region of a tile or near its edges.
[0123] The tile mid-region bound might be defined as a percentage or as specific pixel coordinates within the tile. For example: a. Percentage-based: The mid-region might be defined as the central 50% of the tile. In a 256x256 pixel tile, this would be the area from pixel coordinates (64, 64) to (192, 192). b. Coordinate-based: The mid-region might be explicitly defined, such as: TileMidRegionBound = [(64, 64), (192, 64), (192, 192), (64, 192)]This parameter affects the search process as follows: c. If the input coordinates fall within the mid-region of a tile, the system may initially search only within that tile, improving efficiency. d. If the input coordinates fall outside the mid-region (i.e., near the tile's edges), the system may expand its search to include adjacent tiles, ensuring accuracy in cases where the nearest object might be just across a tile boundary.
[0124] For example, if searching for the nearest coffee shop and the input coordinates fall near the edge of a tile, the system would automatically include adjacent tiles in its search to ensure it doesn't miss a coffee shop that might be just across the tile boundary and actually nearer than any within the original tile.
[0125] By using these parameters, the system can balance between search precision and computational efficiency, adapting to different geographic contexts and search requirements.
[0126] The storage module (220) may manage data storage and retrieval. This module may implement caching mechanisms to store frequently requested results or intermediate computational products. The storage module (220) may usevarious caching strategies, such as spatial caching for specific geographic areas or temporal caching prioritizing recent search results.
[0127] Through these interconnected components, the system (102) may provide an efficient method for identifying the nearest geospatial object to given input coordinates. The system's design may allow it to handle diverse types of geospatial objects and a wide range of geographic scenarios, from densely populated urban areas to sparse rural regions.
[0128] In another exemplary embodiment, the non-transitory computer- readable medium storing instructions for identification of a nearest geospatial object for input coordinates may be disclosed. When executed by one or more processors (202) of a system (102), these instructions orchestrate a series of operations that streamline the search for the nearest geospatial object. The process begins with the input module (212) receiving coordinates and search parameters, which are then used by the search space manager (216) to determine relevant map tiles and retrieve associated geospatial objects from a database (210). This approach significantly narrows the search space, enhancing efficiency. The object identification module (218) then pinpoints the nearest object from this reduced set, leveraging advanced spatial analysis techniques. Finally, the system displays the result on a user interface, providing a seamless experience for users seeking location-based information. This method represents a significant advancement in geospatial data processing, offering improved performance and accuracy in identifying nearest objects, which is particularly valuable in applications ranging from navigation systems to urban planning tools.
[0129] Referring to FIG. 3, the system architecture (300) for facilitating the identification of geospatial objects for input coordinates comprises a user interface (302), a search space manager (216), an input parameter (304), a database (210), a processor (202), and a display (306).
[0130] The interface (302) receives input from a user, specifically the input coordinates. These input coordinates typically consist of latitude and longitude values, which precisely define a location on the Earth's surface. The interface may take various forms, such as a graphical user interface on a mobile application or a web-based input form, designed to capture these geographic coordinates accurately.
[0131] The input coordinates relate directly to geospatial data, which encompasses information about locations on the Earth's surface. Geospatial data represents a wide array of real-world objects, events, and phenomena, each mapped to specific geographical areas identified by latitude and longitude coordinates. This data may include natural features like mountains and rivers, man-made structures like buildings and roads, or even abstract boundaries like postal codes or administrative regions.
[0132] The search space manager (216) plays a central role in optimizing the search process. It divides the entire geospatial dataset into manageable portions, effectively creating "buckets" of data. This division significantly improves search efficiency by allowing the system to focus on relevant subsets of data rather than the entire dataset.
[0133] The search space manager (216) operates based on two key input parameters: the Tile Mid Region bound and the zoom level. These parameters work together to define the size and characteristics of the data "buckets" used in the search process.
[0134] The Tile Mid Region bound parameter specifies the central region of each map tile. It consists of a list of pixel coordinates that define the extent of this mid-region within the tile. The parameter takes the form:T ileMidRegionB ound= [(T opLeft_X_Pixel_Position, T opLeft_Y_Pixel_Position), (TopRight_X_Pixel_Position,TopRight_Y_Pixel_Position),(BottomRight_X_Pixel_Position,BottomRight_Y_Pixel_Position), (BottomLeft_X_Pixel_Position, BottomLeft_Y_Pixel_Position)]
[0135] This definition allows the system to determine whether input coordinates fall within the central region of a tile or near its edges, which influences the search strategy.
[0136] The zoom level parameter determines the granularity of the map tiles used in the search process. At zoom level zero, a single tile represents the entire world. As the zoom level increases, each tile covers a smaller geographic area, resulting in a larger number of tiles to cover the same total area. This parameter significantly impacts the search process: a. A lower zoom level increases the area covered by each tile, potentially resulting in larger "buckets" of geospatial objects per tile. b. A higher zoom level decreases the area per tile, leading to more precise object location but requiring more tiles to cover the same area.
[0137] The system adjusts the zoom level based on the density of geospatial objects in the area. In areas with high object density (e.g., city centers with many buildings), a higher zoom level provides better precision. In areas with lower density, a lower zoom level may suffice and improve efficiency.
[0138] The search space manager (216) uses these parameters along with the geospatial data (which may include building data) to effectively reduce the search space. It divides the total geospatial dataset into smaller, more manageable parts based on the map tiles. Each geospatial object within the dataset is tagged with the ID of the map tile it belongs to, corresponding to the specified zoom level.
[0139] This reduced search space allows the search space manager (216) to efficiently identify the nearest geospatial object (e.g., the nearest building) to theinput coordinates. It searches within the relevant map tiles, significantly reducing the number of objects it needs to consider compared to a search of the entire dataset.
[0140] Finally, the display (306) presents the output from the search space manager (216) to the user. This output typically includes the identifier (ID) of the nearest geospatial object, such as the nearest building, along with any other relevant information about the object.
[0141] FIG. 4A, 4B, and 4C illustrate different scenarios for input coordinates in relation to map tiles, demonstrating how the system adapts its search strategy based on the position of the input coordinates within a tile. These figures showcase the system's intelligent approach to optimizing the search for the nearest geospatial object.
[0142] FIG. 4A depicts a scenario where the input coordinates are located near or at the center of an underlying tile 400. In this example, the input coordinates fall within the tile identified as (X, Y+l), specifically within the tile's mid-bound region. The tile mid-bound region represents a central area within the tile, defined by the Tile Mid Region Bound parameter.
[0143] When input coordinates fall within this central region, the system employs an optimized search strategy. It retrieves a list of geospatial objects (such as building polygons) associated only with the tile ID (X, Y+l). This approach significantly reduces the search space by focusing solely on objects within the current tile.
[0144] The system then identifies the nearest building polygon to the input coordinates from this filtered list of geospatial objects. This identification process may involve calculating distances between the input coordinates and each object in the filtered list, using either a full search method or an external logic algorithm optimized for spatial proximity calculations.
[0145] This scenario demonstrates the system's efficiency when dealing with input coordinates that fall squarely within a tile's central region. By limiting the search to a single tile, the system can quickly retrieve and process relevant geospatial objects, reducing computational overhead and improving response times.
[0146] FIG. 4B illustrates a more complex scenario where the input coordinates are offset from the center of tile 400. In this case, the input coordinates fall near the edge of tile ID (X, Y+l), outside its mid-bound region. This situation requires a more comprehensive search strategy, as the nearest geospatial object may actually reside in an adjacent tile.
[0147] When the system detects that input coordinates fall outside the tile mid-bound region, it expands its search to include adjacent tiles. The specific adjacent tiles considered depend on the position of the input coordinates within the original tile. In this example, the system generates adjacent tile IDs based on the position of the pixel coordinate within tile ID (X, Y+l).
[0148] The system then retrieves lists of geospatial objects from both the original tile (X, Y+l) and the relevant adjacent tiles, such as (X+l, Y+l) in this case. This expanded search ensures that the system considers all potentially relevant objects, even those that might be just across a tile boundary.
[0149] After retrieving the expanded list of geospatial objects, the system performs a check to determine if at least one relevant object (e.g., a building polygon) exists within this list. If found, the system proceeds to identify the nearest object based on the input coordinates, using distance calculations on this filtered list of objects.
[0150] In cases where no relevant objects are found in the initially considered tiles, the system further expands its search. It may consider additional adjacent tiles, repeating the process until at least one relevant geospatial object isidentified. This adaptive approach ensures comprehensive coverage while maintaining efficiency by expanding the search area only when necessary.
[0151] FIG. 4C presents a specific case of the offset scenario, where the input coordinates are positioned at the bottom right corner of tile ID (X, Y+l). This position necessitates consideration of multiple adjacent tiles to ensure accurate results.
[0152] In this scenario, the system fetches geospatial object data (such as building IDs) from four tiles: the original tile (X, Y+l), and the adjacent tiles (X+l, Y+l), (X, Y), and (X+l, Y). This comprehensive approach accounts for the possibility that the nearest object might be located in any of these surrounding tiles.
[0153] By considering this expanded set of tiles, the system creates a reduced but thorough search space. This strategy balances the need for comprehensive coverage with the goal of maintaining search efficiency, particularly in edge cases where input coordinates fall at the intersection of multiple tiles.
[0154] These three scenarios demonstrate the system's adaptive approach to searching for nearest geospatial objects. By intelligently adjusting its search strategy based on the position of input coordinates relative to tile boundaries and mid-regions, the system optimizes performance while ensuring accurate results across a wide range of input scenarios. This flexibility allows the system to handle diverse geographic contexts efficiently, from densely populated urban areas to sparse rural regions.
[0155] FIG. 5 illustrates an example flow diagram (500) for the identification of geospatial objects for input coordinates in accordance with an embodiment of the present disclosure. This flow diagram represents the step-by- step process implemented by the system (102).
[0156] At step (502), the system receives input coordinates for which the nearest geospatial object (e.g., building) ID is needed. The input module (212) receives a set of inputs comprising the input coordinates. The input coordinates typically comprise latitude and longitude values of a geographic location. Additionally, two crucial parameters are provided: TileMidRegionBound and zoom_level x. The TileMidRegionBound parameter defines the central region of each tile, while the zoom_level x parameter is used for map tile computation. These parameters align with the at least one search parameter.
[0157] Step (504) involves identifying or determining the Tile ID and pixel coordinate corresponding to the given input coordinate and zoom_level x. This step is part of the search space manager's (216) function to determine a set of map tiles corresponding to the input coordinates. The system calculates the InputCoordinate_T ilelD and InputCoordinate_PixelCoordinateWithinT ilelD , which are essential for subsequent steps in the process. The pixel coordinate differs from the input coordinate in that it represents the precise location within a specific map tile, rather than a global geographic position. While the input coordinate is typically expressed in latitude and longitude (e.g., 40.7128° N, 74.0060° W for New York City), the pixel coordinate is expressed as x and y values within the 256x256 pixel space of a single tile. For example, if the input coordinate falls in the upperleft quadrant of a tile, its pixel coordinate might be (64, 64). The Tile ID, on the other hand, identifies which specific tile contains the input coordinate at the given zoom level. Together, the Tile ID and pixel coordinate provide a more precise location reference within the tiled map system, allowing for efficient spatial queries and object retrieval in subsequent steps.
[0158] In step (506), the system obtains the position of the PixelCoordinateWithinTilelD within the TileID_InputCoordinate. This position can be categorized into five regions: 'Top Left Region', 'Top Right Region', 'Bottom Left Region', 'Bottom Right Region', or 'Center Position'. This step is crucial fordetermining how the search will proceed, especially if the input coordinates are near tile boundaries.
[0159] Step (508) involves determining whether the position of PixelCoordinateWithinTileID_InputCoordinate is in the center of TileID_InputCoordinate. This check is essential for optimizing the search process, as it influences whether the system needs to consider adjacent tiles.
[0160] If the position is in the center, as determined in step (510), the system proceeds to find the list of geospatial objects (e.g., building polygons) tagged to InputCoordinate_TileID. The search space manager (216) retrieves a set of geospatial objects associated with the determined set of map tiles from the database (210). The resulting list is filtered to include only the relevant geospatial objects for the current tile.
[0161] Step (512) involves determining if at least one geospatial object (e.g., building polygon) is found within the current tile. This step ensures that the system has valid data to process before proceeding to identify the nearest object.
[0162] If at least one geospatial object is found, step (514) determines the nearest geospatial object from the input coordinates. The object identification module (218) identifies the nearest geospatial object from the retrieved set of geospatial objects. The system uses either a full search or an external logic algorithm to calculate distances and identify the nearest object.
[0163] If the position of PixelCoordinateWithinTileID_InputCoordinate is not in the center of TileID_InputCoordinate, as determined in step (516), the system generates adjacent Tile IDs based on the position of PixelCoordinateWithinTileID_InputCoordinate. This step expands the search area to ensure all potentially relevant geospatial objects are considered.
[0164] Step (518) involves determining a list of geospatial objects from the geospatial object data for all adjacent generated tile IDs and the input Tile ID. This step corresponds to the expanded search capability of the search space manager (216) when dealing with coordinates near tile boundaries.
[0165] In step (520), the system checks whether at least one building polygon is found within the expanded search area. If found, the process returns to step (514) to determine the nearest object. If not found, the system further expands the search by passing all adjacent tile IDs as input and repeating steps (516), (518), and (520) until at least one relevant geospatial object is identified.
[0166] FIG. 6 illustrates an example flow diagram (600) for updating geospatial objects (e.g., building polygons) with tile IDs, in accordance with an embodiment of the present disclosure. This process is crucial for organizing and optimizing the geospatial data storage and retrieval system.
[0167] Step (602) involves tagging every geospatial object (e.g., building polygon) to its underlying tile at a specified zoom level (Zoom_Level x). This step is a key part of the data preparation process where the system tags each geospatial object with a corresponding map tile identifier.
[0168] The tagging process utilizes the centroid coordinate of each geospatial object. The centroid represents the geometric center of the object and serves as a single point of reference for associating the object with a specific map tile. This approach ensures that even complex polygons or objects that might span multiple tiles are consistently associated with a single tile for indexing purposes. For example, consider a large park that spans across multiple map tiles. The park's boundary might be a complex polygon that intersects with tiles A, B, C, and D. Instead of associating the park with all four tiles, which could lead to duplicate entries and increased complexity, the system calculates the centroid of the park. Let's say this centroid falls within tile B. The park is then primarily associated withtile B for indexing, even though parts of it extend into other tiles. This method provides a consistent way to index objects, especially useful for large or irregularly shaped features. However, to ensure the park can be found when searching in adjacent tiles, the system may also maintain secondary references to tiles A, C, and D. This balanced approach allows for efficient primary indexing while still maintaining findability across all relevant tiles.
[0169] The zoom level (Zoom_Level x) used in this process is a critical parameter that determines the granularity of the tile system. It determines a size and a number of map tiles used for identification of the nearest geospatial object. By tagging objects at a specific zoom level, the system creates a multi-scale index that can be used to efficiently retrieve objects at various levels of geographic detail.
[0170] Step (604) involves building the database, specifically mapping geospatial objects with their corresponding Tile IDs for the specified zoom level. This step is essential for creating the optimized data structure that enables efficient retrieval of geospatial objects during the search process.
[0171] The flow diagram notes that all geospatial objects (e.g., building polygons) are tagged with a Tile ID for the specified zoom level. This comprehensive tagging ensures that every object in the database can be quickly associated with its geographic location at the chosen scale of representation.
[0172] The description mentions the use of an HBase database for storing the building data. HBase is a distributed, scalable, big data store that is well-suited for handling large volumes of geospatial data. In this implementation, the Tile ID and zoom level are used as Row keys in the HBase database.
[0173] The process accommodates the addition of new geospatial objects to the database. For each new building or object added to the system, a new entry is created in the database with a new Row key. This approach ensures that the databaseremains up-to-date and that all geospatial objects, regardless of when they were added, are properly indexed for efficient retrieval.
[0174] This pre-processing and database structuring approach is crucial for the efficient operation of the search space manager (216). By organizing geospatial objects according to their tile associations at specific zoom levels, the system can quickly narrow down the search space when processing queries.
[0175] The flow diagram (600) illustrates process that enables the fast and efficient nearest object identification capabilities of the system. By tagging and intelligently indexing geospatial objects, the system creates a foundation for rapid spatial queries, allowing it to handle large volumes of geospatial data while maintaining quick response times for nearest object identification tasks.
[0176] FIG. 7 illustrates an exemplary flow diagram of a method (700) for identification of a nearest geospatial object for input coordinates, in accordance with embodiments of the present disclosure.
[0177] At step (702), the method (700) includes receiving, by an input module (212), a set of inputs comprising the input coordinates, wherein the input coordinates comprise latitude and longitude values of a geographic location, and at least one search parameter. This step initiates the process by capturing the essential input data required for the geospatial search. The input coordinates provide a precise location on Earth's surface from which to start the search. The search parameter may include additional criteria to refine the search process. In some embodiments, the at least one search parameter comprises a zoom level and a tile mid-region bound parameter. The zoom level determines the size and number of map tiles used for identification of the nearest geospatial object, effectively setting the granularity of the search. The tile mid-region bound parameter defines a central region within each map tile of the set of map tiles, which is crucial for optimizing the search process in subsequent steps.
[0178] At step (704), the method (700) includes determining, by a search space manager (216), a set of map tiles corresponding to the input coordinates. This step involves translating the input coordinates into a specific set of map tiles, effectively narrowing down the search area. The search space manager (216) uses the zoom level parameter to determine the appropriate size and number of map tiles to consider. This process is fundamental to the efficiency of the method, as it significantly reduces the volume of data that needs to be processed in subsequent steps.
[0179] At step (706), the method (700) includes retrieving, by the search space manager (216), a set of geospatial objects associated with the determined set of map tiles from a database (210). This step involves querying the database to fetch only the geospatial objects that are relevant to the search area defined by the map tiles identified in the previous step. The set of geospatial objects is retrieved from the database (210) indexed by map tile identifiers, which allows for efficient data retrieval. In some embodiments, the set of geospatial objects comprises buildings, though the method can be applied to various types of geospatial objects.
[0180] At step (708), the method (700) includes identifying, by an object identification module (218), the nearest geospatial object from the retrieved set of geospatial objects. This step involves analyzing the retrieved geospatial objects to determine which one is closest to the input coordinates. The object identification module (218) may employ various distance calculation algorithms to make this determination accurately and efficiently.
[0181] At step (710), the method (700) includes displaying the identified nearest geospatial object to a user interface. This final step presents the results of the search process to the user in a visual format, providing them with the information about the nearest geospatial object to their specified coordinates.
[0182] In some embodiments, the method further comprises evaluating, by the search space manager (216), whether the input coordinates fall inside or outside a tile mid-region bound of a determined map tile. This evaluation is crucial for optimizing the search process. If the input coordinates fall inside the tile mid-region bound, the method includes retrieving, by the search space manager (216), the set of geospatial objects associated with only the determined map tile. This focused approach significantly reduces the amount of data that needs to be processed.
[0183] However, if the input coordinates fall outside the tile mid-region bound, the method includes additional steps. It involves identifying, by the search space manager (216), a set of adjacent map tiles, and retrieving the set of geospatial objects associated with both the determined map tile and the identified set of adjacent map tiles. This expanded search ensures that the nearest object is not missed due to tile boundary issues.
[0184] In some implementations, the method further comprises determining, by the search space manager (216), a position of the input coordinates within the determined map tile. This position can be one of Top Left, Top Right, Bottom Left, or Bottom Right when the input coordinates fall outside the tile midregion bound. The set of adjacent map tiles is identified based on this determined position, allowing for a more targeted expansion of the search area.
[0185] In cases where no geospatial objects are found within the initially searched map tiles, the method includes an additional step. It involves extending, by the search space manager (216), a search to a set of additional neighboring map tiles. This adaptive approach ensures that the method can handle various scenarios, including sparsely populated areas or edge cases where the nearest object might be further away than initially anticipated.
[0186] To optimize the overall process, the method may include a processing step. This involves tagging, by a data preparation module (214), eachgeospatial object with a corresponding map tile identifier. This tagging significantly enhances the efficiency of object retrieval during the search process.
[0187] After identifying the nearest geospatial object, the method may include an additional step. This involves storing, by a storage module (220), the identified nearest geospatial object in the memory (204). This storage step can be useful for caching frequently requested results or for further processing of the identified object.
[0188] In another exemplary embodiment, a user equipment (108) communicatively coupled to a system (102) for identification of a nearest geospatial object for input coordinates via a network (104) is described. The user equipment (108) interacts with the system (102) to perform the method (700). This enables users to access the geospatial object identification functionality through various devices, enhancing the accessibility and usability of the system.
[0189] The present disclosure provides technical advancement related to geospatial object identification and location-based services. This advancement addresses the limitations of existing solutions by implementing an efficient method for identifying the nearest geospatial object to given input coordinates. The disclosure involves innovative use of map tiling, search space reduction, and adaptive search strategies, which offer significant improvements in search speed and accuracy. By implementing a tile-based approach with mid-region bounds and dynamic adjacent tile consideration, the disclosed invention enhances the efficiency of geospatial searches, resulting in faster response times and reduced computational overhead, particularly beneficial for large-scale geospatial databases and real-time applications.
[0190] FIG. 8 illustrates an example computer system (800) in which or with which the embodiments of the present disclosure may be implemented.
[0191] As shown in FIG. 8, the computer system (800) may include an external storage device (810), a bus (820), a main memory (830), a read-only memory (840), a mass storage device (850), a communication port(s) (860), and a processor (870). A person skilled in the art will appreciate that the computer system (800) may include more than one processor and communication ports. The processor (870) may include various modules associated with embodiments of the present disclosure. The communication port(s) (860) may be any of an RS-232 port for use with a modem-based dialup connection, a 10 / 100 Ethernet port, a Gigabit or 10 Gigabit port using copper or fiber, a serial port, a parallel port, or other existing or future ports. The communication ports(s) (860) may be chosen depending on a network, such as a Local Area Network (LAN), Wide Area Network (WAN), or any network to which the computer system (800) connects.
[0192] In an embodiment, the main memory (830) may be Random Access Memory (RAM), or any other dynamic storage device commonly known in the art. The read-only memory (840) may be any static storage device(s) e.g., but not limited to, a Programmable Read Only Memory (PROM) chip for storing static information e.g., start-up or basic input / output system (BIOS) instructions for the processor (870). The mass storage device (850) may be any current or future mass storage solution, which can be used to store information and / or instructions. Exemplary mass storage solutions include, but are not limited to, Parallel Advanced Technology Attachment (PATA) or Serial Advanced Technology Attachment (SATA) hard disk drives or solid-state drives (internal or external, e.g., having Universal Serial Bus (USB) and / or Firewire interfaces).
[0193] In an embodiment, the bus (820) may communicatively couple the processor(s) (870) with the other memory, storage, and communication blocks. The bus (820) may be, e.g. a Peripheral Component Interconnect PCI) / PCI Extended (PCLX) bus, Small Computer System Interface (SCSI), Universal Serial Bus (USB), or the like, for connecting expansion cards, drives, and other subsystems aswell as other buses, such a front side bus (FSB), which connects the processor (870) to the computer system (800).
[0194] In another embodiment, operator and administrative interfaces, e.g., a display, keyboard, and cursor control device may also be coupled to the bus (620) to support direct operator interaction with the computer system (600). Other operator and administrative interfaces can be provided through network connections connected through the communication port(s) (660). Components described above are meant only to exemplify various possibilities. In no way should the aforementioned exemplary computer system (600) limit the scope of the present disclosure.
[0195] The method and system of the present disclosure may be implemented in a number of ways. For example, the methods and systems of the present disclosure may be implemented by software, hardware, firmware, or any combination of software, hardware, and firmware. The above-described order for the steps of the method is for illustration only, and the steps of the method of the present disclosure are not limited to the order specifically described above unless specifically stated otherwise. Further, in some embodiments, the present disclosure may also be embodied as programs recorded in a recording medium, the programs including machine-readable instructions for implementing the methods according to the present disclosure. Thus, the present disclosure also covers a recording medium storing a program for executing the method according to the present disclosure.
[0196] While considerable emphasis has been placed herein on the preferred embodiments, it will be appreciated that many embodiments can be made and that many changes can be made in the preferred embodiments without departing from the principles of the disclosure. These and other changes in the preferred embodiments of the disclosure will be apparent to those skilled in the art from the disclosure herein, whereby it is to be distinctly understood that the foregoingdescriptive matter to be implemented merely as illustrative of the disclosure and not as limitation.ADVANTAGES OF THE PRESENT DISCLOSURE
[0197] The present disclosure offers a significant improvement in search efficiency by utilizing a tile-based approach, which reduces the search space and minimizes computational overhead when identifying the nearest geospatial object.
[0198] The present disclosure enhances scalability in geospatial object identification, allowing the system to handle large datasets and dense urban environments without compromising performance.
[0199] The present disclosure provides a flexible and adaptive search strategy that can efficiently handle various scenarios, from densely populated areas to sparse regions, by dynamically adjusting the search area based on the input coordinates' position within map tiles.
[0200] The present disclosure improves response times in location-based services by implementing an intelligent tagging system and optimized database indexing, enabling faster retrieval of relevant geospatial objects.
[0201] The present disclosure reduces the computational resources required for nearest object searches by employing a targeted approach that focuses on relevant map tiles and their immediate neighbors when necessary.
[0202] The present disclosure enhances the accuracy of nearest object identification by considering adjacent tiles when input coordinates fall near tile boundaries, ensuring that the true nearest object is not overlooked due to arbitrary divisions in the map tiling system.
[0203] The present disclosure offers a more robust solution for real-time applications by providing quick and accurate results across diverse geographic contexts, from urban centers to rural areas.
[0204] The present disclosure improves the user experience in locationbased applications by enabling faster and more precise identification of nearby points of interest, buildings, or other geospatial objects.
[0205] The present disclosure facilitates more efficient data management and storage for geospatial information by organizing objects according to map tiles, allowing for optimized data retrieval and updates.
Claims
We claim:
1. A system (102) for identification of a nearest geospatial object for input coordinates, comprising: an input module (212) configured to receive a set of inputs comprising the input coordinates, wherein the input coordinates comprise latitude and longitude values of a geographic location, and at least one search parameter; a search space manager (216) configured to determine a set of map tiles corresponding to the input coordinates and retrieve a set of geospatial objects associated with the determined set of map tiles from a database (210); an object identification module (218) configured to identify the nearest geospatial object from the retrieved set of geospatial objects; and a user interface (302) configured to display the identified nearest geospatial object.
2. The system (102) as claimed in claim 1, wherein the at least one search parameter comprises a zoom level and a tile mid-region bound parameter; wherein the zoom level determines a size and a number of map tiles used for identification of the nearest geospatial object, wherein the tile midregion bound parameter defines a central region within each map tile of the set of map tiles.
3. The system (102) as claimed in claim 2, wherein the search space manager (216), is configured to evaluate whether the input coordinates fall inside or outside a tile mid-region bound of a determined map tile.
4. The system (102) as claimed in claim 3, whereinthe search space manager (216) is configured to retrieve the set of geospatial objects associated with the determined map tile when the input coordinates fall inside the tile mid-region bound.
5. The system (102) as claimed in claim 3, wherein the search space manager (216) is configured to determine a set of adjacent map tiles when the input coordinates fall outside the tile midregion bound and retrieve the set of geospatial objects associated with the determined map tile and the determined set of adjacent map tiles.
6. The system (102) as claimed in claim 5, wherein the search space manager (216) is configured to determine a position of the input coordinates within the determined map tile, wherein the position comprises one of Top Left, Top Right, Bottom Left, or Bottom Right when the input coordinates fall outside the tile mid-region bound.
7. The system (102) as claimed in claim 6, wherein the set of adjacent map tiles is identified based on the determined position of the input coordinates within the determined map tile.
8. The system (102) as claimed in claim 1, further comprising: a data preparation module (214) configured to tag each geospatial object with a corresponding map tile identifier and a zoom level parameter, wherein the zoom level parameter determines granularity of the map tile identifier associated with the geospatial object.
9. The system (102) as claimed in claim 1, wherein the set of geospatial objects is retrieved from the database (210) indexed by map tile identifiers.
10. A method for identification of a nearest geospatial object for input coordinates, the method comprising: receiving (702), by an input module (212), a set of inputs comprising the input coordinates, wherein the input coordinates comprise latitude and longitude values of a geographic location, and at least one search parameter; determining (704), by a search space manager (216), a set of map tiles corresponding to the input coordinates; retrieving (706), by the search space manager (216), a set of geospatial objects associated with the determined set of map tiles from a database (210); identifying (708), by an object identification module (218), the nearest geospatial object from the retrieved set of geospatial objects; and displaying (710) the identified nearest geospatial object to a user interface.
11. The method as claimed in claim 10, wherein the at least one search parameter comprises a zoom level and a tile mid-region bound parameter; wherein the zoom level determines a size and a number of map tiles used for identification of the nearest geospatial object, wherein the tile midregion bound parameter defines a central region within each map tile of the set of map tiles.
12. The method as claimed in claim 11, further comprising: evaluating, by the search space manager (216), whether the input coordinates fall inside or outside a tile mid-region bound of a determined map tile.
13. The method as claimed in claim 12, further comprising:retrieving, by the search space manager (216), the set of geospatial objects associated with the determined map tile when the input coordinates fall inside the tile mid-region bound.
14. The method as claimed in claim 12, further comprising: determining, by the search space manager (216), a set of adjacent map tiles when the input coordinates fall outside the tile mid-region bound; and retrieving, by the search space manager (216), the set of geospatial objects associated with the determined map tile and the determined set of adjacent map tiles.
15. The method as claimed in claim 14, further comprising: determining, by the search space manager (216), a position of the input coordinates within the determined map tile, wherein the position comprises one of Top Left, Top Right, Bottom Left, or Bottom Right when the input coordinates fall outside the tile mid-region bound.
16. The method as claimed in claim 15, wherein the set of adjacent map tiles is identified based on the determined position of the input coordinates within the determined map tile.
17. The method as claimed in claim 10, further comprising: tagging, by a data preparation module (214), each geospatial object with a corresponding map tile identifier and a zoom level parameter, wherein the zoom level parameter determines granularity of the map tile identifier associated with the geospatial object.
18. The method as claimed in claim 10, wherein the set of geospatial objects is retrieved from the database (210) indexed by map tile identifiers.
19. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors (202) of a system (102) identification of a nearest geospatial object for input coordinates, cause the one or more processors (202) to perform operations comprising: receiving, by an input module (212), a set of inputs comprising the input coordinates, wherein the input coordinates comprise latitude and longitude values of a geographic location, and at least one search parameter; determining, by a search space manager (216), a set of map tiles corresponding to the input coordinates; retrieving, by the search space manager (216), a set of geospatial objects associated with the determined set of map tiles from a database (210); identifying, by an object identification module (218), the nearest geospatial object from the retrieved set of geospatial objects; and displaying the identified nearest geospatial object to a user interface.
20. A user equipment (108) communicatively coupled to a system (102) identification of a nearest geospatial object for input coordinates via a network (104), wherein the system (102) comprises: a memory (204); one or more processors (202) configured to execute a set of instructions stored in the memory (204) to perform the method (700) as claimed in claim 13.
Citation Information
Patent Citations
Map POI retrieval method based on geometric model
CN115033808A