Guest User

linestrings to polygon

a guest
Mar 28th, 2012
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.81 KB | None | 0 0
  1. import codecs
  2. from sys import argv
  3.  
  4. lines = codecs.open(argv[1], 'r', 'utf-8-sig').readlines()
  5.  
  6. segments = []
  7.  
  8. for line in lines:
  9.     out = []
  10.     for point in line.split(' '):
  11.         if not point.strip(): continue
  12.         out.append(map(float, point.split(',')))
  13.     segments.append(out)
  14.  
  15. polygon = []
  16.  
  17. overlap = segments[0][0]
  18. polygon.append(overlap)
  19.  
  20. while segments:
  21.     for seg in segments:
  22.         if seg[0] == overlap:
  23.             polygon.extend(seg[1:])
  24.             overlap = polygon[-1]
  25.             segments.remove(seg)
  26.  
  27. print '''<?xml version="1.0" encoding="UTF-8"?>
  28. <kml xmlns="http://earth.google.com/kml/2.0">
  29. <Placemark><Polygon><outerBoundaryIs><LinearRing><coordinates>'''
  30.  
  31. for point in polygon:
  32.     print "%s,%s,%s" % (point[0], point[1], point[2]),
  33.  
  34. print '</coordinates></LinearRing></outerBoundaryIs></Polygon></Placemark></kml>'
Advertisement
Add Comment
Please, Sign In to add comment