Advertisement
Guest User

Openstreetmapru bookmarklet sources

a guest
Jan 18th, 2014
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function() {
  2.   var url, latlon, lat, lon, isYandex, zoom, map;
  3.  
  4.   url = decodeURIComponent(window.location);
  5.  
  6.   // Common style
  7.   lat = (lat = /(?:lat|latitude|\Wlt)[^\d-]+([\d.-]*)/.exec(url)) == null ? lat : lat[1];
  8.   lon = (lon = /(?:lon|lng|long|longitude|\Wln)[^\d-]+([\d.-]*)/.exec(url)) == null ? lon : lon[1];
  9.   zoom = (zoom = /(?:zoom|\Wz)\D*([\d.]*)/.exec(url)) == null ? '14' : zoom[1];
  10.  
  11.   // Google and Yandex style
  12.   if (!(lat && lon)) {
  13.     latlon = (latlon = /ll=([\d.,-]*)/.exec(url)) == null ? latlon : latlon[1].split(',');
  14.  
  15.     if (latlon && latlon.length > 1) {
  16.       isYandex = /\/\/[^\/]*yandex/.test(url) | 0;
  17.       lon = latlon[1 - isYandex];
  18.       lat = latlon[isYandex];
  19.     }
  20.   }
  21.  
  22.   // Openstreetmap new style
  23.   if (!(lat && lon)) {
  24.     latlon = /(\d+)\/(-?\d+\.\d+)\/(-?\d+\.\d+)/.exec(url);
  25.     if (latlon) {
  26.       lat = latlon[2];
  27.       lon = latlon[3];
  28.       zoom = latlon[1];
  29.     }
  30.   }
  31.  
  32.   // 2Gis style
  33.   if (!(lat && lon)) {
  34.     latlon = /(-?\d+\.\d+),(-?\d+\.\d+)\/zoom\/(\d+)/.exec(url);
  35.     if (latlon) {
  36.       lat = latlon[2];
  37.       lon = latlon[1];
  38.       zoom = latlon[3];
  39.     }
  40.   }
  41.  
  42.   // Vkontakte
  43.   if (!(lat && lon)) {
  44.     map = window.placeMap || (window.cur ? window.cur.placeMap : null);
  45.     if (map) {
  46.       latlon = map.getCenter();
  47.       lat = latlon.lat;
  48.       lon = latlon.lon;
  49.       zoom = map.getZoom();
  50.     }
  51.   }
  52.  
  53.   // Bing
  54.   if (!(lat && lon)) {
  55.     map = window.map;
  56.     if (map && map.get_center && map.get_zoomLevel) {
  57.       latlon = map.get_center();
  58.       lon = latlon.longitude;
  59.       lat = latlon.latitude;
  60.       zoom = map.get_zoomLevel();
  61.     }
  62.   }
  63.  
  64.   if (!(lat && lon)) return;
  65.  
  66.   window.location = 'http://openstreetmap.ru/#zoom=' + zoom + '&lat=' + lat + '&lon=' + lon;
  67. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement