Google Maps i journalistikken
InnholdIndeksHjem
ForrigeOppNeste
Kildekode
function main()
{
    var map = new google.maps.Map2( document.getElementById( "map" ) );
    var pos = new google.maps.LatLng( 69.669853, 19.652309 );
    var icon = new google.maps.Icon( google.maps.DEFAULT_ICON );

    var tileLayerTopo2 = new google.maps.TileLayer( new google.maps.CopyrightCollection( "Statens Kartverk" ), 0, 17 );
    tileLayerTopo2.getTileUrl = function( t, z ) { return getTileUrl( 'topo2', t, z ); }
    tileLayerTopo2.isPng = function() { return true; }
    var mapTypeTopo2 = new google.maps.MapType( [ tileLayerTopo2 ], google.maps.PHYSICAL_MAP.getProjection(), "Topo" );

    var tileLayerSjoHK2 = new google.maps.TileLayer( new google.maps.CopyrightCollection( "Statens Kartverk" ), 0, 17 );
    tileLayerSjoHK2.getTileUrl = function( t, z ) { return getTileUrl( 'sjo_hovedkart2', t, z ); }
    tileLayerSjoHK2.isPng = function() { return true; }
    var mapTypeSjoHK2 = new google.maps.MapType( [ tileLayerSjoHK2 ], google.maps.PHYSICAL_MAP.getProjection(), "Sjø" );

    var tileLayerTopoRaster2 = new google.maps.TileLayer( new google.maps.CopyrightCollection( "Statens Kartverk" ), 0, 20 );
    tileLayerTopoRaster2.getTileUrl = function( t, z ) { return getTileUrl( 'toporaster2', t, z ); }
    tileLayerTopoRaster2.isPng = function() { return true; }
    var mapTypeTopoRaster2 = new google.maps.MapType( [ tileLayerTopoRaster2 ], google.maps.PHYSICAL_MAP.getProjection(), "Raster" );

    var tileLayerDNFjord = new google.maps.TileLayer( new google.maps.CopyrightCollection( "Direktoratet for Naturforvaltning" ), 0, 17 );
    tileLayerDNFjord.getTileUrl = function( t, z ) { return getTileUrl( 'fjord', t, z ); }
    tileLayerDNFjord.isPng = function() { return true; }
    var mapTypeDNFjord = new google.maps.MapType( [ tileLayerDNFjord ], google.maps.PHYSICAL_MAP.getProjection(), "DN Fjord" );

    map.addMapType( mapTypeTopo2 );
    map.addMapType( mapTypeSjoHK2 );
    map.addMapType( mapTypeTopoRaster2 );
    map.addMapType( mapTypeDNFjord );

    icon.iconSize = new google.maps.Size( 16, 16 );
    icon.image = "img/skred_ikon.png";
    var marker = new google.maps.Marker( pos, icon );
    map.addControl( new google.maps.SmallMapControl() );

    map.setCenter( pos, 12 );
    map.addOverlay( marker );
    google.maps.Event.addListener( marker, "click", function() { showInfo( marker ) } );
    var typeControl = new google.maps.MapTypeControl();
    map.addControl( typeControl );
}

function getTileUrl( type, tile, zoom )
{
    switch( type )
    {
        case 'fjord':
            var p1 = new google.maps.Point( 256 * tile.x, 256 * tile.y );
            var p2 = new google.maps.Point( p1.x + 256, p1.y + 256 );
            var merc = new google.maps.MercatorProjection( 18 );
            var latLng1 = merc.fromPixelToLatLng( p1, zoom );
            var latLng2 = merc.fromPixelToLatLng( p2, zoom );
            return 'http://dnweb12.dirnat.no/wmsconnector/com.esri.wms.Esrimap?WMTVER=1.1.1&SRS=EPSG%3A4326&FORMAT=PNG&BGCOLOR=0x23f3f5&TRANSPARENT=TRUE&STYLES=default&LAYERS=Fjordkatalogen,Grenser%20Fjordkatalogen,Fjord-ID,Navn&BBOX=' + latLng1.lng() + ',' + latLng2.lat() + ',' + latLng2.lng() + ',' + latLng1.lat() + '&WIDTH=450&HEIGHT=300&&REQUEST=map&ServiceName=WMS_Fjordkatalogen';
        default:
            return 'http://opencache.statkart.no/gatekeeper/gk/gk.open_gmaps?layers=' + type + '&zoom=' + zoom + '&x=' + tile.x + '&y=' + tile.y;
    }
}

function showInfo( marker )
{
    marker.openInfoWindow( '<div class="info"><em>BREIVIKEIDET I TROMS:</em> Her kan vi legge inn tilleggsinformasjon, bilder, lyd - ja til og med video.</div>' );
}

google.load( "maps", 2, { "other_params" : "sensor=true&hl=no" } );

$( document ).ready( main );
Copyright (c) 2010: Espen Andersen
Hva synes du om dette temaet? Send tilbakemelding!