User positioning method, device and product based on assisted global satellite navigation system
Patent Information
- Application Number
- CN202510234856.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-02-28
- Publication Date
- 2026-08-28
AI Technical Summary
然而,由于SUPL协议需要移动终端设备通过多次交互上传基站标识等数据以获取定位辅助信息,这不仅导致交互流程复杂,还存在数据安全性较低的问题
[0038]As will be described in detail below, a user positioning method based on an assisted global navigation satellite system (AGNSS) according to this disclosure involves: acquiring the user's terminal configuration information and connection requests; determining initial auxiliary data based on the terminal configuration information and obtaining the user's reference position based on the geographic area code in the connection request; the geographic area code being formed by converting three-dimensional coordinate information into one-dimensional character encoding; filtering the initial auxiliary data based on the user's reference position; encoding the filtered initial auxiliary data to obtain target auxiliary data; and transmitting the data via the Ntrip protocol; the user terminal performing positioning calculations based on the target auxiliary data to obtain the user positioning result. Therefore, the user positioning method based on an assisted global navigation satellite system provided by this disclosure simplifies the interaction process by employing encoding processing and the Ntrip protocol, and also improves data security and positioning efficiency through geographic area encoding.
Smart Images

Figure CN122652618A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of satellite positioning technology, and in particular to user positioning methods, devices and products based on assisted global satellite navigation systems. Background Technology
[0002] With the development of Global Navigation Satellite Systems (GNSS), GNSS has been widely used in transportation, public safety, intelligent driving, the Internet of Things and other fields, and the demand for positioning accuracy and response speed is constantly increasing.
[0003] In related technologies, AGNSS (Assisted Global Navigation Satellite System) technology is generally based on the SUPL (Secure User Plane Location) protocol to achieve positioning assistance. However, because the SUPL protocol requires mobile terminal devices to upload data such as base station identifiers through multiple interactions to obtain positioning assistance information, this not only leads to a complex interaction process but also poses a problem of low data security. Summary of the Invention
[0004] In view of this, this disclosure provides a user positioning method, device, and product based on an assisted global satellite navigation system to solve the problems existing in the related technologies.
[0005] One aspect of this disclosure provides a user positioning method based on an assisted global satellite navigation system, the method comprising:
[0006] Obtain the user's terminal configuration information and the connection requests they send;
[0007] Initial auxiliary data is determined based on the terminal configuration information, and the user's reference location is obtained based on the geographic region code in the connection request; the geographic region code is formed by converting three-dimensional coordinate information into one-dimensional character encoding.
[0008] The initial auxiliary data is filtered based on the user reference position, the filtered initial auxiliary data is encoded to obtain the target auxiliary data, and the data is transmitted via the Ntrip protocol.
[0009] The user terminal performs positioning calculations based on the target auxiliary data to obtain the user positioning result.
[0010] In one alternative approach, filtering the initial auxiliary data based on the user reference location includes:
[0011] Obtain satellite coordinates, and calculate the satellite-to-ground vector based on the user reference position and the satellite coordinates;
[0012] The satellite elevation angle is obtained based on the user reference position;
[0013] Visible satellites are selected based on the satellite elevation angle, and the initial auxiliary data corresponding to the visible satellites is obtained. The initial auxiliary data corresponding to the visible satellites is then determined as the selected initial auxiliary data.
[0014] In one alternative approach, the filtering of visible satellites based on the satellite elevation angle includes:
[0015] Obtain the preset cutoff elevation angle;
[0016] If the satellite elevation angle is greater than or equal to the cutoff elevation angle, the corresponding satellite is determined to be visible;
[0017] If the satellite elevation angle is less than the cutoff elevation angle, the corresponding satellite is determined to be invisible.
[0018] In one alternative approach, the encoding process for the filtered initial auxiliary data includes:
[0019] The initial auxiliary data after filtering is encoded based on the RTCM protocol; the RTCM protocol extends the message format used to encode ionospheric parameters, UTC time parameters and almanac data.
[0020] In an alternative approach, the method further includes:
[0021] The connection request is encoded based on the RTCM protocol; the RTCM protocol extends the message format for encoding user terminal configuration information and geographic area codes.
[0022] In one alternative approach, obtaining the user's reference location based on the geographic region code in the connection request includes:
[0023] Extract the user's geographic region code from the connection request;
[0024] Based on the geographic region code, the corresponding latitude, longitude and elevation information are obtained from the pre-built geographic region coding library;
[0025] The latitude, longitude, and elevation information are used as the user's reference location.
[0026] In an alternative approach, the method further includes:
[0027] Within the target geographic area, select multiple latitude and longitude points according to a preset step size;
[0028] Obtain the elevation information corresponding to the multiple latitude and longitude points respectively, and combine the latitude and longitude information and elevation information corresponding to the multiple latitude and longitude points to form three-dimensional coordinate information;
[0029] The geographic region coding library is constructed based on preset mapping rules and multiple three-dimensional coordinate information; the mapping rules represent the mapping relationship between three-dimensional coordinate information and geographic region codes.
[0030] Another aspect of this disclosure provides a user positioning system based on an assisted global satellite navigation system, comprising: a gateway and authentication module, an auxiliary data processing module, an auxiliary data broadcasting module, and a terminal;
[0031] The gateway and authentication module are used to obtain connection requests sent by user terminals and complete the authentication process based on the connection requests.
[0032] The auxiliary data processing module is used to determine initial auxiliary data based on the user's terminal configuration information and obtain the user's reference location based on the geographic area code in the connection request; the geographic area code is formed by converting three-dimensional coordinate information into one-dimensional character encoding; the initial auxiliary data is filtered based on the user's reference location to obtain filtered initial auxiliary data.
[0033] The auxiliary data broadcasting module is used to encode the filtered initial auxiliary data according to the RTCM protocol format to obtain the target auxiliary data, and transmit the target auxiliary data to the terminal through the Ntrip protocol.
[0034] The terminal is used to obtain the user's reference location based on the geographic area code in the connection request; the geographic area code is formed by converting three-dimensional coordinate information into one-dimensional character encoding; it is also used to perform positioning calculations based on the target auxiliary data to obtain the user's positioning result.
[0035] In another aspect of this disclosure, a computer device is provided, including a memory, a processor, and a computer program stored in the memory, the processor executing the computer program to implement the steps of the method described in the preceding aspect.
[0036] In another aspect of this disclosure, a computer-readable storage medium is provided having a computer program / instructions stored thereon that, when executed by a processor, implement the steps of the method described in the above aspect.
[0037] In another aspect of this disclosure, a computer program product is provided, including a computer program / instructions that, when executed by a processor, implement the steps of the methods described in the above aspects.
[0038] As will be described in detail below, a user positioning method based on an assisted global navigation satellite system (AGNSS) according to this disclosure involves: acquiring the user's terminal configuration information and connection requests; determining initial auxiliary data based on the terminal configuration information and obtaining the user's reference position based on the geographic area code in the connection request; the geographic area code being formed by converting three-dimensional coordinate information into one-dimensional character encoding; filtering the initial auxiliary data based on the user's reference position; encoding the filtered initial auxiliary data to obtain target auxiliary data; and transmitting the data via the Ntrip protocol; the user terminal performing positioning calculations based on the target auxiliary data to obtain the user positioning result. Therefore, the user positioning method based on an assisted global navigation satellite system provided by this disclosure simplifies the interaction process by employing encoding processing and the Ntrip protocol, and also improves data security and positioning efficiency through geographic area encoding. Attached Figure Description
[0039] The above and other objects, features, and advantages of this disclosure will become more apparent from the more detailed description of the embodiments thereof in conjunction with the accompanying drawings. The drawings are provided to offer a further understanding of the embodiments of this disclosure and form part of the specification. They are used together with the embodiments of this disclosure to explain the disclosure and do not constitute a limitation thereof. In the drawings, the same reference numerals generally represent the same components or steps.
[0040] Figure 1 A flowchart illustrating a user positioning method based on an assisted global satellite navigation system provided in this embodiment of the disclosure;
[0041] Figure 2 A schematic diagram of the Ntrip 2.0 system architecture provided for embodiments of this disclosure;
[0042] Figure 3 A flowchart illustrating the user positioning method based on an assisted global satellite navigation system provided in this embodiment of the disclosure;
[0043] Figure 4 A schematic block diagram of the functional modules of a user positioning system based on an assisted global satellite navigation system provided in this disclosure embodiment;
[0044] Figure 5 A structural block diagram of an electronic device provided in an embodiment of this disclosure;
[0045] Figure 6 A schematic diagram of a computer program product provided in an embodiment of this disclosure. Detailed Implementation
[0046] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.
[0047] It should be understood that the steps described in the method embodiments of this disclosure may be performed in different orders and / or in parallel. Furthermore, the method embodiments may include additional steps and / or omit the steps shown. The scope of this disclosure is not limited in this respect.
[0048] The term "comprising" and its variations as used herein are open-ended, meaning "including but not limited to". The term "based on" means "at least partially based on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". Definitions of other terms will be given in the description below. It should be noted that the concepts of "first", "second", etc., used in this disclosure are only used to distinguish different devices, modules, or units, and are not intended to limit the order of functions performed by these devices, modules, or units or their interdependencies.
[0049] It should be noted that the terms "a" and "a plurality of" used in this disclosure are illustrative rather than restrictive, and those skilled in the art should understand that, unless otherwise expressly indicated in the context, they should be understood as "one or more".
[0050] The names of messages or information exchanged between multiple devices in the embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of such messages or information.
[0051] It is understood that before using the technical solutions disclosed in the various embodiments of this disclosure, users should be informed of the types, scope of use, and usage scenarios of the personal information involved in this disclosure in an appropriate manner in accordance with relevant laws and regulations, and user authorization should be obtained.
[0052] For example, upon receiving a user's active request, a prompt message is sent to the user to explicitly inform them that the requested operation will require the acquisition and use of the user's personal information. This allows the user to independently choose whether to provide personal information to the software or hardware, such as the electronic device, application, server, or storage medium performing the operations of this disclosed technical solution, based on the prompt message.
[0053] As an optional but non-limiting implementation, in response to a user's active request, sending a prompt message to the user can be done via a pop-up window, where the prompt message can be presented in text format. Furthermore, the pop-up window can also include a selection control allowing the user to choose "agree" or "disagree" to provide personal information to the electronic device. It is understood that the above notification and user authorization process is merely illustrative and does not constitute a limitation on the implementation of this disclosure; other methods that comply with relevant laws and regulations may also be applied to the implementation of this disclosure.
[0054] With the development of Global Navigation Satellite Systems (GNSS), GNSS has been widely used in transportation, public safety, intelligent driving, the Internet of Things and other fields, and the demand for positioning accuracy and response speed is constantly increasing.
[0055] In related technologies, AGNSS (Assisted Global Navigation Satellite System) technology is generally based on the SUPL (Secure User Plane Location) protocol to achieve positioning assistance. However, because the SUPL protocol requires mobile terminal devices to upload data such as base station identifiers through multiple interactions to obtain positioning assistance information, this not only leads to a complex interaction process but also poses a problem of low data security.
[0056] Therefore, to address the aforementioned issues, this exemplary embodiment provides a user positioning method based on an assisted global navigation satellite system. By employing extended RTCM and Ntrip protocols, the interaction process is simplified, and system compatibility and scalability are improved. Furthermore, by using geographic area coding and ephemeris data filtering, data transmission volume is reduced, improving data security and positioning efficiency.
[0057] For example, Figure 1 A flowchart illustrating the user positioning method based on an assisted global navigation satellite system provided in this disclosure is shown below. Figure 1 As shown, the specific steps may include:
[0058] Step S110: Obtain the user's connection request and perform identity authentication.
[0059] For example, Figure 2 This is a schematic diagram of the Ntrip 2.0 system architecture provided for an embodiment of this disclosure. Figure 2As shown, when a user device (Ntrip Client) attempts to connect to the NtripCaster server, it first initiates a network connection request. Upon receiving the request, the server performs authentication and permission checks based on the user's provided account information to confirm the validity of the user account and determine whether to allow access to the service. If authentication fails, step S170 is executed, the server returns necessary error information to the client, closes the connection, and the process ends. If authentication succeeds, step S120 is executed, and the server continues to provide services to the client.
[0060] For example, the interaction process after the client and server establish a connection can include the following steps:
[0061] In the Ntrip 2.0 architecture, NtripCaster acts as the core server, managing the data flow between NtripClient and NtripServer. NtripClient establishes a connection with NtripCaster via HTTP and sends an authentication message. After verifying the client's identity, NtripCaster responds with an authentication message, confirming the connection's validity. Subsequently, NtripClient initiates a connection request, specifying the required data stream. Based on the request, NtripCaster retrieves data from the corresponding NtripServer and transmits it to NtripClient via HTTP Streams.
[0062] NtripServer is responsible for acquiring raw GNSS (Global Navigation Satellite System) data from NtripSource and encapsulating it into the Ntrip protocol format. NtripCaster is responsible for distributing these data streams to multiple NtripClients. Throughout the process, NtripCaster also provides management functions for monitoring and configuring the transmission of data streams.
[0063] Based on the Ntrip 2.0 architecture described above, efficient data transmission and distribution can be achieved, ensuring a secure and reliable connection between the client and the server.
[0064] Step S120: Determine the auxiliary data type and generate a connection request.
[0065] The terminal SDK (Software Development Kit) determines the required auxiliary data types based on user configuration, and encodes these data types together with the geographic area code of the user's current location using the extended RTCM (Radio Technical Commission for Maritime Services) protocol format to form a connection request, which is then sent to the server. This enables efficient interaction between the terminal and the server, as well as accurate acquisition and utilization of auxiliary data.
[0066] First, the terminal SDK determines the required auxiliary data types based on the user's specific configuration (such as positioning accuracy requirements and supported GNSS systems). These data types may include, but are not limited to:
[0067] GPS (Global Positioning System): ephemeris, almanac, ionospheric model parameters, and UTC (Coordinated Universal Time) time model parameters.
[0068] GLONASS (Global Navigation Satellite System): ephemeris and almanac.
[0069] BeiDou Navigation Satellite System (BDS): ephemeris, almanac, ionospheric model parameters, and UTC time model parameters.
[0070] Galileo System (Galileo Satellite Navigation System): Ephemeris, almanac, ionospheric model parameters, and UTC time model parameters.
[0071] QZSS (Quasi-Zenith Satellite System): Ephemeris, almanac, ionospheric model parameters, and UTC time model parameters.
[0072] After determining the auxiliary data type, the terminal SDK combines the user's current location's geographic area code with this data and encodes both parts of the information using the extended RTCM protocol format. The geographic area code is generated by reading location information from the terminal's cache. Since AGNSS provides GNSS positioning services for the terminal, after acquiring AGNSS auxiliary data, the terminal combines it with its own GNSS observations to complete the positioning process and generate location information. The terminal actively acquires the positioning results and converts the three-dimensional location information (longitude, latitude, and elevation) into a one-dimensional geographic area code, which is then cached. When the terminal starts up (whether it's a cold start, warm start, or neutral start), it actively reads the cached geographic area code to ensure the continuity and efficiency of the positioning service.
[0073] After encoding, the terminal sends the generated connection request to the server. Upon receiving the message, the server parses out the auxiliary data type and geographic area code requested by the user, and retrieves the corresponding auxiliary data from the database based on this information. This auxiliary data will be used to support the terminal's GNSS positioning process, helping the terminal to quickly and accurately complete positioning in weak signal environments.
[0074] Step S130: Obtain the user's reference location.
[0075] For example, the server needs to extract the geographic region code of the user's location from the connection request sent by the user, and obtain detailed latitude, longitude, and elevation data based on the geographic region code as the user's reference location. This provides accurate reference location information for subsequent calculation of the satellite-to-ground vector (i.e., the vector between the satellite and the user's location). Specifically, this may include:
[0076] First, the server extracts the geographic region code from the connection request sent by the user. The geographic region code is generated by the terminal SDK by converting the user's three-dimensional location information (longitude, latitude, and elevation) into one-dimensional encoding, and is read from the cache when the terminal starts.
[0077] Next, the server queries a geocoding library. The server integrates a geocoding library that stores the mapping relationships between geocoding codes and detailed latitude, longitude, and elevation data. Based on the extracted geocoding code, the server queries the corresponding detailed latitude, longitude, and elevation data according to the mapping rules of the coding library. This latitude, longitude, and elevation data together constitute the user's reference location.
[0078] Specifically, to enhance the security of location coordinate information during client-server interaction when transmitting auxiliary data such as reference locations, this embodiment proposes an encoding and inverse encoding scheme for three-dimensional coordinate data. Currently, mainstream geocoding libraries primarily target two-dimensional coordinates (longitude and latitude) and cannot be directly applied to three-dimensional coordinates containing elevation information. Therefore, this embodiment, based on conventional two-dimensional geographic data encoding libraries and incorporating terrain elevation data, designs a dedicated encoding and inverse encoding scheme for three-dimensional coordinate information, which may include:
[0079] First, determine a set of points: within a specified geographical area, select a series of latitude and longitude points with the required precision (step size). For example, the step size can be set to 0.0001 degrees (approximately 10 meters) to ensure that the density of the points meets the application requirements.
[0080] Then, the latitude and longitude of the point are input into a terrain elevation database to calculate the elevation of that location, forming a three-dimensional coordinate system: the selected latitude and longitude points are input into a high-precision terrain elevation database (such as SRTM or ASTER GDEM), and the elevation value of each point is calculated. By combining the latitude, longitude, and elevation values, a complete three-dimensional coordinate system (longitude, latitude, and elevation) is formed.
[0081] Next, define the mapping rules: design mapping rules to convert three-dimensional coordinates into unique character indices. For example, longitude, latitude, and elevation can be encoded as fixed-length strings. These strings are then concatenated into a unique character index.
[0082] It can also directly record the mapping relationship between three-dimensional coordinates and character indexes through the database, which facilitates fast querying and reverse encoding.
[0083] Finally, based on mapping rules and three-dimensional coordinates, a geocoding library adapted to three-dimensional coordinates is constructed.
[0084] Based on this, the 3D coordinate information encoding and inverse encoding scheme not only improves the security of location data but also provides technical support for the efficient operation of the AGNSS system, making it suitable for application scenarios requiring high-precision elevation information. Furthermore, by extracting geographic area codes and querying the geographic area code library, accurate acquisition of user reference locations is achieved, providing crucial foundational data support for subsequent satellite-to-ground vector calculations and GNSS positioning.
[0085] Step S140: Quickly filter auxiliary data based on the user's reference position.
[0086] Because the ephemeris data is large and most satellites are not visible at the user's location, it is necessary to quickly filter the auxiliary data based on the user's reference position to avoid unnecessary satellite searches by the terminal and save bandwidth resources. Other types of auxiliary data (such as ionospheric parameters and UTC time parameters) do not require filtering due to their smaller data volume.
[0087] In step S120, the server obtains the full ephemeris data of a certain GNSS system (such as the BDS system), that is, the ephemeris information of all satellites under the system.
[0088] Taking one satellite as an example, the specific selection process includes:
[0089] The server calculates the satellite's coordinates (i.e., the satellite's position in space) based on its current ephemeris data.
[0090] Then, based on the user's reference position and the satellite's coordinates, the satellite-to-ground vector, that is, the vector between the satellite and the user's position, is calculated.
[0091] Then, using the user's location as the origin, the satellite's elevation angle is calculated. The elevation angle refers to the angle of elevation of the satellite relative to the user's horizon.
[0092] Then, the visibility of the satellite is determined based on a preset satellite cutoff elevation angle, which can be set to 10° or 15°. If the satellite's elevation angle is greater than or equal to the cutoff elevation angle, it is determined to be visible; if the satellite's elevation angle is lower than the cutoff elevation angle, it is determined to be invisible.
[0093] Finally, the server determines whether to send ephemeris data for a satellite based on its visibility. For visible satellites, the server sends their ephemeris data to the terminal; for invisible satellites, the server deletes their ephemeris data to avoid unnecessary searches by the terminal.
[0094] Based on this, by filtering out ephemeris data from invisible satellites, unnecessary satellite searches by the terminal are avoided, thus improving positioning efficiency. Only sending ephemeris data from visible satellites reduces data transmission volume and saves bandwidth resources.
[0095] Step S150: Perform unified encoding on the filtered auxiliary data based on the RTCM data protocol format.
[0096] In the preceding steps, the server has already completed the filtering and processing of the auxiliary data required by the user. This data includes:
[0097] Ephemeris data: After filtering, only ephemeris information of satellites visible to the user is included.
[0098] Ionospheric parameters: used to correct the delay effect of the ionosphere on GNSS signals.
[0099] UTC time parameter: Used to convert GNSS system time to Coordinated Universal Time.
[0100] Almanac data: Rough orbital information of satellites, used for rapid satellite search.
[0101] Reference location: The user's reference location information.
[0102] The server uses the RTCM data protocol to uniformly encode the filtered auxiliary data.
[0103] For example, in this embodiment, an extended RTCM data protocol can be used to encode auxiliary data, and the message can be transmitted via the Ntrip protocol. Compared to the traditional SUPL (Secure User Plane Location) protocol, the Ntrip protocol simplifies the interaction process between the client and the server, significantly improving processing efficiency, system compatibility, and scalability. Furthermore, by introducing a geographic area coding system to encode location data, the direct transmission of sensitive three-dimensional coordinates (longitude, latitude, and elevation) is avoided, thereby greatly improving data security.
[0104] The auxiliary data issued by the AGNSS system typically includes the following categories:
[0105] Ephemeris: Precise orbital information of a satellite, used to calculate its position.
[0106] Ionospheric parameters: used to correct the delay effect of the ionosphere on GNSS signals.
[0107] UTC time parameter: Used to convert GNSS system time to Coordinated Universal Time (UTC).
[0108] Almanac: Rough orbital information of satellites, used for rapid satellite search.
[0109] Reference location: The approximate location of the user equipment, used to assist in positioning calculations.
[0110] The RTCM (Radio Technical Commission for Maritime Services) protocol is the primary format for GNSS data streams and is widely used in various high-precision positioning augmentation systems (such as RTK and PPP). The standard RTCM protocol is typically used to encode the following data:
[0111] GNSS observations: such as pseudorange, carrier phase, etc.
[0112] Broadcast ephemeris: Satellite orbit and clock information.
[0113] Coordinates: Location information of the reference station.
[0114] The standard RTCM protocol encodes the aforementioned data into a byte stream for easy transmission over a network or radio. In the AGNSS system, the RTCM protocol is commonly used to encode ephemeris data and reference positions. However, the standard RTCM protocol does not support the encoding of other auxiliary data (such as ionospheric parameters, UTC time parameters, and ephemeris). To address this issue, this embodiment extends the standard RTCM protocol by adding a new message, each message having a unique message number to identify its type and content.
[0115] For example, Table 1 shows an example of the extended RTCM protocol:
[0116] Table 1 Examples of Extended RTCM Protocol
[0117] Telegram number type 3010 GPS System Almanac 3011 GLO System Calendar 3012 GAL System Calendar 3013 BDS System Calendar 3020 Ionospheric parameters, UTC time parameters
[0118] As shown in Table 1, almanac data from different GNSS systems are identified using different message codes. By assigning a unique message number to each GNSS system, the extended RTCM protocol can support multi-system compatibility and meet the needs of different GNSS systems worldwide.
[0119] For example, Table 2 shows a sample format for a single calendar message:
[0120] Table 2 Examples of Single Calendar Message Format
[0121]
[0122] As shown in Table 2, the single almanac message format achieves efficient encoding and transmission of almanac data from multiple satellites through fields such as message number, satellite number, health identifier, week, and almanac content. The flexible message design supports multiple GNSS systems and data formats, while binary encoding improves transmission efficiency. This format provides crucial support for the rapid positioning and multi-system compatibility of the AGNSS system.
[0123] For example, Table 3 shows an example of the message encoding format for ionospheric parameters and UTC time parameters:
[0124] Table 3 Examples of Message Encoding Formats for Ionospheric Parameters and UTC Time Parameters
[0125]
[0126] As shown in Table 3, the ionospheric parameter and UTC time parameter messages achieve efficient encoding of ionospheric parameters and UTC time parameters from multiple systems through fields such as message number, number of ionospheric systems, satellite system, ionospheric information, number of UTC systems, and UTC information. Its design balances multi-system compatibility, efficiency, and flexibility, providing crucial support for the high-precision positioning and time synchronization of the AGNSS system.
[0127] After encoding, the server uses the Ntrip protocol to send the auxiliary data to the user terminal. The sending process may include: the server transmitting the encoded auxiliary data stream to the user terminal via the Ntrip protocol. After receiving the data stream, the terminal decodes it and uses this auxiliary data to complete the positioning calculation.
[0128] Based on this, by extending the RTCM protocol to fully adapt to the aforementioned AGNSS auxiliary data, not only is the system's processing efficiency and data security improved, but the system's compatibility and scalability are also enhanced, providing strong support for high-precision positioning and navigation applications.
[0129] Step S160: After acquiring auxiliary data, the terminal performs positioning calculations by combining its own GNSS observations to obtain positioning results.
[0130] The terminal obtains all auxiliary data (including ephemeris, ionospheric parameters, UTC time parameters, almanac, etc.) from the server and combines it with its own GNSS observations (such as pseudorange, carrier phase, etc.) to perform positioning calculations and obtain positioning results.
[0131] The terminal converts real-time location results into geolocation codes and caches them. The cached geolocation codes can be used the next time the terminal starts up, speeding up the location process.
[0132] After the server completes the distribution of auxiliary data, it waits for the terminal's response. The terminal can choose whether to send back the location result (i.e., geographic area code) obtained after location calculation using AGNSS auxiliary data.
[0133] If the terminal reports a process termination exit signal, the server executes step S170 to close the connection.
[0134] If the terminal reports the location result and there is no exit signal, the server executes step S120 to continue providing auxiliary data services.
[0135] If the terminal does not respond or return any messages for an extended period of time, the server will execute step S170 after the timeout to close the connection.
[0136] Based on this, the terminal completes the positioning calculation by combining auxiliary data and its own observations, and converts the result into a geographic area code for caching, thereby improving the efficiency of subsequent positioning. Furthermore, based on the terminal's response, the server dynamically decides whether to continue providing auxiliary data services, enhancing the system's flexibility and adaptability.
[0137] Step S170: The server performs a connection closure operation.
[0138] For example, the server sends a response message from the upstream terminal to the terminal, confirming the connection is closed. The server then performs the connection closure operation, and the process ends.
[0139] One or more technical solutions provided in the exemplary embodiments of this disclosure achieve efficient and secure auxiliary data services through steps such as connection authentication, auxiliary data request and filtering, reference location acquisition, data encoding and distribution, terminal positioning calculation, and connection management. The use of extended RTCM and Ntrip protocols simplifies the interaction process and improves system compatibility and scalability. Furthermore, geographic area encoding and ephemeris data filtering reduce data transmission volume and improve data security and positioning efficiency.
[0140] Therefore, the user positioning method based on the assisted global satellite navigation system provided in the exemplary embodiments of this disclosure can not only simplify the interaction process between the server and the terminal and improve data processing efficiency, but also improve the security of location data.
[0141] Based on the above embodiments, this disclosure also provides a user positioning method based on an assisted global satellite navigation system. Figure 3 A flowchart illustrating the user positioning method based on an assisted global navigation satellite system provided in this disclosure is shown below. Figure 3 As shown, the method may include the following steps:
[0142] Step S310: Obtain the user's terminal configuration information and the connection request sent.
[0143] In this embodiment, when a user device (Ntrip Client) attempts to connect to the NtripCaster server, it first initiates a network connection request. Upon receiving the request, the server obtains the user's terminal configuration information and performs authentication and permission verification based on the account information provided by the user. This verifies the validity of the user account and determines whether to allow access to the service. If authentication fails, the server returns necessary error information to the client and closes the connection, ending the process. If authentication succeeds, the server continues to provide services to the client.
[0144] Step S320: Determine initial auxiliary data based on terminal configuration information, and obtain user reference location based on geographic area code in connection request; geographic area code is formed by converting three-dimensional coordinate information into one-dimensional character encoding.
[0145] In this embodiment, the terminal determines the required auxiliary data types according to the user configuration, and encodes these data types together with the geographic area code of the user's current location using the extended RTCM protocol format to form a connection request, which is then sent to the server. This enables efficient interaction between the terminal and the server, as well as accurate acquisition and utilization of auxiliary data.
[0146] First, the terminal determines the required auxiliary data type based on the user's specific configuration (such as positioning accuracy requirements and supported GNSS systems). These data types may include, but are not limited to:
[0147] GPS (Global Positioning System): ephemeris, almanac, ionospheric model parameters, and UTC (Coordinated Universal Time) time model parameters.
[0148] GLONASS (Global Navigation Satellite System): ephemeris and almanac.
[0149] BeiDou Navigation Satellite System (BDS): ephemeris, almanac, ionospheric model parameters, and UTC time model parameters.
[0150] Galileo System (Galileo Satellite Navigation System): Ephemeris, almanac, ionospheric model parameters, and UTC time model parameters.
[0151] QZSS (Quasi-Zenith Satellite System): Ephemeris, almanac, ionospheric model parameters, and UTC time model parameters.
[0152] After determining the auxiliary data type, the terminal combines the user's current location's geographic area code with this data and encodes both parts of the information using the extended RTCM protocol format. The geographic area code is generated by reading location information from the terminal's cache. Since AGNSS provides GNSS positioning services for the terminal, after acquiring AGNSS auxiliary data, the terminal combines it with its own GNSS observations to complete the positioning process and generate location information. The terminal actively acquires the positioning results and converts the three-dimensional location information (longitude, latitude, and elevation) into a one-dimensional geographic area code, which is then cached. When the terminal starts up (whether it's a cold start, warm start, or neutral start), it actively reads the cached geographic area code to ensure the continuity and efficiency of the positioning service.
[0153] After encoding, the terminal sends the generated connection request to the server. Upon receiving the message, the server parses out the auxiliary data type and geographic area code requested by the user, and retrieves the corresponding initial auxiliary data from the database based on this information. This initial auxiliary data will be used to support the terminal's GNSS positioning process, helping the terminal to quickly and accurately complete positioning in weak signal environments.
[0154] Step S330: Filter the initial auxiliary data based on the user reference position, encode the filtered initial auxiliary data to obtain the target auxiliary data, and transmit the data through the Ntrip protocol.
[0155] In this embodiment, because the initial auxiliary data is large in volume and most satellites are not visible at the user's location, it is necessary to quickly filter the initial auxiliary data based on the user's reference location to avoid unnecessary satellite searches by the terminal and save bandwidth resources. Other types of initial auxiliary data (such as ionospheric parameters and UTC time parameters) do not require filtering due to their smaller volume.
[0156] The filtered initial auxiliary data is uniformly encoded in the extended RTCM protocol format to obtain the target auxiliary data, and then transmitted via the Ntrip protocol.
[0157] Step S340: The user terminal performs positioning calculation based on the target auxiliary data to obtain the user positioning result.
[0158] In this embodiment, the terminal obtains all target auxiliary data (including ephemeris, ionospheric parameters, UTC time parameters, almanac, etc.) from the server and combines it with its own GNSS observations (such as pseudorange, carrier phase, etc.) to perform positioning calculations and obtain positioning results.
[0159] The terminal converts real-time location results into geolocation codes and caches them. The cached geolocation codes can be used the next time the terminal starts up, speeding up the location process.
[0160] After the server sends the target auxiliary data, it waits for the terminal's response. The terminal can choose whether to send back the location result (i.e., geographic area code) obtained after using the AGNSS auxiliary data for positioning calculation.
[0161] When the terminal reports a signal indicating the end of the process and exit, the server closes the connection.
[0162] If the terminal reports the location result and there is no exit signal, the server continues to provide target auxiliary data services.
[0163] If the terminal remains unresponsive or receives no messages for an extended period, the server will close the connection after a timeout.
[0164] Based on this, by adopting extended RTCM and Ntrip protocols, the interaction process is simplified, and system compatibility and scalability are improved. Furthermore, by using geographic area coding and ephemeris data filtering, the amount of data transmission is reduced, improving data security and positioning efficiency. Therefore, the user positioning method based on an assisted global navigation satellite system provided in the exemplary embodiments of this disclosure not only simplifies the interaction process between the server and the terminal and improves data processing efficiency, but also enhances the security of location data.
[0165] Based on the above embodiments, in another embodiment provided in this disclosure, step S330 may include:
[0166] Obtain satellite coordinates and calculate the satellite-to-ground vector based on the user's reference position and satellite coordinates;
[0167] The satellite elevation angle is obtained based on the user's reference location;
[0168] Visible satellites are selected based on their elevation angles, and the corresponding initial auxiliary data is obtained. This initial auxiliary data is then used as the selected initial auxiliary data.
[0169] In this embodiment, the server calculates the satellite's coordinates (i.e., the satellite's position in space) based on its current ephemeris data.
[0170] Then, based on the user's reference position and the satellite's coordinates, the satellite-to-ground vector, that is, the vector between the satellite and the user's position, is calculated.
[0171] Then, using the user's location as the origin, the satellite's elevation angle is calculated. The elevation angle refers to the angle of elevation of the satellite relative to the user's horizon.
[0172] Then, based on the satellite elevation angle, it is determined whether the satellite is visible, the initial auxiliary data corresponding to the visible satellite is filtered out, and the initial auxiliary data corresponding to the visible satellite is determined as the filtered initial auxiliary data.
[0173] Finally, the server determines whether to send ephemeris data for a satellite based on its visibility. For visible satellites, the server sends their ephemeris data to the terminal; for invisible satellites, the server deletes their ephemeris data to avoid unnecessary searches by the terminal.
[0174] Based on this, by filtering out ephemeris data from invisible satellites, unnecessary satellite searches by the terminal are avoided, thus improving positioning efficiency. Only sending ephemeris data from visible satellites reduces data transmission volume and saves bandwidth resources.
[0175] Based on the above embodiments, in another embodiment provided in this disclosure, the above-mentioned filtering of visible satellites based on satellite elevation angle may include:
[0176] Obtain the preset cutoff elevation angle;
[0177] If the satellite elevation angle is greater than or equal to the cutoff elevation angle, the corresponding satellite is determined to be visible;
[0178] If the satellite elevation angle is less than the cutoff elevation angle, the corresponding satellite is determined to be invisible.
[0179] In this embodiment, satellite visibility is determined based on a preset satellite cutoff elevation angle, which can be set to 10° or 15°. If the satellite's elevation angle is greater than or equal to the cutoff elevation angle, it is determined to be visible; if the satellite's elevation angle is lower than the cutoff elevation angle, it is determined to be invisible.
[0180] Based on this, ephemeris data of invisible satellites is filtered out by setting a preset cutoff elevation angle, avoiding unnecessary satellite searches by the terminal and improving positioning efficiency. Only ephemeris data of visible satellites is transmitted, reducing data transmission volume and saving bandwidth resources.
[0181] Based on the above embodiments, in another embodiment provided in this disclosure, the above-mentioned encoding process for the filtered initial auxiliary data may include:
[0182] The initial auxiliary data after filtering is encoded based on the RTCM protocol format; the RTCM protocol extends the message format for encoding ionospheric parameters, UTC time parameters and almanac data.
[0183] In this embodiment, the filtered initial auxiliary data can be encoded using an extended RTCM data protocol and transmitted via the Ntrip protocol. Compared to the traditional SUPL (Secure User Plane Location) protocol, the Ntrip protocol simplifies the interaction process between the client and server, significantly improving processing efficiency, system compatibility, and scalability. Furthermore, by introducing a geographic area coding system to encode the location data, the direct transmission of sensitive three-dimensional coordinates (longitude, latitude, and elevation) is avoided, thereby greatly enhancing data security.
[0184] The auxiliary data issued by the AGNSS system typically includes the following categories:
[0185] Ephemeris: Precise orbital information of a satellite, used to calculate its position.
[0186] Ionospheric parameters: used to correct the delay effect of the ionosphere on GNSS signals.
[0187] UTC time parameter: Used to convert GNSS system time to Coordinated Universal Time (UTC).
[0188] Almanac: Rough orbital information of satellites, used for rapid satellite search.
[0189] Reference location: The approximate location of the user equipment, used to assist in positioning calculations.
[0190] The RTCM (Radio Technical Commission for Maritime Services) protocol is the primary format for GNSS data streams and is widely used in various high-precision positioning augmentation systems (such as RTK and PPP). The standard RTCM protocol is typically used to encode the following data:
[0191] GNSS observations: such as pseudorange, carrier phase, etc.
[0192] Broadcast ephemeris: Satellite orbit and clock information.
[0193] Coordinates: Location information of the reference station.
[0194] The standard RTCM protocol encodes the aforementioned data into a byte stream for easy transmission over a network or radio. In the AGNSS system, the RTCM protocol is commonly used to encode ephemeris data and reference positions. However, the standard RTCM protocol does not support the encoding of other auxiliary data (such as ionospheric parameters, UTC time parameters, and ephemeris). To address this issue, this embodiment extends the standard RTCM protocol by adding a new message, each message having a unique message number to identify its type and content.
[0195] For example, examples of extended RTCM protocol can be found in Table 1 above, examples of single calendar message format can be found in Table 2 above, and examples of ionospheric parameter and UTC time parameter message encoding formats can be found in Table 3 above.
[0196] After encoding, the server uses the Ntrip protocol to send the target auxiliary data to the user terminal. The sending process may include: the server transmitting the target auxiliary data stream to the user terminal via the Ntrip protocol. After receiving the data stream, the terminal decodes it and uses this target auxiliary data to complete the positioning calculation.
[0197] Based on this, by extending the RTCM protocol to fully adapt to the aforementioned AGNSS auxiliary data, not only is the system's processing efficiency and data security improved, but the system's compatibility and scalability are also enhanced, providing strong support for high-precision positioning and navigation applications.
[0198] Based on the above embodiments, in another embodiment provided in this disclosure, the above-mentioned user positioning method based on an assisted global satellite navigation system may further include:
[0199] The user terminal determines the auxiliary data type based on the terminal configuration information;
[0200] The auxiliary data types and geographic area codes are encoded based on the RTCM protocol format.
[0201] In this embodiment, the user terminal determines the required auxiliary data type based on the terminal configuration information, and encodes the auxiliary data type and geographic area code using the extended RTCM protocol format.
[0202] The user terminal configuration information includes auxiliary data types required by the user (such as ephemeris, ionospheric parameters, and UTC time parameters) and supported GNSS systems (such as GPS, GLONASS, and BeiDou). This information is encoded in the binary byte stream format of the extended RTCM protocol for efficient transmission over the network.
[0203] Geographic region codes are generated by converting three-dimensional coordinate information (longitude, latitude, and elevation) into one-dimensional character encoding. The extended RTCM protocol adds a message format for geographic region codes to encode them. This encoding method not only simplifies the transmission of location data but also avoids the direct transmission of sensitive three-dimensional coordinate information, thereby improving data security.
[0204] Based on this, by encoding auxiliary data types and geographic area codes according to the RTCM protocol format, user terminal configuration information and geographic area codes can be efficiently encoded in a unified format, simplifying the interaction process between the client and the server, while enhancing the system's compatibility and scalability.
[0205] Based on the above embodiments, in another embodiment provided in this disclosure, step S320 may include:
[0206] Extract the user's geographic region code from the connection request;
[0207] Based on the geographic region code, the corresponding latitude, longitude and elevation information are obtained from the pre-built geographic region coding library;
[0208] Use latitude, longitude, and elevation information as the user's reference location.
[0209] In this embodiment, the server extracts the geographic region code from the connection request sent by the user. The geographic region code is generated by converting the user's three-dimensional location information (longitude, latitude, and elevation) into one-dimensional encoding using the terminal SDK, and is read from the cache when the terminal starts.
[0210] Next, the server queries a geocoding library. The server integrates a geocoding library that stores the mapping relationships between geocoding codes and detailed latitude, longitude, and elevation data. Based on the extracted geocoding code, the server queries the corresponding detailed latitude, longitude, and elevation data according to the mapping rules of the coding library. This latitude, longitude, and elevation data together constitute the user's reference location.
[0211] Based on this, by extracting the geographic area code and querying the geographic area code library, the user's reference location was accurately obtained, providing important basic data support for subsequent satellite-to-ground vector calculations and GNSS positioning.
[0212] Based on the above embodiments, in another embodiment provided in this disclosure, step S320 may further include:
[0213] Within the target geographic area, select multiple latitude and longitude points according to a preset step size;
[0214] Obtain the elevation information corresponding to multiple latitude and longitude points, and combine the latitude, longitude and elevation information corresponding to multiple latitude and longitude points to form three-dimensional coordinate information;
[0215] A geographic region coding library is constructed based on preset mapping rules and multiple 3D coordinate information; the mapping rules represent the mapping relationship between 3D coordinate information and geographic region codes.
[0216] In this embodiment, the encoding and inverse encoding scheme for three-dimensional coordinate information may specifically include:
[0217] First, determine a set of points: within a specified geographical area, select a series of latitude and longitude points with the required precision (step size). For example, the step size can be set to 0.0001 degrees (approximately 10 meters) to ensure that the density of the points meets the application requirements.
[0218] Then, the latitude and longitude of the point are input into a terrain elevation database to calculate the elevation of that location, forming a three-dimensional coordinate system: the selected latitude and longitude points are input into a high-precision terrain elevation database (such as SRTM or ASTER GDEM), and the elevation value of each point is calculated. By combining the latitude, longitude, and elevation values, a complete three-dimensional coordinate system (longitude, latitude, and elevation) is formed.
[0219] Next, define the mapping rules: design mapping rules to convert three-dimensional coordinates into unique character indices. For example, longitude, latitude, and elevation can be encoded as fixed-length strings. These strings are then concatenated into a unique character index.
[0220] It can also directly record the mapping relationship between three-dimensional coordinates and character indexes through the database, which facilitates fast querying and reverse encoding.
[0221] Finally, based on mapping rules and three-dimensional coordinates, a geocoding library adapted to three-dimensional coordinates is constructed.
[0222] Based on this, the three-dimensional coordinate information encoding and inverse encoding scheme not only improves the security of location data, but also provides technical support for the efficient operation of the AGNSS system, and is suitable for application scenarios that require high-precision elevation information.
[0223] One or more technical solutions provided in the exemplary embodiments of this disclosure achieve efficient and secure auxiliary data services through steps such as connection authentication, auxiliary data request and filtering, reference location acquisition, data encoding and distribution, terminal positioning calculation, and connection management. The use of extended RTCM and Ntrip protocols simplifies the interaction process and improves system compatibility and scalability. Furthermore, geographic area encoding and ephemeris data filtering reduce data transmission volume and improve data security and positioning efficiency.
[0224] Therefore, the user positioning method based on the assisted global satellite navigation system provided in the exemplary embodiments of this disclosure can not only simplify the interaction process between the server and the terminal and improve data processing efficiency, but also improve the security of location data.
[0225] The foregoing primarily describes the solutions provided by exemplary embodiments of this disclosure. It is understood that, in order to achieve the above functions, the electronic device includes corresponding hardware structures and / or software modules for performing each function. Those skilled in the art should readily recognize that, based on the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein, this disclosure can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this disclosure.
[0226] The exemplary embodiments of this disclosure can divide the electronic device into functional units according to the above method examples. For example, each function can be divided into a separate functional module, or two or more functions can be integrated into a single processing module. The integrated module can be implemented in hardware or as a software functional module. It should be noted that the module division in the exemplary embodiments of this disclosure is illustrative and only represents one logical functional division; other division methods may be used in actual implementation.
[0227] By dividing each functional module according to its corresponding functions, an exemplary embodiment of this disclosure provides a user positioning system based on an assisted global navigation satellite system. This user positioning system based on an assisted global navigation satellite system can be a server or a chip applied to a server. Figure 4 A schematic block diagram of the functional modules of a user positioning system based on an assisted global satellite navigation system provided in this disclosure embodiment. Figure 4 As shown, the user positioning system 400 based on the assisted global satellite navigation system includes:
[0228] The gateway and authentication module 410 is used to obtain the connection request sent by the user terminal and complete the authentication process based on the connection request.
[0229] The auxiliary data processing module 420 is used to determine initial auxiliary data based on the user's terminal configuration information and obtain the user's reference location based on the geographic area code in the connection request; the geographic area code is formed by converting three-dimensional coordinate information into one-dimensional character encoding; the initial auxiliary data is filtered based on the user's reference location to obtain filtered initial auxiliary data.
[0230] The auxiliary data broadcasting module 430 is used to encode the filtered initial auxiliary data according to the RTCM protocol format to obtain the target auxiliary data, and transmit the target auxiliary data to the terminal through the Ntrip protocol;
[0231] Terminal 440 is used to obtain the user's reference location based on the geographic area code in the connection request; the geographic area code is formed by converting three-dimensional coordinate information into one-dimensional character encoding; it is also used to perform positioning calculation based on the target auxiliary data to obtain the user's positioning result.
[0232] The gateway and authentication module is responsible for the interaction between the server and the client. Its main functions include receiving user requests, establishing Ntrip connections, completing the authentication process, and message forwarding. The gateway and authentication module adopts a dual-active high-availability design, capable of listening for user AGNSS connection requests in real time and quickly establishing Ntrip connections. After the connection is established, the gateway and authentication module parses user information, completes the authentication process, and extracts other necessary information reported by the user, ensuring high reliability and real-time performance of the service.
[0233] The auxiliary data processing module parses the user-reported information after authentication, obtains the specific auxiliary data type required by the user, and completes the corresponding auxiliary data acquisition according to the request type. The module obtains the user's reference location based on the user-reported geographic area code and filters the ephemeris data based on this location. The filtered auxiliary data is then passed to the downstream middleware. The auxiliary data processing module adopts a dual-active high-availability design, utilizing the middleware's high-speed caching function to efficiently complete the acquisition, filtering, and transmission of auxiliary data such as reference location and ephemeris data according to specific user needs.
[0234] The auxiliary data broadcasting module retrieves the user's reference position and other filtered auxiliary data from the middleware cache, encodes the auxiliary data using an extended RTCM protocol, and broadcasts the encoded data to downstream terminals via the Ntrip protocol. The auxiliary data broadcasting module employs a high-availability design, combining a middleware cluster and a load-balanced cluster to ensure fast and stable broadcasting of auxiliary data, meeting users' requirements for real-time performance and reliability.
[0235] As a client of the AGNSS system, the terminal is responsible for initiating Ntrip requests to the server, reporting the geographic area code, and receiving and processing auxiliary data. The terminal is also responsible for parsing the server's interactive instructions, enabling the conversion between city names and geographic area codes, and between location coordinates and geographic area codes. After acquiring auxiliary data, the terminal interacts with its GNSS chip or GNSS positioning module and stores reusable auxiliary data. Upon initial activation, the terminal converts and stores the geographic area code based on the user-defined city name. During subsequent AGNSS positioning processes, the terminal interacts with its positioning processing unit to obtain the AGNSS positioning results and converts the coordinates to geographic area codes, storing the results locally. This allows for real-time dynamic updates of the geographic area code corresponding to the user's approximate location.
[0236] Exemplary embodiments of this disclosure also provide an electronic device, including: at least one processor; and a memory communicatively connected to the at least one processor. The memory stores a computer program executable by the at least one processor, the computer program being executed by the at least one processor to cause the electronic device to perform a method according to an embodiment of this disclosure.
[0237] Exemplary embodiments of this disclosure also provide a non-transitory computer-readable storage medium storing a computer program, wherein the computer program, when executed by a computer's processor, is used to cause the computer to perform a method according to embodiments of this disclosure.
[0238] Figure 5 The structural block diagrams of the electronic devices provided in embodiments of this disclosure are described below. The structural block diagrams of electronic device 500, which can serve as a server or client of this disclosure, are examples of hardware devices applicable to various aspects of this disclosure. The electronic device is intended to represent various forms of digital electronic computer devices, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the disclosure described and / or claimed herein.
[0239] like Figure 5 As shown, the electronic device 500 includes a computing unit 501, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 502 or a computer program loaded from a storage unit 508 into a random access memory (RAM) 503. The RAM 503 may also store various programs and data required for the operation of the electronic device 500. The computing unit 501, ROM 502, and RAM 503 are interconnected via a bus 504. An input / output (I / O) interface 505 is also connected to the bus 504.
[0240] Multiple components in electronic device 500 are connected to I / O interface 505, including: input unit 506, output unit 507, storage unit 508, and communication unit 509. Input unit 506 can be any type of device capable of inputting information to electronic device 500. Input unit 506 can receive input digital or character information and generate key signal inputs related to user settings and / or function control of electronic device. Output unit 507 can be any type of device capable of presenting information and may include, but is not limited to, a display, speaker, video / audio output terminal, vibrator, and / or printer. Storage unit 508 may include, but is not limited to, disk and optical disk. Communication unit 509 allows electronic device 500 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks, and may include, but is not limited to, modems, network cards, infrared communication devices, wireless communication transceivers, and / or chipsets, such as Bluetooth™ devices, WiFi devices, WiMax devices, cellular communication devices, and / or the like.
[0241] The computing unit 501 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 501 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 501 performs the various methods and processes described above. The various methods described above can all be implemented as computer software programs, which are tangibly contained in a machine-readable medium, such as storage unit 508. In some embodiments, part or all of the computer program can be loaded and / or installed on the electronic device 500 via ROM 502 and / or communication unit 509.
[0242] Figure 6 The diagram illustrates a computer program product provided in an embodiment of this disclosure. An exemplary embodiment of this disclosure also provides a computer program product 600, including a computer program 601, wherein the computer program 601, when executed by a computer's processor, is used to cause the computer to perform a method according to an embodiment of this disclosure.
[0243] The program code used to implement the methods of this disclosure may be written in any combination of one or more programming languages. This program code may be provided to a processor or controller of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus, such that when executed by the processor or controller, the program code causes the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code may be executed entirely on a machine, partially on a machine, as a standalone software package partially on a machine and partially on a remote machine, or entirely on a remote machine or server.
[0244] In the context of this disclosure, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0245] As used in this disclosure, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, device, and / or apparatus (e.g., disk, optical disk, memory, programmable logic device (PLD)) for providing machine instructions and / or data to a programmable processor, including machine-readable media that receive machine instructions as machine-readable signals. The term "machine-readable signal" refers to any signal for providing machine instructions and / or data to a programmable processor.
[0246] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor); and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).
[0247] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as a data server), or computing systems that include middleware components (e.g., an application server), or computing systems that include frontend components (e.g., a user computer with a graphical user interface or web browser through which a user can interact with embodiments of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., a communication network). Examples of communication networks include local area networks (LANs), wide area networks (WANs), and the Internet.
[0248] Computer systems can include clients and servers. Clients and servers are generally located far apart and typically interact through communication networks. Client-server relationships are created by computer programs running on the respective computers and having a client-server relationship with each other.
[0249] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented, in whole or in part, as a computer program product. The computer program product includes one or more computer programs or instructions. When the computer program or instructions are loaded and executed on a computer, the processes or functions described in the embodiments of this disclosure are performed, in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a terminal, a user equipment, or other programmable device. The computer program or instructions can be stored in a computer-readable storage medium or transferred from one computer-readable storage medium to another. For example, the computer program or instructions can be transferred from one website, computer, server, or data center to another website, computer, server, or data center via wired or wireless means. The computer-readable storage medium can be any available medium accessible to a computer or a data storage device such as a server or data center integrating one or more available media. The available medium can be a magnetic medium, such as a floppy disk, hard disk, or magnetic tape; it can also be an optical medium, such as a digital video disc (DVD); or it can be a semiconductor medium, such as a solid-state drive (SSD).
[0250] Although this disclosure has been described in conjunction with specific features and embodiments, it will be apparent that various modifications and combinations can be made therein without departing from the spirit and scope of this disclosure. Accordingly, this specification and drawings are merely exemplary illustrations of the disclosure as defined by the appended claims and are to be considered as covering any and all modifications, variations, combinations, or equivalents within the scope of this disclosure. It is obvious that those skilled in the art can make various alterations and modifications to this disclosure without departing from its spirit and scope. Thus, this disclosure is also intended to include any such modifications and modifications that fall within the scope of the claims of this disclosure and their equivalents.
Claims
1. A user positioning method based on an assisted global satellite navigation system, characterized in that, The method includes: Obtain the user's terminal configuration information and the connection requests they send; Initial auxiliary data is determined based on the terminal configuration information, and the user's reference location is obtained based on the geographic region code in the connection request; the geographic region code is formed by converting three-dimensional coordinate information into one-dimensional character encoding. The initial auxiliary data is filtered based on the user reference position, the filtered initial auxiliary data is encoded to obtain the target auxiliary data, and the data is transmitted via the Ntrip protocol. The user terminal performs positioning calculations based on the target auxiliary data to obtain the user positioning result.
2. The method according to claim 1, characterized in that, The filtering of the initial auxiliary data based on the user reference location includes: Obtain satellite coordinates, and calculate the satellite-to-ground vector based on the user reference position and the satellite coordinates; The satellite elevation angle is obtained based on the user reference position; Visible satellites are selected based on the satellite elevation angle, and the initial auxiliary data corresponding to the visible satellites is obtained. The initial auxiliary data corresponding to the visible satellites is then determined as the selected initial auxiliary data.
3. The method according to claim 2, characterized in that, The process of filtering visible satellites based on the satellite elevation angle includes: Obtain the preset cutoff elevation angle; If the satellite elevation angle is greater than or equal to the cutoff elevation angle, the corresponding satellite is determined to be visible; If the satellite elevation angle is less than the cutoff elevation angle, the corresponding satellite is determined to be invisible.
4. The method according to claim 1, characterized in that, The encoding process for the filtered initial auxiliary data includes: The initial auxiliary data after filtering is encoded based on the RTCM protocol format; the RTCM protocol extends the message format for encoding ionospheric parameters, UTC time parameters and almanac data.
5. The method according to claim 4, characterized in that, The method further includes: The user terminal determines the auxiliary data type based on the terminal configuration information; The auxiliary data type and the geographic area code are encoded based on the RTCM protocol format.
6. The method according to claim 1, characterized in that, Obtaining the user's reference location based on the geographic region code in the connection request includes: Extract the user's geographic region code from the connection request; Based on the geographic region code, the corresponding latitude, longitude and elevation information are obtained from the pre-built geographic region coding library; The latitude, longitude, and elevation information are used as the user's reference location.
7. The method according to claim 6, characterized in that, The method further includes: Within the target geographic area, select multiple latitude and longitude points according to a preset step size; Obtain the elevation information corresponding to the multiple latitude and longitude points respectively, and combine the latitude and longitude information and elevation information corresponding to the multiple latitude and longitude points to form three-dimensional coordinate information; The geographic region coding library is constructed based on preset mapping rules and multiple three-dimensional coordinate information; the mapping rules represent the mapping relationship between three-dimensional coordinate information and geographic region codes.
8. A user positioning system based on an assisted global satellite navigation system, characterized in that, include: Gateway and authentication module, auxiliary data processing module, auxiliary data broadcasting module, and terminal; The gateway and authentication module are used to obtain connection requests sent by user terminals and complete the authentication process based on the connection requests. The auxiliary data processing module is used to determine initial auxiliary data based on the user's terminal configuration information and to obtain the user's reference location based on the geographic area code in the connection request. The geographic region code is formed by converting three-dimensional coordinate information into one-dimensional character encoding. The initial auxiliary data is filtered based on the user reference position to obtain filtered initial auxiliary data; The auxiliary data broadcasting module is used to encode the filtered initial auxiliary data according to the RTCM protocol format to obtain the target auxiliary data, and transmit the target auxiliary data to the terminal through the Ntrip protocol. The terminal is used to obtain the user's reference location based on the geographic area code in the connection request; The geographic area code is formed by converting three-dimensional coordinate information into one-dimensional character encoding; it is also used to perform positioning calculations based on the target auxiliary data to obtain user positioning results.
9. A computer device, comprising a memory, a processor, and a computer program stored in the memory, characterized in that, The processor executes the computer program to implement the method of claim 1.
10. A computer-readable storage medium having a computer program / instructions stored thereon, characterized in that, When the computer program / instruction is executed by the processor, it implements the method of claim 1.
11. A computer program product, comprising a computer program / instructions, characterized in that, When the computer program / instruction is executed by the processor, it implements the method of claim 1.