Method and device for analyzing and converting SDE.STGEOMETRY type data
By constructing an information structure to parse the point information and point set objects of type SDE.ST_GEOMETRY data, the target geometric data is directly generated, which solves the problem of complex operation in the existing technology and realizes efficient conversion without database connection.
Patent Information
- Application Number
- CN202511627497.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-11-07
- Publication Date
- 2026-03-03
AI Technical Summary
In existing technologies, SDE.ST_GEOMETRY type data can only be converted to a common format through a database interface during database migration, which is complex and impractical, and cannot be directly parsed and processed.
By constructing an information structure to store the original SDE.ST_GEOMETRY type data and parsing point information, point set objects, and entity parameters, the target geometric data can be directly generated without connecting to a database. The point information and point set objects in the information structure are used for conversion.
This allows for direct processing of SDE.ST_GEOMETRY type data without accessing an Oracle database, simplifying the conversion process and improving operational convenience and efficiency.
Smart Images

Figure CN121597749A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of database technology, and in particular to a method and apparatus for parsing and converting data of type SDE.ST_GEOMETRY. Background Technology
[0002] SDE.ST_GEOMETRY is a spatial data type used to store and manage geometric data in relational databases. It provides support for handling spatial data in various database management systems, such as Oracle.
[0003] In Oracle databases, the SDE.ST_GEOMETRY type represents spatial data created by ArcGIS within Oracle. When migrating databases involving SDE.ST_GEOMETRY type data, or when using multiple databases, it is necessary to adapt the data type, that is, to convert the SDE.ST_GEOMETRY type data to the geometric type data of another database.
[0004] However, the data stored in the SDE.ST_GEOMETRY type differs from the general format. Since it doesn't directly record point coordinates using floating-point numbers, its parsing method is unknown. Therefore, it can only be converted between database interfaces and common text (Well-Known Text, WKT) and common binary (Well-Known Binary, WKB) formats. Furthermore, using SDE.ST_GEOMETRY type data requires a database connection and calling the database interface for conversion, resulting in numerous usage conditions, complex operations, and poor practicality.
[0005] Therefore, overcoming the shortcomings of the existing technology is an urgent problem to be solved in this technical field. Summary of the Invention
[0006] The technical problem to be solved by the present invention is to provide a method and apparatus for parsing and converting SDE.ST_GEOMETRY type data. The purpose is to directly process SDE.ST_GEOMETRY type data by constructing and parsing an information structure, without the need for a database connection, thus solving the problem that SDE.ST_GEOMETRY type data can only be converted through a database interface and a general format.
[0007] The present invention adopts the following technical solution: In a first aspect, the present invention provides a method for parsing and converting data of type SDE.ST_GEOMETRY, including: The original data is stored using an information structure; wherein, the data type of the original data is SDE.ST_GEOMETRY. The target geometric data is obtained by parsing the point information, point set objects, and entity parameters in the information structure.
[0008] Furthermore, the step of parsing the point information, point set objects, and entity parameters in the information structure to obtain the target geometric data includes: Initialize the intermediate structure; Parse the variable-length address values in the point set object to obtain integer address values; convert the integer address values into original coordinate values according to the point information; update the intermediate structure with the original coordinate values; The object state is determined based on the point information and the point set object; the geometry type is determined according to the object state and the entity parameters; If the geometry type is a polygon or a polyline, then the element information, the number of points, and the target coordinate values are determined based on the updated intermediate structure to generate the target geometric data; otherwise, the updated intermediate structure is determined as the target geometric data.
[0009] Furthermore, determining the element information, the number of points, and the target coordinate values based on the updated intermediate structure includes: Obtain the original coordinate values from the updated intermediate structure; remove outliers from the original coordinate values, and segment the single-element objects according to the preset coordinate values to obtain the original information and the original number of elements, and update the original coordinate values. Based on the updated original coordinate values, determine if there are multiple duplicate point positions; if there are multiple duplicate point positions, add the original number to the number of duplicate point positions to obtain the total number of points. At least one ring is determined based on the positions of the multiple repeating points, and the number of points within each ring is determined; the original information is updated using the number of points within the ring to obtain element information; The original coordinate values are rearranged and updated according to the ring order in the element information to obtain the target coordinate values.
[0010] Furthermore, determining the updated intermediate structure as the target geometric data also includes: When the geometry type is a polygon, at least one repeating point position is determined according to the original coordinate values; When the repeating point position corresponds to multiple rings, calculate the direction of each ring corresponding to the repeating point position to determine the outer ring corresponding to the repeating point position; The original coordinate values are rearranged so that the set of points of the outer ring is located at the first preset number of positions, and the target geometric data is obtained based on the rearranged original coordinate values.
[0011] Furthermore, the step of parsing the variable-length address values in the point set object to obtain integer address values includes: Read each byte in the variable-length address value and determine the highest bit of the byte as a flag bit; The second-highest bit of the first byte in the variable-length address value is determined as the sign bit; When the flag bit is a valid flag value, continue reading the remaining part of the byte; When the flag bit is not a valid flag value, the intermediate address value is determined based on the remaining portion of all bytes that have been read; The sign of the intermediate address value is determined by the sign bit to obtain the integer address value.
[0012] Further, converting the integer address value into the original coordinate value according to the point information includes: Based on the data starting point of each coordinate axis in the integer address value and the point information, the original relationship corresponding to the coordinate axis is transformed to obtain the target relationship; the integer value corresponding to the coordinate axis is transformed using the target relationship to obtain the original coordinate value.
[0013] Furthermore, after parsing the point information, point set objects, and entity parameters in the information structure to obtain the target geometric data, the method further includes: Associate the target geometric data with the data in the target database; Create a data table in the target database; use the data table to store the target geometric data.
[0014] Furthermore, after parsing the point information, point set objects, and entity parameters in the information structure to obtain the target geometric data, the method further includes: The target geometry data is converted into data of type SDE.ST_GEOMETRY.
[0015] Secondly, the present invention also provides a parsing and conversion apparatus for SDE.ST_GEOMETRY type data, comprising: At least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor for performing the parsing and conversion method for SDE.ST_GEOMETRY type data as described in the first aspect.
[0016] Thirdly, the present invention also provides a non-volatile computer storage medium storing computer-executable instructions, which are executed by one or more processors to perform the parsing and conversion method for SDE.ST_GEOMETRY type data described in the first aspect.
[0017] Fourthly, a computer program product containing instructions is provided, which, when executed on a computer or processor, causes the computer or processor to perform a parsing and conversion method for data of type SDE.ST_GEOMETRY as described in the first aspect.
[0018] Fifthly, the present invention also provides a parsing and conversion system for SDE.ST_GEOMETRY type data, including a parsing and conversion device for SDE.ST_GEOMETRY type data as described in the second aspect, and using the parsing and conversion method for SDE.ST_GEOMETRY type data as described in the first aspect to complete the interaction with the parsing and conversion device for SDE.ST_GEOMETRY type data as described in the second aspect.
[0019] Unlike existing technologies, the present invention has at least the following beneficial effects: This invention creates an information structure for SDE.ST_GEOMETRY type data, so the information structure can be used directly to store SDE.ST_GEOMETRY type data without conversion. By parsing the point information, point set objects, and entity parameters in the information structure, the information in the SDE.ST_GEOMETRY type data can be converted, thereby enabling direct processing of SDE.ST_GEOMETRY type data without accessing the Oracle database and calling the database interface. Attached Figure Description
[0020] To more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings used in the embodiments of the present invention will be briefly described below. Obviously, the drawings described below are merely some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without any creative effort.
[0021] Figure 1 This is a flowchart illustrating a method for parsing and converting SDE.ST_GEOMETRY type data according to an embodiment of the present invention; Figure 2 This is a schematic diagram of the overall process of a conversion provided by an embodiment of the present invention; Figure 3 This is a flowchart illustrating step 20 provided in an embodiment of the present invention; Figure 4 This is a flowchart illustrating a specific example of parsing an information structure provided in an embodiment of the present invention; Figure 5 This is a schematic diagram of a variable-length address value conversion process provided in an embodiment of the present invention; Figure 6This is a flowchart illustrating a specific example of variable-length address value conversion provided in an embodiment of the present invention; Figure 7 This is a flowchart illustrating a process for determining element information, the number of points, and target coordinate values, provided by an embodiment of the present invention. Figure 8 This is a schematic diagram of a process for generating target geometric data of a polygon according to an embodiment of the present invention; Figure 9 This is a schematic diagram of a process using target geometric data provided in an embodiment of the present invention; Figure 10 This is a flowchart illustrating a specific example of a method for using target geometric data provided in an embodiment of the present invention; Figure 11 This is a schematic diagram of the architecture of a parsing and conversion device for SDE.ST_GEOMETRY type data provided in an embodiment of the present invention. Detailed Implementation
[0022] To make the objectives, technical solutions, and advantages of this invention clearer, the invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the invention.
[0023] Unless the context otherwise requires, throughout the specification and claims, the term "comprising" is interpreted as openly inclusive, meaning "including, but not limited to." In the description of the specification, terms such as "one embodiment," "some embodiments," "exemplary embodiment," "example," "specific example," or "some examples" are intended to indicate that a particular feature, structure, material, or characteristic associated with that embodiment or example is included in at least one embodiment or example of this disclosure. The illustrative representations of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics mentioned may be included in any suitable manner in any one or more embodiments or examples; that is, although they may be incorporated into embodiments or examples using the above terms for reasons such as order and position, it does not limit them to be incorporated in combination by a single embodiment or example.
[0024] In the description of this invention, it should be understood that the terms "center", "upper", "lower", "front", "rear", "left", "right", "vertical", "horizontal", "top", "bottom", "inner", "outer", etc., indicate the orientation or positional relationship based on the orientation or positional relationship shown in the accompanying drawings. They are only for the convenience of describing this disclosure and simplifying the description, and do not indicate or imply that the device or element referred to must have a specific orientation, or be constructed and operated in a specific orientation. Therefore, they should not be construed as limitations on this disclosure.
[0025] In the description of this invention, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of indicated technical features. Thus, a feature defined with "first" or "second" may explicitly or implicitly include one or more of that feature. In the description of embodiments of this disclosure, unless otherwise stated, "a plurality of" means two or more. Furthermore, for example, the description may use the prefix "A" or "B" to describe the same type of nouns as two independent entities. In this case, the corresponding features defined with "A" and "B" are used only to distinguish between similar entities and should not be construed as indicating or implying relative importance or implicitly specifying the number of indicated technical features.
[0026] In describing some embodiments, the terms "coupled," "coupled," and "connected," and their derivative expressions, may be used. For example, the term "connected" may be used in describing some embodiments to indicate that two or more components have direct physical or electrical contact with each other. Similarly, the term "coupled" may be used in describing some embodiments to indicate that two or more components have direct physical or electrical contact. However, the terms "connected" or "coupled" may also refer to two or more components that do not have direct contact with each other but still cooperate or interact with each other, such as "optical coupling," "wireless connection," etc. The embodiments disclosed herein are not necessarily limited to the scope of this invention.
[0027] In the description of this invention, the expression “A and / or B” (where A and B are used to formally represent specific features) will be used. The corresponding expression includes the following three combinations: only A, only B, and a combination of A and B.
[0028] As used in this invention, “about,” “approximately,” or “approximately” includes the stated value and the average value within an acceptable range of deviation from a particular value, wherein the acceptable range of deviation is determined by a person skilled in the art taking into account the measurement under discussion and the error associated with the measurement of the particular quantity (i.e., the limitations of the measurement system).
[0029] Furthermore, the technical features involved in the various embodiments of the present invention described below can be combined with each other as long as they do not conflict with each other.
[0030] Example 1: To solve the above problems, such as Figure 1 As shown, this embodiment of the invention provides a method for parsing and converting SDE.ST_GEOMETRY type data, including: Step 10: Store the original data using an information structure; wherein the data type of the original data is SDE.ST_GEOMETRY.
[0031] like Figure 2 As shown, when it is necessary to convert SDE.ST_GEOMETRY type data, an information structure is constructed to store the SDE.ST_GEOMETRY type data.
[0032] The following is a description of the SDE.ST_GEOMETRY data type: The SDE.ST_GEOMETRY data type is primarily used in Geographic Information System (GIS) environments to effectively represent various geographic entities, such as points, lines, and polygons. The SDE.ST_GEOMETRY type stores and manages geometric data including: points, lines, polygons, multi-points, multi-line, and multi-polygons. A multi-point is a set of multiple points, a multi-line is a set of multiple lines, and a multi-polygon is a set of multiple polygons. A polygon is a closed region formed by a series of sequentially arranged line segments connected end-to-end, used to represent planar figures with clear boundaries, such as lakes, islands, and administrative regions. A polygon is defined by a linear loop, and this loop must be closed and non-self-intersecting. A multi-polygon is a set of multiple polygons used to represent complex figures composed of multiple separate or adjacent polygons, such as an area formed by multiple connected plots of land. These polygons can be independent or adjacent, and together they constitute a complete geometric object.
[0033] In Oracle, the SDE.ST_GEOMETRY type data contains the following elements: ENTITY: Geometry type (such as points, lines, and surfaces).
[0034] NUMPTS: Number of coordinate points.
[0035] MINX, MAXX, MINY, MAXY: The bounding rectangle of the geometry.
[0036] POINTS: A sequence of coordinates stored in BLOB format.
[0037] SRID: Spatial Reference Frame ID, associated coordinate system information.
[0038] To store the above elements, embodiments of the present invention use an information structure `sde_info` to store data of type `SDE.ST_GEOMETRY`. In one embodiment, the type declaration of the information structure can be as follows: typedef struct { int entity; int srid; int numpoints; byte points; }sde_info; Here, `entity` is the entity parameter used to store the geometry type; `srid` is used to store the spatial reference frame ID; `numpoints` is the point information used to store the number of coordinate points; and `points` is a point set object used to store the coordinate sequence. The point set object is not simply point coordinates, but rather specially processed binary data including point coordinates and their arrangement; each element corresponds to a binary data address value.
[0039] Step 20: Parse the point information, point set objects, and entity parameters in the information structure to obtain the target geometric data.
[0040] The target geometric data is a structure; the structure and coordinates of the geometric object can be directly extracted from this structure for subsequent use.
[0041] This invention creates an information structure for SDE.ST_GEOMETRY type data, so the information structure can be used directly to store SDE.ST_GEOMETRY type data without conversion. By parsing the point information, point set objects, and entity parameters in the information structure, the information in the SDE.ST_GEOMETRY type data can be converted, thereby enabling direct processing of SDE.ST_GEOMETRY type data without accessing the Oracle database and calling the database interface.
[0042] The process of parsing the information structure will now be explained: like Figure 3 As shown, step 20 includes: Step 201: Initialize the intermediate structure.
[0043] This invention provides an sde_st_geometry type and a corresponding intermediate structure for information structures, used as an intermediate type to store SDE.ST_GEOMETRY type data (i.e., geometric objects) for subsequent conversion with other formats.
[0044] like Figure 4 As shown, an intermediate structure of type `sde_st_geometry` is first initialized. The values of the objects in this intermediate structure can be temporarily empty, and the values of each object in the intermediate structure will be updated later. In one embodiment, the type declaration of the intermediate structure can be as follows: typedef struct { int typeid; / / Used to store type ID int srid; / / Used to store the coordinate system int flags; / / Used to store whether there are flags for the Z-axis and M-axis. int numpoints; / / Used to store the number of points int elms; / / Used to store the number of elements and the number of element points double points; / / Used to store coordinate values }sde_st_geometry; Step 202: Parse the variable-length address values in the point set object to obtain integer address values; convert the integer address values into original coordinate values according to the point information; update the original coordinate values to the intermediate structure.
[0045] Because in the point set object of the information structure (i.e., the points object of sde_info), apart from the flag bits used to store whether the Z-axis and M-axis exist, the size of the binary stream related to the coordinate values and the storage sequence of the coordinate values are both stored using variable-length integer storage, it is necessary to parse the binary stream of variable-length integer data (i.e., variable-length address values) into integer data (i.e., integer address values). For example... Figure 4 As shown, the point set object is preprocessed by parsing the variable-length address values stored in the point set object into integer address values. After obtaining the integer address values, they need to be converted into coordinate values so that they can be used directly after conversion. The converted coordinate values are then updated to the initialized intermediate structure's points object.
[0046] Step 203: Determine the object state based on the point information and the point set object; determine the geometry type according to the object state and the entity parameters.
[0047] Among them, the object state refers to whether the geometric object corresponding to the original data is an empty geometric object or a non-empty geometric object.
[0048] Most spatial databases and formats support empty geometry objects with zero points; for example, in the WKT format, an empty geometry object can be represented as: wkt:point empty, and wkt:linestring empty.
[0049] To determine the state of an object, in one embodiment, such as Figure 2As shown, the point information of the information structure (i.e., the numpoints object of sde_info) represents the number of points contained in the geometric object. A point count of 0 indicates that the geometric object does not contain any points. The point set object of the information structure (i.e., the points object of sde_info) represents the coordinate values of the geometric object. A coordinate value of 0 indicates that the entity needs to be initialized.
[0050] The geometry type is determined based on the object state and entity parameters, and the initialized intermediate structure's typeid object is updated. The format used for the typeid object is selected by those skilled in the art based on the specific use case and is not limited here.
[0051] In one embodiment, when the typeid object of the intermediate structure stores the type ID in WKB format, since the type ID of the SDE.ST_GEOMETRY type data and the type ID in WKB format are both pre-planned, and the type IDs corresponding to empty geometric objects and non-empty geometric objects are inconsistent, a conversion is required: the geometric type of the geometric object is determined according to the correspondence between entity parameters and geometric types in Table 1.
[0052] Table 1 Relationship between Entity Parameters and Geometry Type
[0053] Specifically, based on the value corresponding to the entity parameter object, the geometry type and WKBID of the geometry object are determined, and the WKBID is updated to the typeid object of the initialized intermediate structure. For example, when the entity parameter is 4, the geometry type is point, indicating that the geometry object is a point, the corresponding WKBID is 1, and the value of the typeid object of the intermediate structure is updated to 1.
[0054] Step 204: If the geometry type is a polygon or a polyline, then determine the element information, number of points and target coordinate values based on the updated intermediate structure to generate the target geometry data; otherwise, determine the updated intermediate structure as the target geometry data.
[0055] like Figure 4 As shown, if the geometry type is polygonal or multiline, the element information, number of points, and target coordinate values are determined based on the updated intermediate structure to generate the target geometric data; if the geometry type is not polygonal or multiline, the updated intermediate structure is used as the target geometric data. The process of generating target geometric data for polygonal or multiline geometry will be explained below.
[0056] To illustrate the process of parsing a binary stream of variable-length integer data (i.e., variable-length address values) into integer data (i.e., integer address values), as follows: Figure 5As shown, in step 202, parsing the variable-length address values in the point set object to obtain integer address values includes: Step 2021: Read each byte in the variable-length address value and determine the highest bit of the byte as a flag bit.
[0057] Among them, variable-length address value is a type of binary data.
[0058] In one embodiment, the lower 7 bits of each byte in the variable-length address value are used to represent the binary format of the integer. The highest bit of each byte is a flag bit; a value of 1 for the first flag bit indicates that there are more bytes to follow, and a value of 0 for the first flag bit indicates the end (i.e., no more bytes to follow). For signed integers, a value of 1 for the second-highest bit of the first byte indicates that the integer address value is negative, and a value of 0 for the second-highest bit indicates that the integer address value is positive. Following this pattern, the variable-length address value is parsed byte by byte. A specific implementation of a process for parsing single integer data is as follows: Figure 6 As shown, specific examples will be used to illustrate this in the following text.
[0059] For example, when the variable-length address value is “11000000 10001001 00000001 00010010”, the variable-length address value includes four bytes, which are “11000000”, “10001001”, “00000001” and “00010010” in sequence; when reading the byte “11000000”, the highest bit is “1”, which is used as a flag bit.
[0060] Step 2022: Determine the second highest bit of the first byte in the variable-length address value as the sign bit.
[0061] In one embodiment, the valid flag value can be 1, which indicates that the next byte is valid, that is, there are more bytes to follow.
[0062] For example, when reading the byte "11000000", the second highest bit is "1", which is used as the sign bit.
[0063] Step 2023: When the flag bit is a valid flag value, continue reading the remaining part of the byte.
[0064] In one embodiment, the valid flag value can be 1, which indicates that the next byte is valid, that is, there are more bytes to follow.
[0065] Step 2024: When the flag bit is not a valid flag value, determine the intermediate address value based on the remaining part of all bytes that have been read.
[0066] The specific method can be selected by those skilled in the art based on the specific application scenario. In one optional embodiment, a variable can be set to accumulate the remaining part of each byte when it is read. When the flag bit of a byte is not a valid flag value, the current value of the variable is directly determined as the remaining part of all bytes to obtain the intermediate address value, thereby realizing the determination of the intermediate address value based on the remaining parts of all bytes that have been read.
[0067] For example, when the variable-length address value is "11000000 10001001 00000001 00010010", when the third byte "00000001" is read, since the highest bit of this byte is "0", indicating the end, meaning there are no subsequent bytes, all the bytes already read are "11000000", "10001001", and "00000001". The remaining part of all the bytes already read is "0b000000", "0b001001", and "0b000001". Here, "0b" is a binary prefix identifier used to indicate that the following number is in binary form; for example, "0b1010" represents the binary number 1010. The cumulative value of this byte is: 0 × 2^0 = 0.
[0068] Step 2025: Determine the positive or negative state of the intermediate address value according to the sign bit to obtain the integer address value.
[0069] When the sign bit is 1, the intermediate address value is determined to be negative; when the sign bit is 0, the intermediate address value is determined to be positive.
[0070] like Figure 6 As shown, in one embodiment, the data determined in the variable-length address value can be combined in a cumulative manner according to the following formula: V0 = V0 + V1 × 2^(7 × i - 1) to obtain the final integer address value. Where V0 is the cumulative value of all bytes currently read, and V1 is the value of the currently read byte.
[0071] Since most machines use little-endian storage, meaning the least significant byte (LSB) is stored at the lowest memory address and the most significant byte (MSB) is stored at the highest memory address, the binary stream is ordered in reverse chronological order. A specific example of a variable-length address value using this reverse ordering is as follows: 11000000 10001001 00000001 00010010 Specifically, according to such Figure 6A specific example of how to parse this variable-length address value is as follows: In the first loop, the first byte "11000000" is read, and the results are as follows: the 8th bit is 1, indicating that the value has not ended; the 7th bit is 1, indicating a negative number; the value of the first byte is 0b000000=0, indicating the 0th to 5th bits of the final value.
[0072] In the second loop, a byte "10001001" is read. The results show that the 8th bit is 1, indicating the value is not yet complete; the current byte value is 0b0001001 = 9, representing bits 6 to 12 of the final value. The cumulative value is 0 + 9 × 2^6 = 576.
[0073] In the third loop, a byte "00000001" is read. The results show that the 8th bit is 0, indicating the end of the loop and no further bytes are added. The current byte value is 0b0000001 = 1, representing bits 13 to 19 of the final value. The cumulative value is 576 + 1 × 2^13 = 8768.
[0074] like Figure 6 As shown, in one optional embodiment, the completion of reading can be determined based on the total number of bytes read to ensure complete processing of the variable-length address value. The size of the variable-length address value is pre-obtained; if the total number of bytes read is less than this size, the next byte is read; if the total number of bytes read is greater than or equal to this size, the reading is complete.
[0075] Combining the accumulated values from each of the above loops in ascending order yields 0b00000010001001000000, which is 8768. In an optional embodiment, in practice, the values are directly converted to positive numbers and multiplied by 2, and then added together to obtain the final value 8768.
[0076] Final value: -1 (first loop checks for sign) × 8768 = -8768 According to the embodiments of the present invention, parsing variable-length address values into integer address values allows the parsing method in step 20 to use the same set of logic processing, reducing the number of functions during encoding, simplifying operation, and making it easy to implement.
[0077] The following describes the process of converting integer address values to coordinate values when the geometry type is polygonal or polyline. In step 202, converting the integer address value to the original coordinate value according to the point information includes: Based on the data starting point of each coordinate axis in the integer address value and the point information, the original relationship corresponding to the coordinate axis is transformed to obtain the target relationship; the integer value corresponding to the coordinate axis is transformed using the target relationship to obtain the original coordinate value.
[0078] Each coordinate axis has a corresponding data starting point and original relationship. In this embodiment of the invention, the target relationship is obtained and used according to the original relationship of each coordinate axis.
[0079] In one embodiment, the first original relationship corresponding to the first coordinate axis is transformed according to the data starting point of the first coordinate axis in the integer address value to obtain the first target relationship; the integer value corresponding to the first coordinate axis is transformed using the first target relationship to obtain the first coordinate value, so as to obtain the original coordinate value according to the first coordinate value. The first coordinate axis and its corresponding data starting point are determined by those skilled in the art based on the specific application scenario; in one embodiment, the first coordinate axis can be the X-axis and Y-axis; according to the format of SDE.ST_GEOMETRY type data, the data starting point of both the X-axis and Y-axis is -400, let z0=m0=-100000. The following will describe the first original relationship, the first target relationship, and the corresponding process with specific examples.
[0080] When the integer address value has a second coordinate, the second original relationship corresponding to the second coordinate axis is transformed according to the data starting point of the second coordinate axis in the integer address value and the point information to obtain the second target relationship; the integer value corresponding to the second coordinate axis is transformed using the second target relationship to obtain the second coordinate value, so as to obtain the original coordinate value according to the first coordinate value and the second coordinate value. The second coordinate axis and its corresponding data starting point are determined by those skilled in the art based on the specific application scenario; in one embodiment, the second coordinate axis can be the Z-axis and the M-axis; according to the format of SDE.ST_GEOMETRY type data, the data starting point of both the Z-axis and the M-axis is -100000. The following will describe the second original relationship, the second target relationship, and the corresponding process with specific examples.
[0081] For example, when the integer address value is a set of integer arrays [i1,i2,i3,…] and the corresponding geometric object uses X-axis, Y-axis, Z-axis, and M-axis, the point coordinates of the corresponding geometric object are [(x1,y1,z1,m1),(x2,y2,z2,m2),…], the number of points is n, the i value is the double value converted from a positive number stored in the points object, and x1, y1, z1, and m1, as well as x2, y2, z2, and m2 are the actual coordinate values. The first primitive relationship is: for each point coordinate, the relationship between the i value and the data starting point of the X-axis or Y-axis. For example, the relationship between the i value and the data starting point of the X-axis can be "i1=(x1–(-400))×109"; the second primitive relationship is: for each point coordinate, the relationship between the i value, point information (i.e., the numpoints object), and the data starting point of the Z-axis or M-axis. For example, the relationship between the i value, point information (i.e., the numpoints object), and the data starting point of the Z-axis can be " Based on the first and second primitive relations inherent in the SDE.ST_GEOMETRY type data itself, the relationship between the integer array I and the geometric object is as follows: ; ; ; ; … =(xn-xn-1)×109; =(yn-yn-1)×109; =(z1-(-100000))×104; =(z2-z1)×104; … ; ; ; … ; For the X-axis, based on the data starting point of the first coordinate axis in the integer address values, the first original relation corresponding to the first coordinate axis is transformed to obtain the first target relation, that is: let x0=-400, after transformation, the first target relation of the X-axis is "xi=(xi-1+i2×i-1)×10-9". For the Y-axis, that is: let y0=-400, after transformation, the first target relation of the Y-axis is "yi=(yi-1+i2×i)×10-9".
[0082] For the Z-axis, since the integer address value has a second coordinate, the second original relationship corresponding to the second coordinate axis is transformed according to the data start point and point information of the second coordinate axis in the integer address value to obtain the second target relationship. That is, let z0 = -100000, after transformation, we get the second target relationship of the Z-axis "zi = (zi-1 + i2 × numpoints + i) × 10-4". For the M-axis, let m0 = -100000, after transformation, we get the second target relationship of the M-axis "mi = (mi-1 + i3 × numpoints + i) × 10-4".
[0083] After obtaining the first and second target relationships for the X, Y, Z, and M axes, for the X and Y axes, the corresponding integer values of the first coordinate axes are transformed using the corresponding first target relationships to obtain the first coordinate values; for the Z and M axes, the corresponding integer values of the second coordinate axes are transformed using the corresponding second target relationships to obtain the second coordinate values; and then the original coordinate values are obtained according to the first and second coordinate values.
[0084] It should be noted that a geometric object must contain an X-axis and a Y-axis, but not necessarily a Z-axis and a M-axis; when a geometric object only contains an X-axis, a Y-axis, and an M-axis, the integer value corresponding to the M-axis will replace the integer value corresponding to the Z-axis.
[0085] In the SDE.ST_GEOMETRY data type, polygons and polygons can contain inner and outer rings, and these rings cannot intersect or overlap. Together, they define the shape and boundaries of the geometric object. The outer ring is the outermost boundary of the polygon, defining its overall extent and shape. The outer ring must be a closed linear loop and cannot self-intersect. An inner ring is one or more closed linear loops within the polygon; it must be completely contained within the outer ring, and inner rings cannot overlap or intersect each other. For example, when using a polygon to represent a country and its multiple inland lakes, the outer ring represents the country's boundaries, and the inner rings represent the boundaries of the individual lakes.
[0086] Each polygon in a polygon can include outer and inner loops, defined in the same way as the outer and inner loops in a single polygon. A polygon as a whole consists of multiple outer loops and their corresponding inner loops. These outer loops define the boundaries of multiple independent polygons, while the inner loops further define specific internal regions within the outer boundaries.
[0087] Since the SDE.ST_GEOMETRY data type does not store the number of points in each ring or line, there is an additional dividing point between polygons in a multi-polygon and between lines in a multi-line. For multi-polygon and multi-line types, when the point coordinates are represented as (xi,yi,zi,mi), and the value of xi is less than -400, it indicates that the point is a dividing point between single-element objects. In this case, for the X-axis, the first target relationship is "xi+1=(-400+i2×i+1)×10-9". Correspondingly, the calculation of the first target relationship yi+1 for the Y-axis, the second target relationship zi+1 for the Z-axis, and the second target relationship mi+1 for the M-axis is similar. The following text will perform the segmentation calculation according to the corresponding target relationship.
[0088] Next, when the geometry type is polygonal or multiline, such as Figure 7 As shown, in step 204, determining the element information, number of points, and target coordinate values based on the updated intermediate structure includes: Step 2041a: Obtain the original coordinate values from the updated intermediate structure; remove outliers from the original coordinate values, and divide the single-element objects according to the preset coordinate values to obtain the original information and the original number, and update the original coordinate values.
[0089] The preset coordinate values are determined by those skilled in the art based on the specific application scenario. In one embodiment, the preset coordinate values can be the coordinate values corresponding to the X-axis values less than -400. Outliers are extreme values. For segmenting polygons and lines, removing extreme values can prevent incorrect shapes or topologies in the segmented geometric objects due to abnormal coordinate values, ensuring that the segmented geometric objects more accurately reflect the actual characteristics of the geographic objects. For example, in road network data represented by multiple lines, if there is an extreme coordinate value, it often causes unreasonable bends or breaks in the road lines at certain locations, affecting the correct analysis of the road network.
[0090] Since these segmentation points are not needed in the target geometric data, and other formats do not store them, it is necessary to handle redundant segmentation points in multi-line or multi-polygon data. In one embodiment, for multi-line or multi-polygon data, the coordinates of the points (x, y, z, m) used to segment single-element geometric objects are (-400.000000001, -400.000000000, -1000000000, -1000000000).
[0091] The original information refers to the number of elements and the number of element points stored in the elms object of the intermediate structure during the parsing of the information structure. The original count refers to the number of points stored in the numpoints object of the intermediate structure during the parsing of the information structure.
[0092] In geospatial data, a single-element object represents a single, indivisible geometric entity; for example, a single-element polygon object can represent a single lake, while a single-element line object can represent a single road. In contrast, multi-element objects, such as a multi-polygon which is a collection of multiple single polygons, and a multi-line which is a collection of multiple lines, represent different elements.
[0093] To simplify the data structure and facilitate subsequent analysis and processing when segmenting polygons and lines, this embodiment of the invention divides them into single-element objects. For example, for a complex river network represented by a multi-line object, segmenting it into single-element line objects allows for separate length calculations and flow direction analysis for each river segment without interference from other line segments. Furthermore, segmenting into single-element objects also improves data readability and visualization; for instance, in map drawing, each single-element object can be rendered individually, making the map clearer and easier to understand.
[0094] For polygons and lines, segmentation calculations are performed according to the first target relationship on the X and Y axes, and the second target relationship on the Z and M axes, as follows: For example, the initial coordinates of a ring are (0 1, 0 0, 1 0, 0 1). In two-dimensional space, each coordinate point consists of two values, representing its position on the X and Y axes. For instance, "0 1" indicates a point with an X-coordinate of 0 and a Y-coordinate of 1; "0 0" indicates a point with both X and Y coordinates of 0. When describing polygons or polygons, these coordinate points are arranged sequentially to form corresponding boundaries; for example, the initial coordinates (0 1, 0 0, 1 0, 0 1) define a triangle, where the last point is the same as the first, used to close the shape.
[0095] The updated original coordinate values are calculated sequentially using the value of i, as follows: Ring 1: x1 = -400 + i1 = -400 + 400 = 0 x2 = x1 + i3 = 0 + 0 = 0 x3 = x2 + i5 = 0 + 1 = 1 x4 = x3 + i7 = 1 - 1 = 0 Since x4 is less than -400, this indicates that the value is a preset coordinate value and does not belong to any cycle, so it needs to be discarded. x4=x3+i9=0-400.000001=-400.000001 To enable the rapid determination of the number and position of points for each element when the final target geometric data is subsequently converted to other formats as needed, this embodiment of the invention directly places coordinate values based on the number of points, storing the element count information and sub-point element count information for polygons, polylines, and multi-polygons. The number of elements and element points is stored using an elms object in an intermediate structure; in one embodiment, the elms object can store data in the form of array elements, according to the following rules: When typeid represents a point, line, or multiple points, elms has one and only one data point, representing the number of points in the current geometry object.
[0096] When typeid represents a polygon or polyline, the first element of elms indicates the number of elements contained therein. When n is used to represent the number of elements, the second to n+1 elements represent the number of points in each element.
[0097] When typeid represents a multi-polygon, the first element of elms indicates the number of polygons contained. When m is used to represent the number of polygons, the second to m+1 elements represent the number of rings in each polygon, and the m+2 elements and so on represent the number of points in each ring.
[0098] When the object state is an empty geometry object, the elms and points elements are empty (i.e., NULL).
[0099] The `points` object records the coordinates of each point in sequence. The coordinate dimensions of the geometric object are calculated from the `flag` marker in the intermediate structure. Based on the value `dim` of this coordinate dimension, each `dim` element represents a point, which are the X-axis, Y-axis, Z-axis, and M-axis in sequence. The Z-axis and M-axis may not exist.
[0100] For example, the coordinates of the points of the polygons are 2, 1, 3, 4, 4, 5, 6; m=2; then elms[0] is 2, indicating two polygons; elms[1] is 1, indicating the first polygon has 1 loop; elms[2] is 3, indicating the second polygon has 3 loops; elms[3] is 4, indicating the first loop of the first polygon has 4 points; elms[4] is 4, indicating the first loop of the second polygon has 4 points; elms[5] is 5, indicating the second loop of the second polygon has 5 points; elms[6] is 6, indicating the third loop of the second polygon has 6 points.
[0101] Step 2042a: Based on the updated original coordinate values, determine whether there are multiple duplicate point positions; if there are multiple duplicate point positions, add the original number to the multiple duplicate point positions to obtain the number of points.
[0102] like Figure 4 As shown, confirm the position of the duplicate points for each point; if there are multiple duplicate points, the corresponding number and position of duplicate points need to be added to the original number (i.e., the points object of the intermediate structure), and the original number (i.e., the numpoints object of the intermediate structure before the update) is updated to get the number of points (i.e., the numpoints object of the intermediate structure after the update).
[0103] Step 2043a: Determine at least one ring based on the positions of the multiple repeating points, and determine the number of points within each ring; update the original information using the number of points within the ring to obtain element information.
[0104] Determine the number of rings and points within each ring. Based on the determination result, update the original information (i.e., record it in the elms object in the intermediate structure) with the number of points in each ring to obtain the element information.
[0105] It's important to note that point P is the starting point of a polygonal ring. A simple polygonal ring consists of a series of non-repeating points, with the last point repeating the starting point P to close the polygon. Normally, when traversing the ring's point sequence starting from point P until encountering a repeating point P1 (i.e., returning to the starting point P), all vertices on the ring are visited sequentially, allowing us to count the number of points on the ring and the range of points within it. However, in some complex cases, there may be other repeating points in the ring's point sequence. Between these repeating points, there may be redundant or incorrect points, which can affect the correct identification of the ring and the counting of points. If an internal repeating point A is encountered during the traversal, all points between repeating point A and its repeating point A1 must be skipped. For example, in the ring [P(0,1),A(0,0),A1(0,0),(1,0),P1(0,1)], when a duplicate point A is encountered, if the next point A1 is found to be a duplicate of the duplicate point A, then the points between the duplicate point A and point A1 are skipped (it should be noted that there are no other points in this example, but if there are extra points, they will also be skipped), and the loop continues to traverse the subsequent points P1(1,0) directly from point A1. This avoids including incorrect or redundant points in the ring's statistics.
[0106] Step 2044a: Rearrange the updated original coordinate values according to the ring order in the element information to obtain the target coordinate values.
[0107] Rearrange the points objects in the intermediate structure so that the data they store (i.e., the updated original coordinate values) is in the same ring order as the element information (i.e., the elms objects in the intermediate structure) to obtain the target coordinate values.
[0108] In a polygon or polygon, the first point P0 in the points object is always the bottom-left corner of the outer ring (i.e., x-axis position takes precedence). However, when there are multiple rings (r0, r1, ...) with the same point P, the outer ring ex-r is not necessarily the first ring r0. The inner and outer rings of a polygon may have a common point, that is, there is a common point that is the starting point of the outer ring; in this case, the first ring stored may not be the outer ring.
[0109] Since, after obtaining the target geometric data, for other formats that may need to be converted later, the first loop is generally stored as the outer loop, or the outer loop is specially marked. Therefore, in order to handle the situation where the inner and outer loops of polygons or polygons have common points, it is necessary to find the outer loop. For polygons or polygons, when determining the updated intermediate structure as the target geometric data according to step 204, the following steps are also required: like Figure 8 As shown, in step 204, determining the updated intermediate structure as the target geometric data further includes: Step 2041b: When the geometry type is a polygon, determine the position of at least one repeating point according to the original coordinate values.
[0110] Step 2042b: When the repeating point position corresponds to multiple rings, calculate the direction of each ring corresponding to the repeating point position to determine the outer ring corresponding to the repeating point position.
[0111] Step 2043b: Rearrange the original coordinate values so that the set of points of the outer ring is located at the first preset number of positions, and obtain the target geometric data based on the rearranged original coordinate values.
[0112] In this embodiment of the invention, the position of the outer ring is determined by calculating the direction of the ring, and the point set of the ring is placed at the beginning of the points object of the intermediate structure. The processing method for multi-polygons follows the same principle and will not be described in detail here.
[0113] When the original database needs to interact with multiple target databases of different data types, the original data needs to be frequently converted into different data types. After obtaining the target geometric data according to the method of this invention, when further data conversion is required, since the target geometric data is a structure, it can be used as an intermediate variable for geometric data type conversion. The method for converting the target geometric data from the intermediate structure to other formats or structures is selected by those skilled in the art based on the specific application scenario and is not limited here. The geometric object structure and coordinates can be directly extracted from this intermediate structure, thereby enabling the implementation of some functions that cannot be achieved through direct conversion at the C language level. It eliminates the need to convert the geometric object to a general format via an Oracle database, allowing for faster conversion to the required format or structure, such as the lwgeom type in libgeom.dll.
[0114] Example 2: The application scenario of the SDE.ST_GEOMETRY type data parsing and conversion method in Embodiment 1 of this invention can be as follows: the target database needs to interact with the original database, wherein the original database is an Oracle database; therefore, it is necessary to write the original data of type SDE.ST_GEOMETRY in the original database to the target database. In this scenario, after obtaining the target geometric data according to the method in Embodiment 1, the following operations are also required: Figure 9 As shown, after parsing the point information, point set objects, and entity parameters in the information structure to obtain the target geometric data, the method further includes: Step 301: Associate the target geometric data with the data in the target database.
[0115] In this embodiment, the original data is converted according to Example 1; the original data is the data in the original database.
[0116] Step 302: Create a data table in the target database; use the data table to store the target geometric data.
[0117] like Figure 10 As shown, after obtaining the target geometric data through the first transformation, the target geometric data is associated with the data in the target database, and the target geometric data is placed in a table in the target database. Whenever the data in the target database changes, the data in this table is updated accordingly.
[0118] In one optional embodiment, the target geometric data can be processed as needed to convert it into the type required by the target database; then the converted data is stored in the target database. For example, when the data type in the target database is lwgeom, in order to avoid calling the database interface of the original database and improve the conversion speed, the method of Embodiment 1 of the present invention is first used to convert the original data into target geometric data, then the target geometric data is converted into lwgeom type data and written to the target database.
[0119] In practical applications, it is often necessary to fine-tune the raw data in the original database multiple times. For example, when the original database is for GIS applications, the raw data usually comes from multiple different sources, such as satellite remote sensing data, field measurement data, and different map service providers. These data from different sources may differ in geometric accuracy, coordinate systems, and data formats. In order to integrate these multi-source data into a unified database for analysis and application, it is often necessary to fine-tune the original data to ensure consistency in geometric representation; for example, when integrating map data of different scales, it is necessary to scale, translate, and perform other operations on the geometry of the data.
[0120] In one embodiment, after parsing the point information, point set objects, and entity parameters in the information structure to obtain the target geometric data, the method further includes: The target geometry data is converted into data of type SDE.ST_GEOMETRY.
[0121] The method for converting the target geometric data back to SDE.ST_GEOMETRY type data is determined by those skilled in the art based on the operation steps of Embodiment 1 of the present invention, and will not be described in detail here.
[0122] In situations where multiple fine-tunings of the original data are required, the conversion between the SDE.ST_GEOMETRY type data in the original database and the target geometric data does not require accessing the original database or performing the conversion through a database interface. Therefore, the operation is simple, fast, and highly practical, greatly reducing the time required for geometric data type conversion.
[0123] Example 3: like Figure 11 The diagram shown is an architectural schematic of a parsing and conversion device for SDE.ST_GEOMETRY type data according to an embodiment of the present invention. The parsing and conversion device for SDE.ST_GEOMETRY type data in this embodiment includes one or more processors 21 and a memory 22. Figure 11 Take a processor 21 as an example.
[0124] Processor 21 and memory 22 can be connected via a bus or other means. Figure 11 Taking the example of a connection between China and Israel via a bus.
[0125] The memory 22, as a non-volatile computer-readable storage medium, can be used to store non-volatile software programs and non-volatile computer-executable programs, such as the parsing and conversion method for SDE.ST_GEOMETRY type data in this embodiment. The processor 21 executes the parsing and conversion method for SDE.ST_GEOMETRY type data by running the non-volatile software program and instructions stored in the memory 22.
[0126] Memory 22 may include high-speed random access memory, and may also include non-volatile memory, such as at least one disk storage device, flash memory device, or other non-volatile solid-state storage device. In some embodiments, memory 22 may optionally include memory remotely located relative to processor 21, which can be connected to processor 21 via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.
[0127] The program instructions / modules are stored in the memory 22. When executed by one or more processors 21, they execute the parsing and conversion method for SDE.ST_GEOMETRY type data in the above embodiments. For example, they execute each step of the parsing and conversion method for SDE.ST_GEOMETRY type data in the embodiments of the present invention described above.
[0128] This invention also provides a non-volatile computer storage medium storing computer-executable instructions that are executed by one or more processors, for example... Figure 11A processor 21 can enable one or more processors to execute the parsing and conversion method for SDE.ST_GEOMETRY type data in the specific embodiments of the present invention, for example, to execute each step of the parsing and conversion method for SDE.ST_GEOMETRY type data described in the embodiments of the present invention above; it can also implement Figure 11 The various modules and units described above; or the parsing and conversion method for SDE.ST_GEOMETRY type data in the specific embodiments of the present invention, for example, executing the various steps of the parsing and conversion method for SDE.ST_GEOMETRY type data in the embodiments of the present invention described above; can also be implemented. Figure 11 The various modules and units mentioned above.
[0129] It is worth noting that the information interaction and execution process between the modules and units in the above-mentioned device and system are based on the same concept as the processing method embodiment of the present invention. For details, please refer to the description in the method embodiment of the present invention, and will not be repeated here.
[0130] Those skilled in the art will understand that all or part of the steps in the various methods of the embodiments can be implemented by a program instructing related hardware. The program can be stored in a computer-readable storage medium, which may include: read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk, etc.
[0131] The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of the present invention should be included within the protection scope of the present invention.
Claims
1. A method for parsing and converting data of type SDE.ST_GEOMETRY, characterized in that, include: The original data is stored using an information structure; wherein, the data type of the original data is SDE.ST_GEOMETRY. The target geometric data is obtained by parsing the point information, point set objects, and entity parameters in the information structure.
2. The parsing and conversion method for SDE.ST_GEOMETRY type data according to claim 1, characterized in that, The method includes: Initialize the intermediate structure; Parse the variable-length address values in the point set object to obtain integer address values; convert the integer address values into original coordinate values according to the point information; update the intermediate structure with the original coordinate values; The object state is determined based on the point information and the point set object; the geometry type is determined according to the object state and the entity parameters; If the geometry type is a polygon or a polyline, then the element information, the number of points, and the target coordinate values are determined based on the updated intermediate structure to generate the target geometric data; otherwise, the updated intermediate structure is determined as the target geometric data.
3. The parsing and conversion method for SDE.ST_GEOMETRY type data according to claim 2, characterized in that, The method includes: Obtain the original coordinate values from the updated intermediate structure; remove outliers from the original coordinate values, and segment the single-element objects according to the preset coordinate values to obtain the original information and the original number of elements, and update the original coordinate values. Based on the updated original coordinate values, determine if there are multiple duplicate point positions; if there are multiple duplicate point positions, add the original number to the number of duplicate point positions to obtain the total number of points. At least one ring is determined based on the positions of the multiple repeating points, and the number of points within each ring is determined; the original information is updated using the number of points within the ring to obtain element information; The original coordinate values are rearranged and updated according to the ring order in the element information to obtain the target coordinate values.
4. The parsing and conversion method for SDE.ST_GEOMETRY type data according to claim 2, characterized in that, The method further includes: When the geometry type is a polygon, at least one repeating point position is determined according to the original coordinate values; When the repeating point position corresponds to multiple rings, calculate the direction of each ring corresponding to the repeating point position to determine the outer ring corresponding to the repeating point position; The original coordinate values are rearranged so that the set of points of the outer ring is located at the first preset number of positions, and the target geometric data is obtained based on the rearranged original coordinate values.
5. The parsing and conversion method for SDE.ST_GEOMETRY type data according to claim 2, characterized in that, The method includes: Read each byte in the variable-length address value and determine the highest bit of the byte as a flag bit; The second-highest bit of the first byte in the variable-length address value is determined as the sign bit; When the flag bit is a valid flag value, continue reading the remaining part of the byte; When the flag bit is not a valid flag value, the intermediate address value is determined based on the remaining portion of all bytes that have been read; The sign of the intermediate address value is determined by the sign bit to obtain the integer address value.
6. The parsing and conversion method for SDE.ST_GEOMETRY type data according to claim 5, characterized in that, The method includes: Based on the data starting point of each coordinate axis in the integer address value and the point information, the original relationship corresponding to the coordinate axis is transformed to obtain the target relationship; the integer value corresponding to the coordinate axis is transformed using the target relationship to obtain the original coordinate value.
7. The parsing and conversion method for SDE.ST_GEOMETRY type data according to any one of claims 1-6, characterized in that, The method further includes: Associate the target geometric data with the data in the target database; Create a data table in the target database; use the data table to store the target geometric data.
8. The parsing and conversion method for SDE.ST_GEOMETRY type data according to any one of claims 1-6, characterized in that, The method further includes: The target geometry data is converted into data of type SDE.ST_GEOMETRY.
9. A parsing and conversion device for SDE.ST_GEOMETRY type data, characterized in that, The parsing and conversion device for SDE.ST_GEOMETRY type data includes at least one processor and a memory, which are connected via a data bus. The memory stores instructions that can be executed by the at least one processor. After being executed by the processor, the instructions are used to implement the parsing and conversion method for SDE.ST_GEOMETRY type data as described in any one of claims 1-8.
10. A non-volatile computer storage medium, characterized in that, The computer storage medium stores computer-executable instructions, which are executed by one or more processors to perform the parsing and conversion method for SDE.ST_GEOMETRY type data as described in any one of claims 1-8.