olwrapper-0.4.1: wrapper/OpenLayers.hs
{-|
Module : OpenLayers Wrapper mothership
Description : this module combines OpenLayers with Fay
-}
module OpenLayers where
import Prelude hiding (void)
import Fay.FFI
import OlApp (targetId, designMap)
import OpenLayers.Internal
-- | to add OpenLayers Wrapper when the page event load is registered
olwrapperAddOnLoad :: Fay f -> Fay ()
olwrapperAddOnLoad = ffi "window.addEventListener(\"load\", %1)"
-- | to add a default OpenLayers map object with name \"olmap\"
addDefaultMap :: Fay ()
addDefaultMap = ffi "olmap = new ol.Map({renderer: 'canvas'})"
{-|
Initialises an object of the OpenLayers map as HTML object.
The JavaScript variable name \"olc\" must be reserved for the application!
-}
defineCode :: Fay ()
defineCode = ffi "olc = $(olmap)[0]"
-- | setting the target between html and OpenLayers
setTarget :: String -> Fay ()
setTarget = ffi "olc.setTarget(%1)"
-- | setting a default view for first map appearence
setDefaultView :: Fay ()
setDefaultView = ffi "olc.setView(new ol.View({center:[0,0],zoom:2}))"
-- | initialises an OpenLayers view and load the definitions from the OpenLayers webapplication defined in "OlApp"
olwrapperLoad :: Fay ()
olwrapperLoad = void $ do
addDefaultMap
defineCode
setTarget targetId
setDefaultView
designMap