Changeset 1294
- Timestamp:
- 05/01/08 16:57:23 (7 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
pleiades.workspace/trunk/pleiades/workspace/browser/kml.py
r1289 r1294 5 5 from Products.CMFCore.utils import getToolByName 6 6 from elementtree import ElementTree as etree 7 7 import keytree 8 8 9 9 class KMLImporter(BrowserView): … … 26 26 try: 27 27 k = etree.fromstring(request.file.read()) 28 for p in k.findall('*/{http://earth.google.com/kml/2.1}Placemark'): 29 n = p.find('{http://earth.google.com/kml/2.1}name') 30 name = n.text 28 kmlns = k.tag.split('}')[0][1:] 29 for pm_element in k.findall('*/{%s}Placemark' % kmlns): 30 f = keytree.feature(pm_element) 31 name = f.properties['name'] 32 description = f.properties['description'] 33 where = f.geometry 34 lid = locations.invokeFactory( 35 'Location', 36 geometryType=where.type, 37 spatialCoordinates='%f %f' % (where.coordinates[1], where.coordinates[0]) 38 ) 31 39 nid = names.invokeFactory( 32 40 'Name', … … 46 54 a = place[aid] 47 55 a.addReference(names[nid], 'hasName') 56 a.addReference(locations[lid], 'hasLocation') 48 57 except: 49 58 savepoint.rollback() pleiades.workspace/trunk/pleiades/workspace/tests/kml-import.txt
r1289 r1294 65 65 >>> 'ptolemais-barkes-limen' in ws['names'] 66 66 True 67 67 >>> len(ws['locations']) 68 11
