有一大推geojson数据,现在需要对其进行坐标转换,geojson数据示例
coordinates = [119,35]
coordinates = [[119,35],[119,35]]
coordinates = [[[119,35],[119,35]],[[119,35],[119,35]]]
期望转换后的坐标:
coordinates = [11900,3500]
coordinates = [[11900,3500],[11900,3500]]
coordinates = [[[11900,3500],[11900,3500]],[[11900,3500],[11900,3500]]]
怎么遍历到每一个position(坐标对)?
我现在是这么做的:
def transform(x,y,other_parameter):
return ....
def miterator(ary,mapper):
if isinstance(ary,list):
if isinstance(ary[0],list):
for el in ary:
miterator(el, mapper)
else:
ary[0],ary[1] = mapper(ary[0],ary[1])
def logic(...):
other_parameter= ....
coordinates = get_coordinates(..)
miterator(coordinates,transform) #??????
然后问题就出来了,我怎么把other_parameter传到transform里面?
所以 我希望最好通过generator方式:
def xgenerator(ary):
if xx:
...
yield(x,y)
然后我就可以通过这种方式调用:
def logic(...):
other_parameter= ....
coordinates = get_coordinates(..)
for x,y in xgenerator(coordinates):
transform(x,y,other_parameter)
但是这个generator我死活写不出来,怎么破?