У меня есть al xml .objectify.StringElement из анализа kml с использованием pykml. Проанализировано следующим образом:
with open('btgdbgdgnh.kml') as f:
documento = parser.parse(f).getroot().Document
d = {}
for p in documento.Folder:
d[p.name] = {}
for place in p.Placemark:
d[p.name][place.name] = []
for pol in place.MultiGeometry.Polygon:
d[p.name[place.name].append(pol.outerBoundaryIs.LinearRing.coordinates)
Вывод такого разбора выглядит следующим образом:
'\n -0.458304,38.368177,0\n -0.458486,38.368272,0\n -0.458679,38.36836,0\n
После борьбы с несколькими библиотеками kml я решил пойти по-хакерски и попытаться отформатировать его я сам для того, чтобы накормить его для создания изящных многоугольников, таких как:
s='\n -0.458304,38.368177,0\n -0.458486,38.368272,0\n -0.458679,38.36836,0\n
s = s.replace('0\n','0)|(')
s = s.replace('\n','(')
s = " ".join(s.split())
s = s.split('|')
, который выводит этот вывод:
['( -0.458304,38.368177,0)',
'( -0.458486,38.368272,0)',
'( -0.465878,38.368924,0)',
'( -0.468405,38.368941,0)',
'( -0.472423,38.369025,0)']
И я не могу преобразовать то, что внутри, в простой кортеж. Я попробовал ast library, но кажется устаревшим (?) Массивом numpy, который выглядел наиболее "pythoni c", например так:
results = np.fromstring(s, dtype=int, sep='|')
Но вернул пустой массив. Мое решение с самого начала кажется не очень хорошим, но я впервые использую pykml, так что это единственный способ думать, и теперь я заблудился. Любая помощь будет оценена, спасибо!