// ==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);
}
})();