mirror of
https://github.com/bitechdev/ResolveSpec.git
synced 2026-08-30 04:52:35 +00:00
fix(wkb): simplify loop indexing in geometry reading functions
This commit is contained in:
+10
-10
@@ -219,20 +219,20 @@ func readGeom(r *wkbReader) (geom, int, error) {
|
|||||||
switch baseType {
|
switch baseType {
|
||||||
case 4:
|
case 4:
|
||||||
pts := make([][]float64, len(parts))
|
pts := make([][]float64, len(parts))
|
||||||
for i, p := range parts {
|
for i := range parts {
|
||||||
pts[i] = p.coord
|
pts[i] = parts[i].coord
|
||||||
}
|
}
|
||||||
return geom{typ: "MultiPoint", line: pts}, srid, nil
|
return geom{typ: "MultiPoint", line: pts}, srid, nil
|
||||||
case 5:
|
case 5:
|
||||||
lines := make([][][]float64, len(parts))
|
lines := make([][][]float64, len(parts))
|
||||||
for i, p := range parts {
|
for i := range parts {
|
||||||
lines[i] = p.line
|
lines[i] = parts[i].line
|
||||||
}
|
}
|
||||||
return geom{typ: "MultiLineString", poly: lines}, srid, nil
|
return geom{typ: "MultiLineString", poly: lines}, srid, nil
|
||||||
default:
|
default:
|
||||||
polys := make([][][][]float64, len(parts))
|
polys := make([][][][]float64, len(parts))
|
||||||
for i, p := range parts {
|
for i := range parts {
|
||||||
polys[i] = p.poly
|
polys[i] = parts[i].poly
|
||||||
}
|
}
|
||||||
return geom{typ: "MultiPolygon", multi: polys}, srid, nil
|
return geom{typ: "MultiPolygon", multi: polys}, srid, nil
|
||||||
}
|
}
|
||||||
@@ -284,8 +284,8 @@ func geomToGeoJSONStruct(g geom) (geoJSON, error) {
|
|||||||
coords = g.multi
|
coords = g.multi
|
||||||
case "GeometryCollection":
|
case "GeometryCollection":
|
||||||
subs := make([]geoJSON, len(g.geoms))
|
subs := make([]geoJSON, len(g.geoms))
|
||||||
for i, sub := range g.geoms {
|
for i := range g.geoms {
|
||||||
s, err := geomToGeoJSONStruct(sub)
|
s, err := geomToGeoJSONStruct(g.geoms[i])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return geoJSON{}, err
|
return geoJSON{}, err
|
||||||
}
|
}
|
||||||
@@ -683,8 +683,8 @@ func geomToWKT(g geom) (string, error) {
|
|||||||
return "MULTIPOLYGON (" + strings.Join(parts, ", ") + ")", nil
|
return "MULTIPOLYGON (" + strings.Join(parts, ", ") + ")", nil
|
||||||
case "GeometryCollection":
|
case "GeometryCollection":
|
||||||
parts := make([]string, len(g.geoms))
|
parts := make([]string, len(g.geoms))
|
||||||
for i, sub := range g.geoms {
|
for i := range g.geoms {
|
||||||
w, err := geomToWKT(sub)
|
w, err := geomToWKT(g.geoms[i])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user