您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adiciona um único botão ao menu de contexto para enviar coordenadas ao Google Earth Pro.
// ==UserScript== // @name Abrir no Google Earth Pro // @namespace http://tampermonkey.net/ // @version Final-Simplificado // @description Adiciona um único botão ao menu de contexto para enviar coordenadas ao Google Earth Pro. // @author PJ H // @match *://mapear.esteio.com.br/* // @match http://10.72.200.50/sede/paginas/index.php* // @match http://192.168.2.147/sede/paginas/index.php?pagina=edificacao // @match http://mapear.esteio.com.br/fortal-v3/paginas/ // @grant GM_xmlhttpRequest // @connect localhost // ==/UserScript== (function () { 'use strict'; const MENU_ID = '#map-context-menu'; // Envia as coordenadas para o servidor local que abre o Google Earth Pro. function sendToEarthPro(lat, lng) { console.log(`%c[Earth Pro] Enviando coordenadas: Lat: ${lat}, Lng: ${lng}`, 'color: #00695c; font-weight: bold;'); GM_xmlhttpRequest({ method: "POST", url: "http://localhost:3000/open-in-ge", headers: { "Content-Type": "application/json" }, data: JSON.stringify({ lat: lat, lng: lng }), onload: (response) => console.log("[Earth Pro] Resposta do servidor:", response.responseText), onerror: (error) => { console.error("[Earth Pro] Erro ao conectar com o servidor local:", error); alert("Não foi possível conectar ao servidor local. Verifique se ele está em execução."); } }); } // Função que adiciona apenas o nosso botão function addEarthProButton(panel) { // Verifica se o botão já existe para não adicionar de novo if (panel.querySelector('#tm-earth-pro-btn')) return; // Lê o texto do painel para extrair as coordenadas const text = panel.innerText; const latMatch = text.match(/Lat:\s*([-.\d]+)/i); const lngMatch = text.match(/Lng:\s*([-.\d]+)/i); if (!latMatch || !lngMatch) return; const lat = parseFloat(latMatch[1]); const lng = parseFloat(lngMatch[1]); // Cria o botão para o Earth Pro const earthProBtn = document.createElement('button'); earthProBtn.id = 'tm-earth-pro-btn'; // ID único para nosso botão earthProBtn.textContent = '🛰️ Abrir no Earth Pro'; // Estilo do botão Object.assign(earthProBtn.style, { cursor: 'pointer', backgroundColor: '#00695c', color: 'white', border: 'none', padding: '10px', marginTop: '8px', borderRadius: '4px', width: '100%', textAlign: 'center', fontSize: '14px', fontFamily: 'inherit' }); earthProBtn.addEventListener('click', () => { sendToEarthPro(lat, lng); }); // Adiciona uma linha divisória e o botão ao menu panel.appendChild(document.createElement('hr')); panel.appendChild(earthProBtn); } // Observa quando o painel aparece ou atualiza const mo = new MutationObserver(() => { const panel = document.querySelector(MENU_ID); if (panel && panel.style.display !== 'none') { addEarthProButton(panel); } }); mo.observe(document.documentElement, { childList: true, subtree: true }); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址