145 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			145 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!DOCTYPE html>
 | 
						|
<html lang="en" class="dark-mode">
 | 
						|
 | 
						|
<head>
 | 
						|
    <meta charset="UTF-8" />
 | 
						|
    <title>Map</title>
 | 
						|
 | 
						|
    <script src="../../3rdparty/highlight/highlight.pack.js"></script>
 | 
						|
 | 
						|
    <link rel="stylesheet" href="../../../fonts/material-icon-font/material-icons.css">
 | 
						|
    <link rel='stylesheet' href='../../3rdparty/highlight/styles/vs2015.css'>
 | 
						|
    <link rel='stylesheet' href='../../../css/doctest.css'>
 | 
						|
 | 
						|
    <script src="../../../dist/iwmlib.3rdparty.js"></script>
 | 
						|
    <script src="../../../dist/iwmlib.js"></script>
 | 
						|
    <script src="../../../dist/iwmlib.pixi.js"></script>
 | 
						|
 | 
						|
 | 
						|
    <style>
 | 
						|
        .controls {
 | 
						|
            display: flex;
 | 
						|
        }
 | 
						|
    </style>
 | 
						|
</head>
 | 
						|
 | 
						|
<body onload="Doctest.run()">
 | 
						|
    <h1>Map</h1>
 | 
						|
    <p>
 | 
						|
        The Map class shows a geographical map using a scatter element.
 | 
						|
    </p>
 | 
						|
 | 
						|
    <h2 id="DeepZoomMap">DeepZoomMap</h2>
 | 
						|
    <p>Usually a DeepZoomMap will be used to display maps. It uses a <a
 | 
						|
            href="../deepzoom/deepzoom.html">DeepZoomImage</a> to display the map in different resolutions depending on
 | 
						|
        the zoom factor.</p>
 | 
						|
    <canvas id="deepZoomCanvas">
 | 
						|
 | 
						|
    </canvas>
 | 
						|
    <script>
 | 
						|
        
 | 
						|
 | 
						|
    </script>
 | 
						|
    <script class="doctest" data-collapsible data-collapsed data-title="Script">
 | 
						|
 | 
						|
 | 
						|
        (function () {
 | 
						|
 | 
						|
            // Create the mapapp.
 | 
						|
            let app = window.DeepZoomMapApp = new MapApp({
 | 
						|
                view: deepZoomCanvas,
 | 
						|
                coordsLogging: true,
 | 
						|
                width: 512,
 | 
						|
                height: 512
 | 
						|
            })
 | 
						|
 | 
						|
 | 
						|
            // Load or specify a tilesConfig as required by the DeepZoomImage.
 | 
						|
            const tilesConfig = {
 | 
						|
                "tileSize": 256,
 | 
						|
                "format": "png",
 | 
						|
                "overlap": 0,
 | 
						|
                "type": "map",
 | 
						|
                "height": 1024,
 | 
						|
                "width": 1024,
 | 
						|
                "path": "../assets/maps/osm",
 | 
						|
                "urlTileTemplate": "{path}/{level}/{row}/{column}.{format}"
 | 
						|
            }
 | 
						|
 | 
						|
 | 
						|
            // Create a projection.
 | 
						|
            const projection = new Projection.Mercator()
 | 
						|
 | 
						|
            // Create a map data object.
 | 
						|
            const osmDeepZoomMapProjection = new DeepZoomMapProjection(projection, tilesConfig, { app })
 | 
						|
 | 
						|
            // Create the map
 | 
						|
            const osmMap = new DeepZoomMap(osmDeepZoomMapProjection, tilesConfig)
 | 
						|
 | 
						|
            // Add the map to the app.
 | 
						|
            app.addMap("osm", osmMap)
 | 
						|
 | 
						|
            // Run the app when at least one map is set.
 | 
						|
            app.setup().run()
 | 
						|
        })()
 | 
						|
    </script>
 | 
						|
 | 
						|
    <h2 id="imageMap">ImageMap</h2>
 | 
						|
    <p>Single images can be also used as maps. This can be useful for examples, debugging purposes or other use-cases
 | 
						|
        when there are no different tiles required or available.</p>
 | 
						|
    <canvas id="imageMapCanvas">
 | 
						|
 | 
						|
    </canvas>
 | 
						|
    <script>
 | 
						|
    </script>
 | 
						|
    <script class="doctest" data-collapsible data-collapsed data-title="Script">
 | 
						|
 | 
						|
 | 
						|
            (function () {
 | 
						|
 | 
						|
                // Create the mapapp.
 | 
						|
                let app = window.ImageMapApp = new MapApp({
 | 
						|
                    view: imageMapCanvas,
 | 
						|
                    coordsLogging: true,
 | 
						|
                    width: 512,
 | 
						|
                    height: 512
 | 
						|
                })
 | 
						|
 | 
						|
                const mapTexture = "../assets/maps/wikimedia-world-robinson/2000px-BlankMap-World.png"
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
                // The images used by the image map need to be loaded beforehand.
 | 
						|
                // Therefore this loading step is required.
 | 
						|
                app.loadSprites([mapTexture], sprites => spritesLoaded(sprites), {
 | 
						|
                    resolutionDependent: false
 | 
						|
                })
 | 
						|
 | 
						|
                spritesLoaded = (sprites) => {
 | 
						|
 | 
						|
                    // Create a projection.
 | 
						|
                    const projection = new Projection.Robinson(10)
 | 
						|
 | 
						|
                    // Create a map data object.
 | 
						|
                    let mapProjection = new MapProjection(projection)
 | 
						|
 | 
						|
                    // Create the map
 | 
						|
                    let imageMap = new ImageMap(sprites.get(mapTexture), mapProjection)
 | 
						|
 | 
						|
 | 
						|
                    // Add the map to the app.
 | 
						|
                    app.addMap("europe", imageMap)
 | 
						|
 | 
						|
 | 
						|
                    // Run the app when at least one map is set.
 | 
						|
                    app.setup().run()
 | 
						|
                }
 | 
						|
 | 
						|
 | 
						|
 | 
						|
            })()
 | 
						|
    </script>
 | 
						|
</body>
 | 
						|
 | 
						|
</html> |