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.683333) 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
addSelectClick
addSingleClickEvent
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
addLabel zoomlabel "<div>" "zl1"
addLabel wgslabel "<div>" "wl1"
addLabel mercatorlabel "<div>" "ml1"
addMapWindowEvent "moveend" $ setEventToHtml zoomlabel getZoom
addMapWindowEvent "moveend" $ setEventToHtml wgslabel $ getCenter wgs84proj 5
addMapWindowEvent "moveend" $ setEventToHtml mercatorlabel $ getCenter mercatorproj 1