Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import re
- import matplotlib.pyplot as plt
- from ast import literal_eval
- with open('poland_shape.txt', 'r') as f_in, open('states.txt', 'w') as f_out:
- data = literal_eval('{' + f_in.read() + '}')
- for k, v in data.items():
- print('<state name = "{city}">'.format(city=k), file=f_out)
- for point in v:
- print(' <point lat="{point[0]}" lng="{point[1]}" />'.format(point=point), file=f_out)
- print('</state>', file=f_out)
- segments = []
- points = []
- lat_long_regex = r"<point lat=\"(.*)\" lng=\"(.*)\""
- with open("states.txt", "r") as f:
- lines = [line for line in f]
- for line in lines:
- if line.startswith("</state>"):
- for p1, p2 in zip(points, points[1:]):
- segments.append((p1, p2))
- points = []
- s = re.search(lat_long_regex, line)
- if s:
- lat, lon = s.groups()
- points.append((float(lon), float(lat)))
- def plot_state_borders(color='0.8'):
- for (lon1, lat1), (lon2, lat2) in segments:
- plt.plot([lon1, lon2], [lat1, lat2], color=color)
- plot_state_borders()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement