@@ -66,55 +66,7 @@ RowDataPacket.prototype._typeCast = function(field, parser) {
66
66
? parser . parseLengthCodedBuffer ( )
67
67
: parser . parseLengthCodedString ( ) ;
68
68
case Types . GEOMETRY :
69
- var buffer = parser . parseLengthCodedBuffer ( ) ;
70
- var offset = 4 ;
71
- function parseGeometry ( ) {
72
- var result = null ;
73
- var byteOrder = buffer . readUInt8 ( offset ) ; offset += 1 ;
74
- var wkbType = byteOrder ? buffer . readUInt32LE ( offset ) : buffer . readUInt32BE ( offset ) ; offset += 4 ;
75
- switch ( wkbType ) {
76
- case 1 : // WKBPoint
77
- var x = byteOrder ? buffer . readDoubleLE ( offset ) : buffer . readDoubleBE ( offset ) ; offset += 8 ;
78
- var y = byteOrder ? buffer . readDoubleLE ( offset ) : buffer . readDoubleBE ( offset ) ; offset += 8 ;
79
- result = { x : x , y : y } ;
80
- break ;
81
- case 2 : // WKBLineString
82
- var numPoints = byteOrder ? buffer . readUInt32LE ( offset ) : buffer . readUInt32BE ( offset ) ; offset += 4 ;
83
- result = [ ] ;
84
- for ( var i = numPoints ; i > 0 ; i -- ) {
85
- var x = byteOrder ? buffer . readDoubleLE ( offset ) : buffer . readDoubleBE ( offset ) ; offset += 8 ;
86
- var y = byteOrder ? buffer . readDoubleLE ( offset ) : buffer . readDoubleBE ( offset ) ; offset += 8 ;
87
- result . push ( { x : x , y : y } ) ;
88
- }
89
- break ;
90
- case 3 : // WKBPolygon
91
- var numRings = byteOrder ? buffer . readUInt32LE ( offset ) : buffer . readUInt32BE ( offset ) ; offset += 4 ;
92
- result = [ ] ;
93
- for ( var i = numRings ; i > 0 ; i -- ) {
94
- var numPoints = byteOrder ? buffer . readUInt32LE ( offset ) : buffer . readUInt32BE ( offset ) ; offset += 4 ;
95
- var line = [ ] ;
96
- for ( var j = numPoints ; j > 0 ; j -- ) {
97
- var x = byteOrder ? buffer . readDoubleLE ( offset ) : buffer . readDoubleBE ( offset ) ; offset += 8 ;
98
- var y = byteOrder ? buffer . readDoubleLE ( offset ) : buffer . readDoubleBE ( offset ) ; offset += 8 ;
99
- line . push ( { x : x , y : y } ) ;
100
- }
101
- result . push ( line ) ;
102
- }
103
- break ;
104
- case 4 : // WKBMultiPoint
105
- case 5 : // WKBMultiLineString
106
- case 6 : // WKBMultiPolygon
107
- case 7 : // WKBGeometryCollection
108
- var num = byteOrder ? buffer . readUInt32LE ( offset ) : buffer . readUInt32BE ( offset ) ; offset += 4 ;
109
- var result = [ ] ;
110
- for ( var i = num ; i > 0 ; i -- ) {
111
- result . push ( parseGeometry ( ) ) ;
112
- }
113
- break ;
114
- }
115
- return result ;
116
- }
117
- return parseGeometry ( ) ;
69
+ return parser . parseGeometryValue ( ) ;
118
70
default :
119
71
return parser . parseLengthCodedString ( ) ;
120
72
}
0 commit comments