@@ -21,16 +21,9 @@ fn create_array_metadata(crs: Option<CRS>) -> Arc<ArrayMetadata> {
2121#[ pyo3( signature = ( coords, * , crs = None ) ) ]
2222pub fn points ( coords : PyCoordBuffer , crs : Option < CRS > ) -> PyGeoArrowResult < PyNativeArray > {
2323 let metadata = create_array_metadata ( crs) ;
24- match coords {
25- PyCoordBuffer :: TwoD ( coords) => {
26- let array = PointArray :: new ( coords, None , metadata) ;
27- Ok ( PyNativeArray :: new ( NativeArrayDyn :: new ( Arc :: new ( array) ) ) )
28- }
29- PyCoordBuffer :: ThreeD ( coords) => {
30- let array = PointArray :: new ( coords, None , metadata) ;
31- Ok ( PyNativeArray :: new ( NativeArrayDyn :: new ( Arc :: new ( array) ) ) )
32- }
33- }
24+ // TODO: remove const generic
25+ let array = PointArray :: < 2 > :: new ( coords. into_inner ( ) , None , metadata) ;
26+ Ok ( PyNativeArray :: new ( NativeArrayDyn :: new ( Arc :: new ( array) ) ) )
3427}
3528
3629#[ pyfunction]
@@ -41,16 +34,14 @@ pub fn linestrings(
4134 crs : Option < CRS > ,
4235) -> PyGeoArrowResult < PyNativeArray > {
4336 let metadata = create_array_metadata ( crs) ;
44- match coords {
45- PyCoordBuffer :: TwoD ( coords) => {
46- let array = LineStringArray :: new ( coords, geom_offsets. into_inner ( ) , None , metadata) ;
47- Ok ( PyNativeArray :: new ( NativeArrayDyn :: new ( Arc :: new ( array) ) ) )
48- }
49- PyCoordBuffer :: ThreeD ( coords) => {
50- let array = LineStringArray :: new ( coords, geom_offsets. into_inner ( ) , None , metadata) ;
51- Ok ( PyNativeArray :: new ( NativeArrayDyn :: new ( Arc :: new ( array) ) ) )
52- }
53- }
37+ // TODO: remove const generic
38+ let array = LineStringArray :: < 2 > :: new (
39+ coords. into_inner ( ) ,
40+ geom_offsets. into_inner ( ) ,
41+ None ,
42+ metadata,
43+ ) ;
44+ Ok ( PyNativeArray :: new ( NativeArrayDyn :: new ( Arc :: new ( array) ) ) )
5445}
5546
5647#[ pyfunction]
@@ -62,28 +53,15 @@ pub fn polygons(
6253 crs : Option < CRS > ,
6354) -> PyGeoArrowResult < PyNativeArray > {
6455 let metadata = create_array_metadata ( crs) ;
65- match coords {
66- PyCoordBuffer :: TwoD ( coords) => {
67- let array = PolygonArray :: new (
68- coords,
69- geom_offsets. into_inner ( ) ,
70- ring_offsets. into_inner ( ) ,
71- None ,
72- metadata,
73- ) ;
74- Ok ( PyNativeArray :: new ( NativeArrayDyn :: new ( Arc :: new ( array) ) ) )
75- }
76- PyCoordBuffer :: ThreeD ( coords) => {
77- let array = PolygonArray :: new (
78- coords,
79- geom_offsets. into_inner ( ) ,
80- ring_offsets. into_inner ( ) ,
81- None ,
82- metadata,
83- ) ;
84- Ok ( PyNativeArray :: new ( NativeArrayDyn :: new ( Arc :: new ( array) ) ) )
85- }
86- }
56+ // TODO: remove const generic
57+ let array = PolygonArray :: < 2 > :: new (
58+ coords. into_inner ( ) ,
59+ geom_offsets. into_inner ( ) ,
60+ ring_offsets. into_inner ( ) ,
61+ None ,
62+ metadata,
63+ ) ;
64+ Ok ( PyNativeArray :: new ( NativeArrayDyn :: new ( Arc :: new ( array) ) ) )
8765}
8866
8967#[ pyfunction]
@@ -94,16 +72,13 @@ pub fn multipoints(
9472 crs : Option < CRS > ,
9573) -> PyGeoArrowResult < PyNativeArray > {
9674 let metadata = create_array_metadata ( crs) ;
97- match coords {
98- PyCoordBuffer :: TwoD ( coords) => {
99- let array = MultiPointArray :: new ( coords, geom_offsets. into_inner ( ) , None , metadata) ;
100- Ok ( PyNativeArray :: new ( NativeArrayDyn :: new ( Arc :: new ( array) ) ) )
101- }
102- PyCoordBuffer :: ThreeD ( coords) => {
103- let array = MultiPointArray :: new ( coords, geom_offsets. into_inner ( ) , None , metadata) ;
104- Ok ( PyNativeArray :: new ( NativeArrayDyn :: new ( Arc :: new ( array) ) ) )
105- }
106- }
75+ let array = MultiPointArray :: < 2 > :: new (
76+ coords. into_inner ( ) ,
77+ geom_offsets. into_inner ( ) ,
78+ None ,
79+ metadata,
80+ ) ;
81+ Ok ( PyNativeArray :: new ( NativeArrayDyn :: new ( Arc :: new ( array) ) ) )
10782}
10883
10984#[ pyfunction]
@@ -115,28 +90,14 @@ pub fn multilinestrings(
11590 crs : Option < CRS > ,
11691) -> PyGeoArrowResult < PyNativeArray > {
11792 let metadata = create_array_metadata ( crs) ;
118- match coords {
119- PyCoordBuffer :: TwoD ( coords) => {
120- let array = MultiLineStringArray :: new (
121- coords,
122- geom_offsets. into_inner ( ) ,
123- ring_offsets. into_inner ( ) ,
124- None ,
125- metadata,
126- ) ;
127- Ok ( PyNativeArray :: new ( NativeArrayDyn :: new ( Arc :: new ( array) ) ) )
128- }
129- PyCoordBuffer :: ThreeD ( coords) => {
130- let array = MultiLineStringArray :: new (
131- coords,
132- geom_offsets. into_inner ( ) ,
133- ring_offsets. into_inner ( ) ,
134- None ,
135- metadata,
136- ) ;
137- Ok ( PyNativeArray :: new ( NativeArrayDyn :: new ( Arc :: new ( array) ) ) )
138- }
139- }
93+ let array = MultiLineStringArray :: < 2 > :: new (
94+ coords. into_inner ( ) ,
95+ geom_offsets. into_inner ( ) ,
96+ ring_offsets. into_inner ( ) ,
97+ None ,
98+ metadata,
99+ ) ;
100+ Ok ( PyNativeArray :: new ( NativeArrayDyn :: new ( Arc :: new ( array) ) ) )
140101}
141102
142103#[ pyfunction]
@@ -149,28 +110,13 @@ pub fn multipolygons(
149110 crs : Option < CRS > ,
150111) -> PyGeoArrowResult < PyNativeArray > {
151112 let metadata = create_array_metadata ( crs) ;
152- match coords {
153- PyCoordBuffer :: TwoD ( coords) => {
154- let array = MultiPolygonArray :: new (
155- coords,
156- geom_offsets. into_inner ( ) ,
157- polygon_offsets. into_inner ( ) ,
158- ring_offsets. into_inner ( ) ,
159- None ,
160- metadata,
161- ) ;
162- Ok ( PyNativeArray :: new ( NativeArrayDyn :: new ( Arc :: new ( array) ) ) )
163- }
164- PyCoordBuffer :: ThreeD ( coords) => {
165- let array = MultiPolygonArray :: new (
166- coords,
167- geom_offsets. into_inner ( ) ,
168- polygon_offsets. into_inner ( ) ,
169- ring_offsets. into_inner ( ) ,
170- None ,
171- metadata,
172- ) ;
173- Ok ( PyNativeArray :: new ( NativeArrayDyn :: new ( Arc :: new ( array) ) ) )
174- }
175- }
113+ let array = MultiPolygonArray :: < 2 > :: new (
114+ coords. into_inner ( ) ,
115+ geom_offsets. into_inner ( ) ,
116+ polygon_offsets. into_inner ( ) ,
117+ ring_offsets. into_inner ( ) ,
118+ None ,
119+ metadata,
120+ ) ;
121+ Ok ( PyNativeArray :: new ( NativeArrayDyn :: new ( Arc :: new ( array) ) ) )
176122}
0 commit comments