Popularity
1.6
Declining
Activity
0.0
Stable
1
1
1

Monthly Downloads: 76
Programming language: Haskell
License: BSD 3-clause "New" or "Revised" License

HSlippyMap alternatives and similar packages

Based on the "Geography" category.
Alternatively, view HSlippyMap alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of HSlippyMap or a related project?

Add another 'Geography' Package

README

Build Status

Algo

http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#Haskell

GHCI

[email protected]:~/codaz/HSlippyMap$ ghci
GHCi, version 7.6.3: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
[1 of 1] Compiling HSlippyMap       ( HSlippyMap.hs, interpreted )
Ok, modules loaded: HSlippyMap.
*HSlippyMap> :load HSlippyMap
*HSlippyMap> let max = tileFromLatLong 48.9031 2.5214 12
*HSlippyMap> let min = tileFromLatLong 48.8146 2.1732 12
*HSlippyMap> :t max
max :: Tile
*HSlippyMap> tilesFromBBox min max
[http://tile.openstreetmap.org/12/2072/1409.png,http://tile.openstreetmap.org/12/2073/1409.png,http://tile.openstreetmap.org/12/2074/1409.png,http://tile.openstreetmap.org/12/2075/1409.png,http://tile.openstreetmap.org/12/2076/1409.png]

Exemple

Gist : https://gist.github.com/apeyroux/7de40a40770b544ce2727e307cb1e61e

import HSlippyMap

main = do                                                                             
  mapM (\(x,y) -> mapM (\y'-> print $ "http://openstreetmap.asi.mi/" ++ show z ++ "/" ++ show x ++ "/" ++ show y' ++ ".png") y) [(x,\
[(minimum [tymin, tymax])..(maximum [tymin,tymax])]) | x <- [(minimum [txmin, txmax])..(maximum [txmin, txmax])]]
  where
      min = tileFromLatLong 49.13 3.05 8
      max = tileFromLatLong 48.57 1.66 8
      txmin = tx min
      txmax = tx max
      tymax = ty min
      tymin = ty max
      z = tz min

Result :

[email protected] ~ $ ./hsl | xargs wget -nv -O NULL --output-file osm.asi.log 
[email protected] ~ $ cat osm.asi.log 
2013-12-24 22:04:46 URL:http://tile.openstreetmap.org/8/129/87.png [37753/37753] -> "NULL" [1]
2013-12-24 22:04:46 URL:http://tile.openstreetmap.org/8/129/88.png [36997/36997] -> "NULL" [1]
2013-12-24 22:04:46 URL:http://tile.openstreetmap.org/8/130/87.png [36749/36749] -> "NULL" [1]
2013-12-24 22:04:47 URL:http://tile.openstreetmap.org/8/130/88.png [35550/35550] -> "NULL" [1]
FINISHED --2013-12-24 22:04:47--
Total wall clock time: 0,7s
Downloaded: 4 files, 144K in 0,4s (364 KB/s)

Other exemple

mapM (\z-> putStrLn $ show $ tileFromLatLong 12.3 3.3 z) [0..18]
http://tile.openstreetmap.org/0/0/0.png
http://tile.openstreetmap.org/1/1/0.png
http://tile.openstreetmap.org/2/2/1.png
http://tile.openstreetmap.org/3/4/2.png
http://tile.openstreetmap.org/4/8/5.png
http://tile.openstreetmap.org/5/16/11.png
http://tile.openstreetmap.org/6/32/22.png
http://tile.openstreetmap.org/7/64/44.png
http://tile.openstreetmap.org/8/129/88.png
http://tile.openstreetmap.org/9/259/176.png
http://tile.openstreetmap.org/10/518/352.png
http://tile.openstreetmap.org/11/1036/704.png
http://tile.openstreetmap.org/12/2073/1409.png
http://tile.openstreetmap.org/13/4147/2819.png
http://tile.openstreetmap.org/14/8295/5639.png
http://tile.openstreetmap.org/15/16590/11278.png
http://tile.openstreetmap.org/16/33181/22557.png
http://tile.openstreetmap.org/17/66362/45115.png
http://tile.openstreetmap.org/18/132725/90230.png
long2tilex lon z = floor((lon + 180.0) / 360.0 * (2.0 ** z))

lat2tiley lat z = floor((1.0 - log( tan(lat * pi/180.0) + 1.0 / cos(lat * pi/180.0)) / pi) / 2.0 * (2.0 ** z))

tilex2long x z = x / (2.0 ** z) * 360.0 - 180

tiley2lat y z = 180.0 / pi * atan(0.5 * (exp(n) - exp(-n)))
        where
                n = pi - 2.0 * pi * y / (2.0 ** z)

-- Exemple
main = do
        --print $ long2tilex 2.2712 17
        --print $ lat2tiley 48.8152 17
        --print $ tilex2long 66362 17
        --print $ tiley2lat 45115 17
        putStrLn "gps: (lat=48.8152,long=2.2712)"
        putStrLn $ "http://tile.openstreetmap.org/17/" ++ show x ++ "/" ++ show y ++ ".png"
        where
                z = 17
                x = long2tilex 2.2712 z
                y = lat2tiley 48.8152 z