Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Falls jemand mit Ahnung diese Zeile für mich korrigieren könnte... da stimmt noch irgendwas mit den Tile-Koordinaten nicht, die sind offensichtlich nicht direkt kompatibel mit der Googlemaps API. Ich hab am Handy gerade keine großen Recherchespäße und vergesse sowieso immer mehr meiner Programmierervergangenheit. Zu viel Geholper auf dem Bike![]()
map.mapTypes.set(
"TPP",
new google.maps.ImageMapType({
name: "TopPlus",
getTileUrl: function (coord, zoom) {
const normalizedCoord = getNormalizedCoord(coord, zoom);
if (!normalizedCoord) {
return "";
}
const bound = Math.pow(2, zoom);
return (
"https://mw1.google.com/mw-planetary/lunar/lunarmaps_v1/clem_bw/" + zoom + "/" + normalizedCoord.x + "/" + (bound - normalizedCoord.y - 1) + ".jpg"
);
},
tileSize: new google.maps.Size(256, 256),
maxZoom: 18,
})
);
function getNormalizedCoord(coord, zoom) {
const y = coord.y;
let x = coord.x;
// tile range in one direction range is dependent on zoom level 0 = 1 tile, 1 = 2 tiles, 2 = 4 tiles, 3 = 8 tiles, etc
const tileRange = 1 << zoom;
// don't repeat across y-axis (vertically)
if (y < 0 || y >= tileRange) {
return null;
}
// repeat across x-axis
if (x < 0 || x >= tileRange) {
x = ((x % tileRange) + tileRange) % tileRange;
}
return { x: x, y: y };
}
map.mapTypes.set(
"TPP",
new google.maps.ImageMapType({
name: "TopPlus",
getTileUrl: function (coord, zoom) {
const normalizedCoord = getNormalizedCoord(coord, zoom);
if (!normalizedCoord) { return ""; }
return ( "https://sgx.geodatenzentrum.de/wmts_topplus_open/tile/1.0.0/web/default/WEBMERCATOR/" + zoom + "/" + normalizedCoord.x + "/" + (Math.pow(2, zoom) - normalizedCoord.y - 1) + ".png" );
},
tileSize: new google.maps.Size(256, 256),
maxZoom: 18,
})
);
Italienisches Frühstück
Hab's eingebaut... mit Modifikationen... X und Y vertauschen und ohne die komische 2^zoom - y - 1 Verwurstung scheints jetzt erst mal zu funktionieren, ohne alle meine Tracks nach Brasilien zu verorten. Danke.Weiß nicht, obs hilft, mit etwas google maps api Suche und JSFiddle konnte ich das hier zum laufen bringen. Die Koordinaten werden wohl noch ge-normalized und die tileSize wird auch als Objekt übergeben:
Code:map.mapTypes.set( "TPP", new google.maps.ImageMapType({ name: "TopPlus", getTileUrl: function (coord, zoom) { const normalizedCoord = getNormalizedCoord(coord, zoom); if (!normalizedCoord) { return ""; } const bound = Math.pow(2, zoom); return ( "https://mw1.google.com/mw-planetary/lunar/lunarmaps_v1/clem_bw/" + zoom + "/" + normalizedCoord.x + "/" + (bound - normalizedCoord.y - 1) + ".jpg" ); }, tileSize: new google.maps.Size(256, 256), maxZoom: 18, }) ); function getNormalizedCoord(coord, zoom) { const y = coord.y; let x = coord.x; // tile range in one direction range is dependent on zoom level 0 = 1 tile, 1 = 2 tiles, 2 = 4 tiles, 3 = 8 tiles, etc const tileRange = 1 << zoom; // don't repeat across y-axis (vertically) if (y < 0 || y >= tileRange) { return null; } // repeat across x-axis if (x < 0 || x >= tileRange) { x = ((x % tileRange) + tileRange) % tileRange; } return { x: x, y: y }; }
Das müsste eigentlich dann doch auch mit deiner URL funktionieren, die allerdings mit Fehler invalid format (jpg). this tile set only supports (png). mit .png zurück kommt. Ggf. png statt jpg?
Hier mal in zusammengedampfter Version mit Korrektur jpg zu png die dann bei mir lief:
Code:map.mapTypes.set( "TPP", new google.maps.ImageMapType({ name: "TopPlus", getTileUrl: function (coord, zoom) { const normalizedCoord = getNormalizedCoord(coord, zoom); if (!normalizedCoord) { return ""; } return ( "https://sgx.geodatenzentrum.de/wmts_topplus_open/tile/1.0.0/web/default/WEBMERCATOR/" + zoom + "/" + normalizedCoord.x + "/" + (Math.pow(2, zoom) - normalizedCoord.y - 1) + ".png" ); }, tileSize: new google.maps.Size(256, 256), maxZoom: 18, }) );
Aber die getNormalizedCoord() nicht vergessen....
map.mapTypes.set(
"TPP",
new google.maps.ImageMapType({
name: "TopPlus",
getTileUrl: function (coord, zoom) {
return ( "https://sgx.geodatenzentrum.de/wmts_topplus_open/tile/1.0.0/web/default/WEBMERCATOR/" + zoom + "/" + coord.x + "/" + coord.y + ".png" );
},
tileSize: new google.maps.Size(256, 256),
maxZoom: 18,
})
);
Das hättest Du auch früher sagen können.
Wettertechnisch ist Spanien momentan aber auch gut...
Da hoffen wir, daß wir eine trockene Woche gefunden haben................................................
Super - hier regnet es jetzt auch wohl die nächsten paar Tage.
Uhu endfest richtet...
Eigentlich sollte die untere Auflage bei der P6 in die andere Richtung zeigen und stützt das Sattelgestell dann auch weiter hinten ab ... oder hast Du es so gedreht um etwas befestigen zu können?
Beidseitiges Doppelgrmpf. Hätte ja auch gestern in Finale passieren können, nicht heute irgendwo in der maximalen Bikepackingpampa.
Hmm... keine Ahnung mehr... hatte da glaub ich mal Platzprobleme wegen dem Clickfixdings für Zorrocarry. Nichtswissend gedreht und selbst verarscht?! Naja, den Sattel fahr ich insgesamt auch schon ziemlich lange... obenrum ist er sowieso komplett fertig und daheim liegt schon ein neuer auf Vorrat. Der Zeitpunkt ist halt etwas deppert jetzt.Eigentlich sollte die untere Auflage bei der P6 in die andere Richtung zeigen und stützt das Sattelgestell dann auch weiter hinten ab ... oder hast Du es so gedreht um etwas befestigen zu können?
31.05. 16:30 Ciclopedonale zwischen Framura und Levanto, 10m
Ciclopedonale Framura - Levanto: Tunnelfenster.