// ==UserScript== // @name WME GAIA + Otros Mapas // @name:es WME GAIA - Todos al GAIA // @version 1.2 // @description WME Ir a GaiaMDM, OpenStreetMap, Google Maps. Redirecciona a la página de cada servicio en la posición actual haciendo clic en la etiqueta de coordenadas de WME. // @description:es WME Go to GaiaMDM, OpenStreetMap, Google Maps te lleva a la posición en el mapa de cada servicio para que no tengas que hacer tantos clicks. // @author GWM_ // @include https://www.waze.com/editor/* // @include https://www.waze.com/*/editor/* // @include https://beta.waze.com/* // @exclude https://www.waze.com/user/editor* // @grant none // @license GPLv3 // @namespace https://greasyfork.org/es/users/1362250-gwm // @downloadURL none // ==/UserScript== (function() { function bootstrap(tries) { tries = tries || 1; if (window.W && window.W.map && window.W.model && $) { init(); } else if (tries < 1000) { setTimeout(function () {bootstrap(tries++);}, 200); } } bootstrap(); function init(){ createLinks(); console.log("WME G2GMDM + OSM + Maps v1.1 está corriendo."); } // Crea enlaces tanto para Gaia como para OpenStreetMap, Google Maps function createLinks(){ createLinkGaia(); createLinkOSM(); createLinkGoogleMaps(); } // Agrega enlace a Gaia function createLinkGaia(){ const $gaiaLink = $(""); $gaiaLink[0].onclick = go2GMDM; $(".WazeControlPermalink").append($gaiaLink); } // Abre Gaia en la posición actual function go2GMDM(){ const link = $(".permalink")[0].href; const lat = getQueryString(link, 'lat'); const lon = getQueryString(link, 'lon'); const zoom = getQueryString(link, 'zoom'); if (lat && lon && zoom) { const encodedCoords = btoa(`lat:${lat},lon:${lon},z:${parseInt(zoom)+8}`); window.open(`http://gaia.inegi.org.mx/mdm6/?v=${encodedCoords}`); } else { alert("Error: Coordenadas no encontradas."); } } // Agrega enlace a OpenStreetMap function createLinkOSM(){ const $osmLink = $(""); $osmLink[0].onclick = go2OSM; $(".WazeControlPermalink").append($osmLink); } // Abre OpenStreetMap en la posición actual function go2OSM(){ const link = $(".permalink")[0].href; const lat = getQueryString(link, 'lat'); const lon = getQueryString(link, 'lon'); if (lat && lon) { window.open(`https://www.openstreetmap.org/?mlat=${lat}&mlon=${lon}&zoom=14`); } else { alert("Error: Coordenadas no encontradas."); } } // Agrega enlace a Google Maps function createLinkGoogleMaps(){ const $googleMapsLink = $(""); $googleMapsLink[0].onclick = go2GoogleMaps; $(".WazeControlPermalink").append($googleMapsLink); } // Abre Google Maps en la posición actual function go2GoogleMaps(){ const link = $(".permalink")[0].href; const lat = getQueryString(link, 'lat'); const lon = getQueryString(link, 'lon'); if (lat && lon) { window.open(`https://www.google.com/maps/search/?api=1&query=${lat},${lon}`); } else { alert("Error: Coordenadas no encontradas."); } } // Función para obtener los parámetros del permalink function getQueryString(link, name){ const pos = link.indexOf( name + '=' ) + name.length + 1; const len = link.substr(pos).indexOf('&'); if (len === -1) return link.substr(pos); return link.substr(pos,len); } })();