Greasy Fork 支持简体中文。

Mefi OSM

Replace Google Maps with OpenStreetMap on Metafilter

  1. // ==UserScript==
  2. // @name Mefi OSM
  3. // @namespace exp?zworp!
  4. // @version 0.667
  5. // @description Replace Google Maps with OpenStreetMap on Metafilter
  6. // @author farlukar
  7. // @match https://www.metafilter.com/user/*
  8. // @match https://irl.metafilter.com/*
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12.  
  13. // link in user profile
  14. if (document.URL.match(/https:\/\/www.metafilter.com\/user\/*/)) {
  15.  
  16. let mapLink = document.querySelector("a[title='View on Google Maps']");
  17. let coordinates = mapLink.href.replace(/.*ll=([^&]*)&.*/,"\$1").split(',');
  18. mapLink.href = "https://www.openstreetmap.org/?mlat=" + coordinates[0] + "&mlon=" + coordinates[1] + "#map=4/" + coordinates[0] + "/" + coordinates[1];
  19. mapLink.title = "View on OpenStreetMap";
  20.  
  21. }
  22.  
  23.  
  24. // map in irl
  25. if (document.URL.match(/https:\/\/irl.metafilter.com\/*/)) {
  26.  
  27. let address = document.querySelector("div#address a");
  28. let ll = address.href.split('@');
  29. let coordinates = ll[1].split(',');
  30. let lat = Number(coordinates[0]);
  31. let lon = Number(coordinates[1]);
  32. let toplat = String(lat + 0.005);
  33. let bottomlat = String(lat - 0.005);
  34. let leftlon = String(lon - 0.013);
  35. let rightlon = String(lon + 0.013);
  36. lat = String(lat);
  37. lon = String(lon);
  38. let showMap = document.getElementById("map");
  39. showMap.innerHTML = "<iframe width='580' height='200' frameborder='0' scrolling='no' style='margin:0' src='https://www.openstreetmap.org/export/embed.html?bbox=" + leftlon + "," + bottomlat + "," + rightlon +"," + toplat + "&amp;marker=" + lat + "," + lon + "'></iframe>";
  40. address.href = "https://www.openstreetmap.org/directions?engine=osrm_car&route=;" + lat + "," + lon + "#map=12/" + lat + "/" +lon;
  41.  
  42. }