Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

MapyHazardu.cz

5,524 views

Published on

Prezentace MapyHazardu.cz na Google Developer Day 2011 konaného 18.října 2011 v Praze.

Aplikace mapuje herny v obcích České republiky, jejichž provoz je povolen v rozporu s § 17 zákona o loteriích a jiných podobných hrách.

Kód aplikace je volně dostupný na adrese https://github.com/msgre/hazard

Published in: Technology
  • Be the first to comment

  • Be the first to like this

MapyHazardu.cz

  1. 1. MapyHazardu.czMichal Valoušek / GDD 2011 Praha / 18.října 2011
  2. 2. Michal ValoušekVývojář webových aplikací / Django@msgre / msgre.tumblr.comScuk.cz / EnergoMonitor.cz
  3. 3. Brnění o.s.
  4. 4. google.maps.Marker špendlíky heren google.maps.Polygonvykreslení budov a jejich okolígoogle.maps.event.addListener zavěšení na myší události google.maps.StyledMapType přebarvení mapy
  5. 5. Výpočet okolí budovy>>> from django.contrib.gis.geos import Polygon>>> building = Polygon([(10,10), (20,10), (20,20), (10,20), (10,10)])>>> zone = building.buffer(50)>>> print zone.coords(((-90.0, 10.0), (-90.0, 20.0), (-88.07852804032305, 39.509032201612854), (-82.38795325112868, 58.26834323650898), ... (-88.07852804032294, -9.509032201613383), (-90.0, 10.0)),)
  6. 6. Výpočet konfliktu>>> from django.contrib.gis.geos import Polygon, Point>>> zone = Polygon([(10,10), (20,10), (20,20), (10,20), (10,10)])>>> point1 = Point(0, 0)>>> print zone.contains(point1)False>>> point2 = Point(15, 15)>>> print zone.contains(point2)True
  7. 7. http://www.exploreseakayaking.com/navigation.htm
  8. 8. http://maps.unomaha.edu/Peterson/gis/notes/MapProjCoord.html
  9. 9. Spatial Reference System Identity (SRID)>>> # WGS-84>>> # souradnice se zadavaji jako dvojice (lon, lat)>>> building = Polygon([(17.975283, 49.465755), (17.975033, 49.465729), (17.974962, 49.465992), (17.975212, 49.466019), (17.975283, 49.465755)], srid=4326)>>> point = Point(17.9748452, 49.4695582, srid=4326)
  10. 10. WGS84buffer(100)
  11. 11. Okolí & Křovák rulez!>>> from django.contrib.gis.geos import Polygon>>> from django.contrib.gis.gdal import CoordTransform, SpatialReference>>> ct1 = CoordTransform(SpatialReference(WGS84), SpatialReference(102065))>>> ct2 = CoordTransform(SpatialReference(102065), SpatialReference(WGS84))>>> building = Polygon([(17.968216,49.469791), ..., (17.968216,49.469791)], srid=4326)>>> building.transform(ct1)>>> zone = building.buffer(100) # 100 jakoze 100 m? ANO PROSÍM!>>> zone.transform(ct2)
  12. 12. Vypočítat 100 m okolí budov Vypočítat konflikty heren a okolí budov Získat pozice heren Získat seznam budov
  13. 13. MapyHazardu.cz
  14. 14. maps.google.com
  15. 15. maps.google.com
  16. 16. maps.google.com
  17. 17. maps.google.com
  18. 18. mapyhazardu.cz/pridat/
  19. 19. Keyhole Markup Language (KML) <?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://earth.google.com/kml/2.2"> <Document> <Placemark> <name>Škola pro sluchově postižené</name> <Polygon> <outerBoundaryIs> <LinearRing> <tessellate>1</tessellate> <coordinates> 17.975283,49.465755,0.000000 ... 17.975212,49.466019,0.000000 17.975283,49.465755,0.000000 </coordinates> </LinearRing> </outerBoundaryIs> </Polygon> </Placemark> </Document> </kml>
  20. 20. Nová výzva
  21. 21. Seznam heren povolených MF
  22. 22. Import tabulky do Google Docs
  23. 23. Import tabulky do Google DocsDoplnění přesných “GPS” pozic heren
  24. 24. Google Geocoding APIhttps://github.com/simonw/geocoders
  25. 25. gdata.spreadsheet.service.SpreadsheetsService knihovna “gdata-python-client”>>> import gdata.spreadsheet.service>>> client = gdata.spreadsheet.service.SpreadsheetsService()>>> client.ClientLogin(GDOCS_USERNAME, GDOCS_PASSWORD)>>> feed = client.GetListFeed(DOCUMENT_ID) # parametr “key” z URL>>> for row_idx, entry in enumerate(feed.entry):... q = [entry.custom[ulice].text, entry.custom[obec].text]... gps = geocode(,.join(q))[1] # viz https://github.com/simonw/geocoders... gps = ,.join([str(i) for i in gps])... client.UpdateCell(row_idx + 2, 6, gps, DOCUMENT_ID)
  26. 26. Import tabulky do Google DocsDoplnění přesných “GPS” pozic herenExport dat z tabulky do KML po obcích
  27. 27. Import KML do maps.google.com
  28. 28. Import tabulky do Google DocsDoplnění přesných “GPS” pozic herenExport dat z tabulky do KML po obcích Získat data o budovách Import do aplikace mapyhazardu.cz
  29. 29. Import tabulky do Google DocsDoplnění přesných “GPS” pozic herenExport dat z tabulky do KML po obcích Získat data o budovách Import do aplikace mapyhazardu.cz
  30. 30. http://www.mapyhazardu.cz/gdd11/ https://github.com/msgre/hazard

×