OpenStreetMapTilesGrabber
GoogleMapsTileGrabber

GoogleTilesGrabber
NIEUW /
NEW
49 225 Tiles
Knoppen voor volgende 225 Tiles /
Buttons for next 255 Tiles
Sat+wegen kaart / Hybrid map
update: 04-03-2010


Tiles Grabber voor offline kaarten en nodig voor GPSTilesMapping
Tiles Grabber for Offline maps and used by GPSTilesMapping


met offline OpenLayers HTML viewer voorbeeldcode
with offline Openlayers HTML viewer sample code

© 2009 Ewald Kendziorra sr


Dutch and limited English language (machine translation).
English in this color.


(DOWNLOAD) TilesGrabber

Allereerst dit

For my English-speaking friends: take a look at the images
OpenstreetMapTilesGrabber is freeware.
Install on Vista or XP with Microsoft ".NET Framework 3.5" (download from Microsoft).
Copy "Openlayer" to the Program Map.

Het programma is vrij te gebruiken en bevat geen kaartmateriaal.
Het gebruik er van is voor eigen risico in wat voor een vorm dan ook.

Installatie

Geen installatie nodig maar wel XP SP2 of Vista. Als het programma niet wil opstarten dan moet je bij Microsoft ".NET Framework 3.5" downloaden en installeren. Daar hebben ook diverse andere programma's voordeel van.
Kopieer "OpenLayers" in de Programmafolder..

Aan de slag Let's go

Om één kaartdeel (Tile) van 256 x 256 pixels te tonen wordt er een hele reeks Tiles bij de MapServer opgehaald. Dit om het hele kaartvenster te vullen en een aantal aansluitende delen voor als je de kaart gaat schuiven of uit Zoomen.
Ik maak hier domweg gebruik van zodat je meer Tiles krijgt als in het venster vertoond, dat scheelt in laden.

Overigens kun je ook zelf uitrekenen welke Tiles je wilt hebben en dan direct downloaden van
    http://tile.openstreetmap.org/Zoomlevel/TileX/TileY.png
            sinLatitude = sin(latitude * pi/180)
            TileX = Fix(((longitude + 180) 360) * 2Zoomlevel)
            TileY = Fix((0.5 – log((1 + sinLatitude) (1 – sinLatitude)) (4 * pi)) * 2Zoomlevel)

Je hoeft er maar één uit te rekenen, want:
Één Tile naar boven is TileX-1, naar onder is TileX+1, .....
Één Tile naar Links is TileY-1, naar rechts is TileY+1, .....

De berekening kun je natuurlijk door een programma laten doen maar het opzoeken en ingeven van Latitude en Longitude is omslachtig en werkt fouten in de hand. Bij deze twee programma's, OpenStreetMapTilesGrabber en GoogleMapsTileGrabber, hoef je niets in te geven en/of uit te rekenen, met een beetje schuiven en klikken plaats je de hele wereld zo op je harddisk.

Interessante en zeer duidelijke informatie kun je bij Microsoft vinden (penStreet, Google, Microsoft, ... gebruiken het zelfde systeem)
http://msdn.microsoft.com/en-us/library/aa940990.aspx (Scale and Resolution)
http://msdn.microsoft.com/en-us/library/bb259689.aspx (Earth Tile System)

Download alleen wat je nodig hebt, later aanvullen is een makkie en onnodig overschrijven kun je uitsluiten.
Neen niet te veel Zoomlevels 9, 11 en 14 zijn mooie waarden voor overzicht en details. De andere Zoomlevels zijn dan eventueel softwarematig (afhankelijk van de gebruikte OpenLayers Code).

Helemaal onderaan staat een simpele HTML, met script, om de opgeslagen Tiles offline te gebruiken. Het script heeft het ,bij dit programma gevoegde, OpenLayers nodig.

 

TIP Google Maps

Gebruik aparte folders voor de 3 verschillende kaartsoorten.
Use separate folders for the 3 different types of Maps.

Offline OpenStreetMap HTML-code met OpenLayers

Rood/Red = Te bewerken items/ Items to EDIT

<html>
<head>
<title>Offline OpenStreetMap</title>
<link rel="stylesheet" href="OpenLayers/style.css" type="text/css">
<script src="OpenLayers/OpenLayers.js"></script>
<script src="OpenLayers/OpenStreetMap.js"></script>
<script defer="defer" type="text/javascript">
    var lat = 52.52332372377514;/ Center LatLon
    var lon = 5.7176971435546875;
    var zoom= 11;
    var TilePath = "C:\\Users\\<user>\\Documents\\OpenstreetPNG\\";
    var oeps = "404.png";
    var map, mapnik;
    function init() {
        map = new OpenLayers.Map ("map", {
            controls:[
                new OpenLayers.Control.Navigation(),
                new OpenLayers.Control.MousePosition({position: new OpenLayers.Pixel(4,286)}),
                new OpenLayers.Control.PanZoomBar(),
                new OpenLayers.Control.LayerSwitcher(),
                new OpenLayers.Control.Attribution()
            ],
            maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),
            maxResolution: 156543.0399,
            units: 'm',
            projection: new OpenLayers.Projection("EPSG:900913"),
            displayProjection: new OpenLayers.Projection("EPSG:4326")
        });
        mapnik = new OpenLayers.Layer.TMS(
            "OpenStreetMap (Mapnik)",
            "http://tile.openstreetmap.org/", {
                type: 'png', getURL: osm_getTileURL,
                displayOutsideMaxExtent: true
        });
        map.addLayer(mapnik);
        tekenvector = new OpenLayers.Layer.Vector("Tekenen");
        map.addLayer(tekenvector);
        map.addControl(new OpenLayers.Control.EditingToolbar(tekenvector));
        map.setCenter(new OpenLayers.LonLat(lon, lat).transform(map.displayProjection, map.projection), zoom);
    }
    function osm_getTileURL(bounds) {
        var res = this.map.getResolution();
        var x = Math.round((bounds.left - this.maxExtent.left) / (res * this.tileSize.w));
        var y = Math.round((this.maxExtent.top - bounds.top) (res * this.tileSize.h));
        var z = this.map.getZoom();
        var limit = Math.pow(2, z);
        if (y < 0 || y >= limit) {
            return TilePath + oeps;
        } else {
            x = ((x % limit) + limit) % limit;
            return TilePath + z + "\\" + x + "\\" + y + ".png";
        }
    }
</script>
</head>
<body onload="init();" topmargin="0" leftmargin="0">
<div style="width:768px; height:512px" id="map"></div>
</body>
</html>

Verdwaal niet ;-)
Do not get lost ;-)

(DOWNLOAD) TilesGrabber