Google Maps and WMTS

by HoffZ

HTML

<script src="https://maps.google.com/maps/api/js?sensor=false&amp;libraries=drawing"></script>
<p>
  Test
</p>
<div id="map">

</div>

CSS

#map {
  width: 500px;
  height: 400px;
}

JavaScript

var map;

String.prototype.format = function() {
    var formatted = this;
    for (var i = 0; i < arguments.length; i++) {
        var regexp = new RegExp('\\{' + i + '\\}', 'gi');
        formatted = formatted.replace(regexp, arguments[i]);
    }
    return formatted;
};

init()

function init() {

    var BASE_URL = 'https://wmts10.geo.admin.ch';

    var layer = 'ch.swisstopo.pixelkarte-farbe';
    var timestamp = 'current';
    var format = 'jpeg';
    var url = BASE_URL + '/1.0.0/'+layer+'/default/'+timestamp.toString()+'/3857/{z}/{x}/{y}.' + format;


    //Define OSM map type pointing at the OpenStreetMap tile server



    var PixelkarteType = new google.maps.ImageMapType({
        maxZoom: 20,
        minZoom: 7,
        name: "Pixelkarte",
        tileSize: new google.maps.Size(256, 256),
        credit: 'swisstopo',
        getTileUrl: function(coord, zoom) {
                    return BASE_URL +  '/1.0.0/'+layer+'/default/'+timestamp.toString()+'/3857/'+ zoom + "/" + coord.x + "/" + coord.y + ".jpeg";
                }
    });

    var OrthophotoType = new google.maps.ImageMapType({
        maxZoom: 20,
        minZoom: 7,
        name: "Orthophoto",
        tileSize: new google.maps.Size(256, 256),
        credit: 'swisstopo',
        getTileUrl: function(coord, zoom) {
                    return BASE_URL +  '/1.0.0/ch.swisstopo.swissimage/default/20140620/3857/'+ zoom + "/" + coord.x + "/" + coord.y + ".jpeg";
                }
    });

    map = new google.maps.Map(document.getElementById("map"), {
        zoom: 10,
        center: new google.maps.LatLng(46.94, 7.45),
        mapTypeControlOptions: {
           mapTypeIds: ['Pixelkarte', 'Orthophoto', google.maps.MapTypeId.TERRAIN],
            style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR
        }
    });

map.mapTypes.set('Pixelkarte', PixelkarteType);
    map.setMapTypeId('Pixelkarte');

    map.mapTypes.set('Orthophoto', OrthophotoType);


}