Google Maps and WMTS
by HoffZ
HTML
<script src="https://maps.google.com/maps/api/js?sensor=false&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);
}