module Tutorial.OlApp where
import Prelude hiding (void)
import OpenLayers.Func
import OpenLayers.Types
import OpenLayers.Html
import OpenLayers.Internal
import Tutorial.Traffic
import Fay.FFI
zoomlevel = 11
defaultopacity = Opacity 80
coor1 = Coordinate 16.369 48.196 wgs84proj
coor2 = Coordinate 16.370 48.195 wgs84proj
coor3 = Coordinate 16.371 48.194 wgs84proj
vienna = Coordinate 16.397 48.219 wgs84proj
rome = Coordinate 12.5 41.9 wgs84proj
bern = Coordinate 7.4458 46.95 wgs84proj
madrid = Coordinate (3.6833) 40.4 wgs84proj
mypointstyle = GeoPointStyle 4 "green" "black" 2
mylinestyle = GeoLineStyle "green" 3
mypoint = GeoPoint vienna 301 mypointstyle
myline = GeoLine [coor1, coor2, coor3] 101 mylinestyle
descId = "mapdesc"
formId = "forminput"
hochinputId = "xinput"
rechtsinputId = "yinput"
opacityinputId = "opacinput"
idinputId = "idinputId"
zoomlabel = "zoomlabel"
wgslabel = "wgslabel"
mercatorlabel = "mercatorlabel"
visiblecheckboxU1 = "opacitycheckboxU1"
visiblecheckboxU2 = "opacitycheckboxU2"
visiblecheckboxU3 = "opacitycheckboxU3"
visiblecheckboxU4 = "opacitycheckboxU4"
designTutorialMap :: Fay ()
designTutorialMap = void $ do
setCenter vienna
setZoom zoomlevel
addStyledFeature myline $ Opacity 0
addStyledFeature mypoint $ Opacity 0
addStyledFeatures u1 defaultopacity
addStyledFeatures u2 defaultopacity
addStyledFeatures u3 defaultopacity
addStyledFeatures u4 defaultopacity
addSingleClickEventAlertCoo "EPSG:4326"
addDiv descId "div0" "Klicke in die Karte, um Koordinaten zu erhalten."
addBreakline descId
addForm descId formId
addInput "Mercator Hochwert: " formId hochinputId "1819207"
addInput "Mercator Rechtswert: " formId rechtsinputId "6141206"
addInput "Deckkraft: " formId opacityinputId "90"
addInput "Id: " formId idinputId "1000"
addButton "Symbol einsetzen" descId $ addPointFromLabels hochinputId rechtsinputId opacityinputId idinputId mypointstyle
addBreakline descId
addBreakline descId
addButton "Wechsel Basiskarte Satellit" descId $ changeBaseLayer Sat
addButton "Wechsel Basiskarte OpenStreetMap" descId $ changeBaseLayer OSM
addBreakline descId
addBreakline descId
addButton "Wien" descId $ setCenter vienna
addButton "Rom" descId $ setCenterZoom rome zoomlevel
addButton "Madrid" descId $ setCenterZoom madrid zoomlevel
addBreakline descId
addButton "Zoom +" descId $ zoomIn 1
addButton "Zoom -" descId $ zoomOut 1
addBreakline descId
addCheckbox visiblecheckboxU1 "table1" "U1 "
addCheckbox visiblecheckboxU2 "table2" "U2 "
addCheckbox visiblecheckboxU3 "table3" "U3 "
addCheckbox visiblecheckboxU4 "table4" "U4 "
addOlDomInput visiblecheckboxU1 "checked" "visible" $ getLayerByIndex 3
addOlDomInput visiblecheckboxU2 "checked" "visible" $ getLayerByIndex 4
addOlDomInput visiblecheckboxU3 "checked" "visible" $ getLayerByIndex 5
addOlDomInput visiblecheckboxU4 "checked" "visible" $ getLayerByIndex 6
addElement zoomlabel "<div>" "zl1"
addElement wgslabel "<div>" "wl1"
addElement mercatorlabel "<div>" "ml1"
addMapWindowEvent "moveend" $ setEventToHtml zoomlabel getZoom
addMapWindowEvent "moveend" $ setEventToHtml wgslabel $ getCenter wgs84proj 5
addMapWindowEvent "moveend" $ setEventToHtml mercatorlabel $ getCenter mercatorproj 1