WME-JumpMaps

The script adds in the WME links to third party mapping systems (yandex/2gis/nokia/bing/etc.)

目前为 2016-05-12 提交的版本。查看 最新版本

// ==UserScript==
// @name WME-JumpMaps
// @namespace_s https://gf.qytechs.cn/ru/scripts/19626-wme-jumpmaps
// @description The script adds in the WME links to third party mapping systems (yandex/2gis/nokia/bing/etc.)
// @include https://*.waze.com/*editor/*
// @include https://*.waze.com/*map-editor/*
// @include https://*.waze.com/*beta_editor/*
// @include https://n.maps.yandex.ru/*
// @include https://maps.yandex.ru/*
// @include https://www.google.*/maps/*
// @include http://2gis.ru/*
// @include https://2gis.ru/*
// @include http://mapcam.info/speedcam/*
// @include https://mapcam.info/speedcam/*
// @include http://maps.rosreestr.ru/*
// @include https://maps.rosreestr.ru/*
// @include http://wikimapia.org/*
// @include https://wikimapia.org/*
// @include http://*.balticmaps.eu/*
// @include https://*.balticmaps.eu/*
// @include http://balticmaps.eu/*
// @include https://balticmaps.eu/*
// @include http://*.map.nca.by/*
// @include https://*.map.nca.by/*
// @include http://map.nca.by/*
// @include https://map.nca.by/*
// @include https://www.kadastrs.lv/map/*
// @include http://www.openstreetmap.org/*
// @include https://www.openstreetmap.org/*
// @match https://*.waze.com/*map-editor/*
// @match https://*.waze.com/*editor/*
// @match https://*.waze.com/*beta_editor/*
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACcAAAAnCAYAAACMo1E1AAAJiklEQVRYCc1YaWxU1xX+3uZZvALGZjG7y2bMEsBJnVDsFlEgRTQqXQhS1bRVm+CkqIW0SaVUpKqiSE2qQINEkFrRkPQHRkUVCaGUBIckDmERxbUxDWAZzGK8YHvGnhnP8l6/c+1nvANNg3KlO3c7757vnu2euZrjOLjbsvMUrFi8ukhLOA/z+6mAM86BNg4aRsFBswbnGqCx4iJM/YBlzir7yULE7paPdjfgtpdXf8WB/TiZr+KZ0u+UmaahjeAPaNB3lBTOOnrH390JuO0nzuYh5rxI2m/c6cZD0Wma9hYs7ZmSxbOrhqJx54eVXBlgVpVXvsxTPwnH0d2PPnOrabYO7Y+zC2dvLgLiQ+03JLjtx8+NQjxRSmkVD/XxZ52nFI/ANL5dUjCzebC9BgVHYNMRi79DV6Gxf75FA2pgmSsJ8NP+nAaAUxKLxY/fC2AumG6ABf0laLoE0pbRxpQq71Bi7S03ce3TGlyqPIfW+uuIRjqgaTqS/KnIyMrGpDkzMWH2dHhTUnqzGdAXQWg0IfJfXtTLBvtIbnt55VaGiJ8N+LrfRKChHlVHjyFw5SwmZd9AXm47skcE4UsK028SiHQaaGz1oOp8Oi42zUBO/gPIW/Jl6JbVb6e+Q4acbSWFcza6sz3gJFw4Mafidl5Ze/oUKg4dwFeXtGDtsiZMTb0B3W4FbMZYmwoiB+hSbdgJHZX1qdhRmovrkSV46Ltr4ElOc3kPbOnFmqXNdcPMrfDAOHY7YNUfvI+zh/fiuZ834Jn1l5FrXYQeoKO1k0/YC0R9QCdb6Xf4oEc8mJsVwksbzyBv7Hv4ZN87sOPDXBQSrgRHd1HgVOS/TYC9eq4al47/A7/7dQhLpl0H6nk7RaOUFFWl03R1g5Xb9VQZs8aS4I9YePb71UiNlaHqw2Mu70FbCfSCRxYVOLmSBqXsnoy0B3By/35sfDyK+3KagGaC0whMJzCtFzA6A7RuUAJM9YWFgeSEgQ3rLqLmkyNov3lzOHa8nrvw6HKJy105HPWFk6eRP70ZX5sXABobeM+LxAhKwIh9KVAy7gYroOj4CpwLPmph4ZQgFs26hNrK/wzHjvmDs0pw6ZJdDHeJRyMRXKk4iUe/ZUMP0fATwS4wlEYXKJGWC0QcQcbdoFVfgLJKP25gxYMNqD9fPSw4wSO4dEl7hqO8UVOL0WmNyJ8coZFTcnIVKkkJCIIRxmId0pd5jh1K0BHA6gBsFD3pYiZm5rQgdKMSZW/uRe2/zjA2hkkwsAgunQY4deDSrZlrFy7ivnmAR+cmMVYFSMAIEGlFWuyytQnI7rYzh630paW4WXkox0JWxjS88KyJRwpPIVjxBj7c/WdI3OxfBBe3dcb1X3DHjm0jUH8F+bMIoLOT0wwDAsYQKTGus+mKaV2tcljRMHdVDix90wP4soF0njCrGFr6fCxamIX1j47EKy+Pxvzca/h4z16XZa/WGWeqDJb+MViJhsPQOtuQlWmjJRRmjKJqSctLQCFgxGTLsUhIJwjDT1RJDJde2KBqHQ8SmpeCo0TpQ3ZLEJ3hFjQHTVy+buDMvx1cupGGOcVLBrAXXGZ3aj1gUU1QMr6MFPzh1Q6MGb+MYa0TCdvpqjyP6iccmKZFCVno6IggwbHtaIiTzmFreLzojHQyyZETkZ3lR1vdVYzMmYzJCxZhUfFE+NIGuTWY8puS8/OrsYOh8/iTkZ4zDZnx8fjpLzYj2B6i9ei0HgIkuLgI3EpC5YlynDn+MdY89mMkGPvC0bhaaw204ljp68j9+jKkjJuMMD0fSV5U73oJcx5cjKwv5Q3GtmuOuBil5M/I0KWprhaTpkyARmfw2GGkIYxRehRZZgzZrBOpyfCVC0wEDiNLiyDHY2N8UgI5PgcjowHUlR+Gt6kOE/waxlgJjIgFYbe3wZOWMTRTrgguMVmCcxb2pqSnIBxsw9XqSoTq6zBv4QaqLEQSqorWZPBTCVuWHI12uXbtd7BmzTdhWB5E43FETROdcRsZUybihdf3UIo6OjojGJ2ZhgsVZ5Dk8yM1M6s3y0H62jWTqXKNgOldKg7+DS0155HsScITTz6FtIwRiNJbDbqjTQ+2DYdJh04VanReBmf2daozQWASOLyc9/DeEftLS/YiznnH64dl6Cg9uA+TFi7htUtnGr5cNB1De5tG1JNDCX08Fke634vnnv8tDG8ymm+2UFYSNxJITvbDobHzULAsExHxaM7L2D2izcN6vB7+ZeVMIgHL76OUdezauQNB04cF+QuGhyWr/L+rvXbSsWKdlY1yZbhf2NzwWOlfkBIO4KlNmzEyexxa24K0fRMfHHkXh97eT090sHLVwyhevkIZui7xj0WA+ai2qorT2PPXN9EeCKKgsBBJPMi7Hx3D0h9soHfext74P9fyzBlt7H9ti328rnEu981Xu/NH4ynHTp+F+sZG/P2NXYh2tGP6jOk4evif2Pr7F2l/7Qi0tuL9I+9hZOYo5M2dj2gsRslRnV4vLl+qxW9+9TSzqmsI0VYraWe1V+qx9LESpIzMVAcTXiJtKXJQt68mNG3fE/dnldIhxDP0HQwO69QCf+RmMOjy81c+gpYFBfjoyEGUPb0JwZZmpPHUAkgOYJP5UQJ8aGkRHUDimoMYc7xDb+1HhGEje8wY+JJ9aGm6yX+AvAIZz5TqSUc0ip0C5jLubgWPdG+l6eVV+0mo/tEnHFttIh8avIcYSxFqY8zavQOtV2rhT02lA2iUXoAemkS1j+mRhrhxKBBAqPUmvH4/VexFoC0A0+PDil8+Dy8dQwHqAUdeZCD7KUB8ESgpzFstfSU5NcsnAl6dq0hJOhq3ErXOllLkQVPTM7B4zfdQ9qdt6CAzKRalW7j+R8jKnYEY1SrbG7wpIsFWlO3cio6WJkRDIbXH3NVrqXIGRZa+KqSnd+GSBd56xNFdjC1btqhuwfjRjSfqGkZxcL94pmzgVnYUjZcqTcuZiIbaC8q+Fq/7IcbPyqeKDZiUoEhRNwxY9PCxs/OZ8TYjxCx65vLVmPnQMgVebdTrx8UlU7qmbyt5YPZud7lHrTJRRklWlVcdotSKXYJ71VIQR/IK85YXqdyqi6tkYj2lSBb4dsHT1PRM3oOO4ke+in8vfn3Aybx6EuDbxb0CqPh0vZVIAtKnDAAnq+pRxTILRNR9qP/PA7U/+Qz2iCOs+thcf95lygY/n/c5xoNX8wrnbCrqZWP9+Q8LziX+Qr5suuDc9gv5JuyCc9s7fU2nTdVI1vO/vqb/Fz8AGFNbpfcoAAAAAElFTkSuQmCC
// @version 2.9.0.1
// @author skirda
// @grant none
// @namespace https://gf.qytechs.cn/users/5363
// ==/UserScript==

var wmeJM_version = "2.9.0.1";
console.log("WME-JumpMaps (" + wmeJM_version + "): Start");

var wmeJM_IconWME='data:image/png;base64,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';
//'

var wmeJM_countProbe=0;
var wmeJM_debug=false;

/*
localStorage:

	WMEJumpMapsDebug ==  "true" || "1" - enable debug
	WMEJumpMapsLink  == links

localStorage.getItem(Name)
localStorage.setItem(Name,value)
localStorage.removeItem(Name)

localStorage.removeItem("WMEJumpMapsDebug")
localStorage.removeItem("WMEJumpMapsLink")
localStorage.setItem("WMEJumpMapsDebug","1")
*/

var wmeJM_Config = [
	{save:0, id:"_map_WME",    title:"Open in WME",               name:"[WME]",  template:'https://www.waze.com/editor/?env=row&zoom={{zoom}}&lat={{lat}}&lon={{lon}}'},
	{save:0, id:"_map_WMEB",   title:"Open in WME Beta",          name:"[WMEB]", template:'https://editor-beta.waze.com/editor/?env=row&zoom={{zoom}}&lat={{lat}}&lon={{lon}}'},
	{save:0, id:"_map_LI",     title:"Open in LiveMap",           name:"[Live]", template:'https://www.waze.com/livemap/?zoom={{zoom}}&lon={{lon}}&lat={{lat}}'},
	// -------------------------------------
	{save:1, id:"_map_2GIS",   title:"Open in 2GIS Map",          name:"[2Gis]", template:'http://2gis.ru/?queryState=center/{{lon}}%2C{{lat}}/zoom/{{zoom}}'},
	{save:1, id:"_map_NM",     title:"Open in Yandex Narod",      name:"[NYM]",  template:'http://n.maps.yandex.ru/?ll={{lon}}%2C{{lat}}&z={{zoom}}&l=pmap'},
	{save:1, id:"_map_SC",     title:"Open in mapcam.info",       name:"[SC]",   template:'http://mapcam.info/speedcam/?lng={{lon}}&lat={{lat}}&z={{zoom}}&t=OSM'},
	{save:1, id:"_map_WM",     title:"Open in wikimapia.org",     name:"[WM]",   template:'http://wikimapia.org/#lang=ru&lat={{lat}}&lon={{lon}}&z={{zoom}}&m=b'},
	{save:1, id:"_map_RE",     title:"Open in RosReestr",         name:"[RE]",   template:'http://maps.rosreestr.ru/PortalOnline/?l={{zoom}}&x={{lon}}&y={{lat}}&mls=map|anno&cls=cadastre'},
	{save:1, id:"_map_GM",     title:"Open in Google MapMaker",   name:"[GMM]",  template:'https://www.google.com/mapmaker?ll={{lat}},{{lon}}&z={{zoom}}&spn=0.01277,0.030212&lyt=large_map_v3'},
	{save:1, id:"_map_BP",     title:"Open in benzin-price.ru",   name:"[BP]",   template:'http://www.benzin-price.ru/m/index.php?lat={{lat}}&lon={{lon}}&distance=1'},// distance=1 == 500m, 2 == 2km... 5km, 10km},
	{save:1, id:"_map_NAVITEL",title:"Open in Navitel",           name:"[Navi]", template:'http://maps.navitel.su/?zoom={{zoom}}&lat={{lat}}&lon={{lon}}'},
	{save:1, id:"_map_OSM",    title:"Open in OSM",               name:"[OSM]",  template:'http://www.openstreetmap.org/#map={{zoom}}/{{lat}}/{{lon}}'},
	{save:1, id:"_map_SC2",    title:"Open in SpeedCamOnLine.ru", name:"[SCO]",  template:'http://speedcamonline.ru/view/Rus/{{lat}}/{{lon}}/{{zoom}}'},
	{save:1, id:"_map_NMO",    title:"Open in Old Yandex Narod",  name:"[NYMO]", template:'http://old.n.maps.yandex.ru/?ll={{lon}}%2C{{lat}}&z={{zoom}}&l=pmap'},
	{save:1, id:"_map_YM",     title:"Open in Yandex Map",        name:"[YM]",   template:'http://maps.yandex.ru/?ll={{lon}}%2C{{lat}}&z={{zoom}}&l=pmap%2Cstv'},
	{save:1, id:"_map_YMO",    title:"Open in Old Yandex Map",    name:"[YMO]",  template:'http://old.maps.yandex.ru/?ll={{lon}}%2C{{lat}}&z={{zoom}}&l=pmap'},
	{save:1, id:"_map_Google", title:"Open in Google Map",        name:"[G]",    template:'http://www.google.com/maps/?ll={{lat}}%2C{{lon}}&z={{zoom}}&t=m'},
	{save:1, id:"_map_BING",   title:"Open in Bing Map",          name:"[Bing]", template:'http://www.bing.com/maps/?v=2&cp={{lat}}~{{lon}}&lvl={{zoom}}&dir=0&sty=h&form=LMLTEW'}, // sty: "h" - ariel, "r" - map
	{save:1, id:"_map_NOKIA",  title:"Open in Nokia Map",         name:"[Nokia]",template:'https://www.here.com/?map={{lat}},{{lon}},{{zoom}},normal'}, // "hybrid.day" - ariel, "normal.day" - map
	{save:1, id:"_map_BM",     title:"Open in Baltic Maps",       name:"[BM]",   template:'http://balticmaps.eu/?lang=lv&centerx={{lon}}&centery={{lat}}&zoom={{zoom}}&layer=map&ls=o'},
	{save:1, id:"_map_KDL",    title:"Open in Kadastr LV",        name:"[KDL]",  template:'https://www.kadastrs.lv/map/di?xy={{lat}},{{lon}}&z={{zoom}}'},
	{save:1, id:"_map_NCABY",  title:"Open in Kadastr BY",        name:"[NCA]",  template:'http://map.nca.by/map.html?xy={{lat}},{{lon}}&z={{zoom}}'}
];


var wmeJM_ArrW2B  =[{w:7,b:-2},{w:6,b:-1},{w:5,b:0},{w:4,b:1},{w:3,b:2},{w:2,b:3},{w:1,b:4},{w:0,b:5}];
var wmeJM_ArrW2KDL=[{w:0,r:75000},{w:1,r:50000},{w:2,r:15000},{w:3,r:10000},{w:4,r:5000},{w:5,r:3000},{w:6,r:1000},{w:7,r:750},{w:8,r:500},{w:9,r:200}];

// где мы сейчас?
function WmeJM_GetLocationType()
{
	if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_GetLocationType(), location.hostname=" + location.hostname + ", location.href=" + location.href);

	if (location.hostname == "www.waze.com" || location.hostname == "editor-beta.waze.com")
		return "waze";
	if (location.hostname == "n.maps.yandex.ru")
		return "NM";
	if (location.hostname == "maps.yandex.ru")
		return "YM";
	if (location.hostname == "maps.google.com" || location.hostname == "www.google.com" || location.hostname == "www.google.ru")
		return "google";
	if (location.hostname == "2gis.ru")
		return "2gis";
	if (location.hostname == "maps.rosreestr.ru")
		return "re";
	if (location.hostname == "mapcam.info")
		return "sc";
	if (location.hostname == "wikimapia.org")
		return "wm";
	if (location.hostname == "balticmaps.eu")
		return "bm";
	if (location.hostname == "www.kadastrs.lv")
		return "kdl";
	if (location.hostname == "map.nca.by")
		return "ncaby";
	if (location.hostname == "www.openstreetmap.org")
		return "osm";
	return "";
}

function __getQueryString(link, name)
{
	if (link.indexOf( name + '=' ) <= 0)
		return -1;
	var pos = link.indexOf( name + '=' ) + name.length + 1;
	var len = link.substr(pos).indexOf('&');
	return (len == -1)?link.substr(pos):link.substr(pos,len);
}

// только получение координат и зума как есть (преобразования потом)
function WmeJM_GetLLZ()
{
	var lat=lon=zoom=0;
	var locType=WmeJM_GetLocationType();
	switch(locType)
	{
		case "waze":
		{
			var urPos=new OpenLayers.LonLat(Waze.map.center.lon,Waze.map.center.lat);
			urPos.transform(new OpenLayers.Projection("EPSG:900913"),new OpenLayers.Projection("EPSG:4326"));
			zoom=Waze.map.zoom;
			lat=urPos.lat;
			lon=urPos.lon;
			break;
		}
		case "NM":
		{
			zoom = parseInt(__getQueryString(location.href, 'z'));
			var ll = __getQueryString(location.href, 'll').split('%2C');
			lat=ll[1];
			lon=ll[0];
			break;
		}
		case "YM":
		{
			var qll=__getQueryString(location.href, 'll')
			if (qll != -1)
				lnk=location.href
			else // Грязный хак :-(
				lnk=document.getElementsByClassName("home-panel-content-view_has-panorama__link-nmaps")[0].href;

			var ll = __getQueryString(lnk, 'll').split('%2C');
			lat=ll[1];
			lon=ll[0];
			zoom = parseInt(__getQueryString(lnk, 'z'));
			break;
		}
		case "google":
		{
			var l=location.href.substr(location.href.indexOf("@")+1).split(",");
			lat=l[0];
			lon=l[1];
			zoom=str.replace(re, '$1.$2').split(".");
			break;
		}
		case "2gis":
		{
			// http://2gis.ru/#!/voronezh/center/39.40487%2C51.621363/zoom/15/state/index
			// queryState=center%2F37.614634%2C55.627681%2Fzoom%2F16
			var href=location.href;
			var ll="";
			if(location.href.indexOf("queryState=") > 0)
				ll = location.href.split('=')[1].split('%2F');
			else
				ll = location.href.split('/');

			for (var i=0; i < ll.length; ++i)
			{
				if (ll[i] == "center")
				{
					var ll0=ll[i+1].split("%2C");
					if (ll0.length < 2)
						ll0=ll[i+1].split(",");
					if(wmeJM_debug) console.log(ll0.length);
					lon=ll0[0];
					lat=ll0[1];
				}
				else if (ll[i] == "zoom")
					zoom=parseInt(ll[i+1]);
			}

			break;
		}
		case "re":
		{
			if (!(typeof esri === "undefined"))
			{
				zoom=_map.getLevel()
				lon=_map.extent.getCenter().x
				lat=_map.extent.getCenter().y
			}
			break;
		}
		case "sc":
		{
			lon=map.center.lng();
			lat=map.center.lat();
			zoom=map.getZoom();
			break;
		}
		case "wm":
		{
			lat = __getQueryString(location.href, 'lat');
			lon = __getQueryString(location.href, 'lon');
			zoom = __getQueryString(location.href, 'z');
			break;
		}
		case "bm":
		{
			lon=map.center.lng();
			lat=map.center.lat();
			zoom=map.getZoom();
			break;
		}
		case "kdl":
		{
			var frmap=null;
			for(var ii=0; ii < frames.length; ++ii)
				if(!(typeof (frames[ii].esri) === "undefined"))
				{
					frmap=frames[ii];
					break;
				}
			if(frmap)
			{
				// BUGBUG!!!
				frmap.document.getElementById("dijit_form_Button_14").click()
				var url=frmap.document.getElementById("dijit_Dialog_0").getElementsByTagName("textarea")[0].value
				frmap.document.getElementsByClassName("dijitDialogCloseIcon")[0].click()
				// https://www.kadastrs.lv/map/di?xy=507833.2477552314,311378.4889039769&z=5000

				var ll = __getQueryString(url, 'xy').split(',');
				lon=ll[0]; //???
				lat=ll[1]; //???
				zoom=parseInt(__getQueryString(url, 'z'))
				//if(wmejm_debug) console.log("z="+z)
			}
			break;
		}
		case "ncaby":
		{
			if (!(typeof esri === "undefined"))
			{
				zoom=map.getLevel()
				lon=map.extent.getCenter().x
				lat=map.extent.getCenter().y
			}
			break;
		}
		case "osm":
		{
			var xy=OSM.mapParams()
			lon=xy.lon;
			lat=xy.lat;
			zoom=xy.zoom;
			break;
		}
	}

	if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_GetLLZ(): locType="+locType+": return {lat="+lat+",lon="+lon+",zoom="+zoom+"}");

	return {lat:lat,lon:lon,zoom:zoom};
}

// преобразование из "ихних" в "наши"
function WmeJM_Convert_Other2WME(llz)
{
	var locType=WmeJM_GetLocationType();
	if (locType != "waze")
		llz.zoom = llz.zoom - 12;
	switch(locType)
	{
		case "waze":
		{
			break;
		}
		case "NM":
		{
			break;
		}
		case "YM":
		{
			break;
		}
		case "google":
		{
			var re = /([0-9]+)([zm]+).*/;
			var zoomAttr = llz.zoom.replace(re, '$1.$2').split(".");
			if (zoomAttr[1] === "m")
			{
				var ArrM2Z=new Array(
				{z:1,m:51510000},{z:2,m:25755000},{z:3,m:12877500},{z:4,m:6438750},{z:5,m:3219375},{z:6,m:1609687},{z:7,m:804844},{z:8,m:402422},
					{z:9,m:201211},{z:10,m:100605},{z:11,m:50303},{z:12,m:25151},{z:13,m:12576},{z:14,m:6288},{z:15,m:3144},{z:16,m:1572},{z:17,m:786},
					{z:18,m:393},{z:19,m:196},{z:20,m:98},{z:21,m:49},{z:22,m:25},{z:23,m:12}
				);
				var z=parseInt(zoomAttr[0])
				for(var i=0; i < ArrM2Z.length-1; ++i)
				{
					if(z <= ArrM2Z[i].m && z >= ArrM2Z[i+1].m)
					{
						llz.zoom=ArrM2Z[i].z
						break;
					}
				}
			}
			else
				llz.zoomAttr[0];
			break;
		}
		case "2gis":
		{
			break;
		}
		case "re":
		{
			if (!(typeof esri === "undefined"))
			{
				var incoord={x:llz.lon,y:llz.lat}
				var inSR = new esri.SpatialReference({wkid: 900913});
				geometry = new esri.geometry.Point(incoord.x,incoord.y,inSR)
				var g = esri.geometry.webMercatorToGeographic(geometry);
				llz.lon=g.x
				llz.lat=g.y
			}
			break;
		}
		case "sc":
		{
			break;
		}
		case "wm":
		{
			break;
		}
		case "bm":
		{
			if (!(typeof Kijs_Lks_2_LatLon === "undefined"))
			{
				var g=Kijs_Lks_2_LatLon(llz.lon,llz.lat); //??
				llz.lon=g.lon
				llz.lat=g.lat
			}
			for(var i=0; i < wmeJM_ArrW2B.length; ++i)
			{
				if(map.zoom_level == wmeJM_ArrW2B[i].b)
				{
					llz.zoom=wmeJM_ArrW2B[i].w
					break;
				}
			}
			break;
		}
		case "kdl":
		{
			// function convert from https://gist.github.com/laacz/8654c9bb3f62e6a6c201b11075ad5905
			function LKSToLatLon(t,a){function o(t){return t/Math.PI*180}function f(t){return t*Math.PI/180}return UTMScaleFactor=.9996,sm_a=6378137,sm_b=6356752.314,sm_EccSquared=.00669437999013,t-=5e5,a-=-6e6,t/=UTMScaleFactor,a/=UTMScaleFactor,lambda0=f(24),n=(sm_a-sm_b)/(sm_a+sm_b),alpha_=(sm_a+sm_b)/2*(1+Math.pow(n,2)/4+Math.pow(n,4)/64),y_=a/alpha_,beta_=3*n/2+-27*Math.pow(n,3)/32+269*Math.pow(n,5)/512,gamma_=21*Math.pow(n,2)/16+-55*Math.pow(n,4)/32,delta_=151*Math.pow(n,3)/96+-417*Math.pow(n,5)/128,epsilon_=1097*Math.pow(n,4)/512,phif=y_+beta_*Math.sin(2*y_)+gamma_*Math.sin(4*y_)+delta_*Math.sin(6*y_)+epsilon_*Math.sin(8*y_),ep2=(Math.pow(sm_a,2)-Math.pow(sm_b,2))/Math.pow(sm_b,2),cf=Math.cos(phif),nuf2=ep2*Math.pow(cf,2),Nf=Math.pow(sm_a,2)/(sm_b*Math.sqrt(1+nuf2)),Nfpow=Nf,tf=Math.tan(phif),tf2=tf*tf,tf4=tf2*tf2,x1frac=1/(Nfpow*cf),Nfpow*=Nf,x2frac=tf/(2*Nfpow),Nfpow*=Nf,x3frac=1/(6*Nfpow*cf),Nfpow*=Nf,x4frac=tf/(24*Nfpow),Nfpow*=Nf,x5frac=1/(120*Nfpow*cf),Nfpow*=Nf,x6frac=tf/(720*Nfpow),Nfpow*=Nf,x7frac=1/(5040*Nfpow*cf),Nfpow*=Nf,x8frac=tf/(40320*Nfpow),x2poly=-1-nuf2,x3poly=-1-2*tf2-nuf2,x4poly=5+3*tf2+6*nuf2-6*tf2*nuf2-3*(nuf2*nuf2)-9*tf2*(nuf2*nuf2),x5poly=5+28*tf2+24*tf4+6*nuf2+8*tf2*nuf2,x6poly=-61-90*tf2-45*tf4-107*nuf2+162*tf2*nuf2,x7poly=-61-662*tf2-1320*tf4-720*(tf4*tf2),x8poly=1385+3633*tf2+4095*tf4+1575*(tf4*tf2),lat=phif+x2frac*x2poly*(t*t)+x4frac*x4poly*Math.pow(t,4)+x6frac*x6poly*Math.pow(t,6)+x8frac*x8poly*Math.pow(t,8),lon=lambda0+x1frac*t+x3frac*x3poly*Math.pow(t,3)+x5frac*x5poly*Math.pow(t,5)+x7frac*x7poly*Math.pow(t,7),{lat:o(lat),lon:o(lon)}}
			var g=LKSToLatLon(llz.lon,llz.lat); // ???
			llz.lon=g.lon
			llz.lat=g.lat

			for(var i=0; i < wmeJM_ArrW2KDL.length-1; ++i)
			{
				//if(wmejm_debug) console.log(i+") z="+z+", ["+wmeJM_ArrW2KDL[i].r+", "+wmeJM_ArrW2KDL[i+1].r+"] = " + (z >= wmeJM_ArrW2KDL[i+1].r && z <= wmeJM_ArrW2KDL[i].r))
				if(llz.zoom >= wmeJM_ArrW2KDL[i+1].r && llz.zoom <= wmeJM_ArrW2KDL[i].r)
				{
					llz.zoom=wmeJM_ArrW2KDL[i].w
					break;
				}
			}
			//zoom = zoom - 12; if (zoom < 0) zoom=0; //???
			break;
		}
		case "ncaby":
		{
			if (!(typeof esri === "undefined"))
			{
				var incoord={x:llz.lon,y:llz.lat}
				var inSR = new esri.SpatialReference({wkid: 900913});
				geometry = new esri.geometry.Point(incoord.x,incoord.y,inSR)
				var g = esri.geometry.webMercatorToGeographic(geometry);
				llz.lon=g.x
				llz.lat=g.y
			}
			break;
		}
		case "osm":
		{
			break;
		}
	}

	if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_Convert_Other2WME(): return {lat="+llz.lat+",lon="+llz.lon+",zoom="+llz.zoom+"}");
	return llz;
}

// преобразование из "наших" в "ихние"
function WmeJM_Convert_WME2Other(id,llz)
{
	if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_Convert_WME2Other('"+id+"',{lat:"+llz.lat+",lon:"+llz.lon+",zoom:"+llz.zoom+"})");

	if (this.id == '_map_WME' || this.id == '_map_WMEB')
		llz.zoom = llz.zoom - 12;

	llz.zoom = this.id=='_map_LI' ? (llz.zoom >= 5 ? 17 : llz.zoom + 11) : (llz.zoom > 6 ? 19 : llz.zoom + 12);
	switch(id)
	{
		case "_map_2GIS":
		{
			if(llz.zoom > 18) llz.zoom = 18; //???
			break;
		}
		case "_map_NM":
		{
			break;
		}
		case "_map_NMO":
		{
			break;
		}
		case "_map_YM":
		{
			break;
		}
		case "_map_YMO":
		{
			break;
		}
		case "_map_Google":
		{
			if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_Convert_WME2Other(): location.href.indexOf('mapmaker')="+location.href.indexOf("mapmaker"));
			if(location.href.indexOf("mapmaker") > 0)
				llz.zoom=llz.zoom+1
			break;
		}
		case "_map_SC":
		{
			break;
		}
		case "_map_SC2":
		{
			break;
		}
		case "_map_NAVITEL":
		{
			break;
		}
		case "_map_BING":
		{
			break;
		}
		case "_map_NOKIA":
		{
			break;
		}
		case "_map_LI":
		{
			break;
		}
		case "_map_WM":
		{
			break;
		}
		case "_map_OSM":
		{
			break;
		}
		case "_map_BP":
		{
			break;
		}
		case "_map_RE":
		{
			var urPos=new OpenLayers.LonLat(llz.lon,llz.lat);
			urPos.transform(new OpenLayers.Projection("EPSG:4326"),new OpenLayers.Projection("EPSG:900913"));
			llz.lat=urPos.lat;
			llz.lon=urPos.lon;
			break;
		}
		case "_map_GM":
		{
			break;
		}
		case "_map_BM":
		{
			var zoom = llz.zoom;
			if (zoom > 7) zoom=7;
			for(var i=0; i < wmeJM_ArrW2B.length; ++i)
			{
				if(zoom == wmeJM_ArrW2B[i].w)
				{
					zoom=wmeJM_ArrW2B[i].b
					break;
				}
			}
			llz.zoom= zoom;
			// <function from http://balticmaps.eu>
			function Kijs_LatLon_2_Lks(c,r){c*=1;r*=1;var h;var n,W,t,B,G,w;var D,C,A,u;var S,Q,g,m,q,o,l,k,y,x;var s;var p;var b,a,Z,Y,O,X,U,T,H,e;var F,I,J,v,N,f,d;h=Math.PI/180;n=0.9996;W=6378137*n;t=6356752.3142*n;B=0;G=0;w=500000;D=(W-t)/(W+t);C=D*D;A=C*D;u=((W*W)-(t*t))/(W*W);S=c*h;Q=r*h;g=Math.sin(S);m=Math.cos(S);q=g/m;o=q*q;l=m*m;k=l*m;y=S-B;x=S+B;s=24;p=s*h;b=y*(1+D+1.25*(C+A));a=Math.sin(y)*Math.cos(x)*(3*(D+C+0.875*A));Z=Math.sin(2*y)*Math.cos(2*x)*(1.875*(C+A));Y=Math.sin(3*y)*Math.cos(3*x)*35/24*A;O=(b-a+Z-Y)*t;F=1-u*g*g;I=W/Math.sqrt(F);J=I*(1-u)/F;v=I/J-1;N=Q-p;f=N*N;d=f*f;b=O+G;a=I/2*g*m;Z=I/24*g*(k)*(5-(o)+9*v);Y=I/720*g*k*l*(61-58*(o)+o*o);H=b+f*a+d*Z+d*f*Y;X=I*m;U=I/6*k*(I/J-o);T=I/120*k*l;T=T*(5-18*o+o*o+14*v-58*o*v);e=w+N*X+f*N*U+d*N*T;return{x:e,y:H}}
			// </function from http://balticmaps.eu>
			var urPos=Kijs_LatLon_2_Lks(llz.lat,llz.lon)
			llz.lat=urPos.y;
			llz.lon=urPos.x;
			break;
		}
		case "_map_KDL":
		{
			// function convert from https://gist.github.com/laacz/8654c9bb3f62e6a6c201b11075ad5905
			function LatLonToLKS(a,o){function f(t){return sm_a=6378137,sm_b=6356752.31414,n=(sm_a-sm_b)/(sm_a+sm_b),alpha=(sm_a+sm_b)/2*(1+Math.pow(n,2)/4+Math.pow(n,4)/64),beta=-3*n/2+9*Math.pow(n,3)/16+-3*Math.pow(n,5)/32,gamma=15*Math.pow(n,2)/16+-15*Math.pow(n,4)/32,delta=-35*Math.pow(n,3)/48+105*Math.pow(n,5)/256,epsilon=315*Math.pow(n,4)/512,result=alpha*(t+beta*Math.sin(2*t)+gamma*Math.sin(4*t)+delta*Math.sin(6*t)+epsilon*Math.sin(8*t)),result}function p(t){return t*Math.PI/180}return LKS_UTM_SCALE_FACTOR=.9996,a=p(a),o=p(o),sm_a=6378137,sm_b=6356752.31414,xy=[],phi=a,lambda=o,lambda0=p(24),ep2=(sm_a*sm_a-sm_b*sm_b)/sm_b/sm_b,nu2=ep2*Math.cos(phi)*Math.cos(phi),N=sm_a*sm_a/(sm_b*Math.sqrt(1+nu2)),t=Math.tan(phi),t2=t*t,l=lambda-lambda0,l3coef=1-t2+nu2,l4coef=5-t2+9*nu2+4*(nu2*nu2),l5coef=5-18*t2+t2*t2+14*nu2-58*t2*nu2,l6coef=61-58*t2+t2*t2+270*nu2-330*t2*nu2,l7coef=61-479*t2+179*(t2*t2)-t2*t2*t2,l8coef=1385-3111*t2+543*(t2*t2)-t2*t2*t2,xy[0]=N*Math.cos(phi)*l+N/6*Math.pow(Math.cos(phi),3)*l3coef*Math.pow(l,3)+N/120*Math.pow(Math.cos(phi),5)*l5coef*Math.pow(l,5)+N/5040*Math.pow(Math.cos(phi),7)*l7coef*Math.pow(l,7),xy[1]=f(phi)+t/2*N*Math.pow(Math.cos(phi),2)*Math.pow(l,2)+t/24*N*Math.pow(Math.cos(phi),4)*l4coef*Math.pow(l,4)+t/720*N*Math.pow(Math.cos(phi),6)*l6coef*Math.pow(l,6)+t/40320*N*Math.pow(Math.cos(phi),8)*l8coef*Math.pow(l,8),xy[0]=xy[0]*LKS_UTM_SCALE_FACTOR+5e5,xy[1]=xy[1]*LKS_UTM_SCALE_FACTOR-6e6,xy[1]<0&&(xy[1]=xy[1]+1e7),{x:xy[0],y:xy[1]}}

			var p=LatLonToLKS(llz.lat,llz.lon)
			llz.lat=p.x;
			llz.lon=p.y;

			var zoom = llz.zoom-12;
			if (zoom > 7) zoom=7;

			for(var i=0; i < wmeJM_ArrW2KDL.length; ++i)
			{
				if(zoom == wmeJM_ArrW2KDL[i].w)
				{
					zoom=wmeJM_ArrW2KDL[i].r;
					break;
				}
			}
			llz.zoom= zoom;
			break;
		}
		case "_map_NCABY":
		{
			var urPos=new OpenLayers.LonLat(llz.lon,llz.lat);
			urPos.transform(new OpenLayers.Projection("EPSG:4326"),new OpenLayers.Projection("EPSG:900913"));
			llz.lat=urPos.lat;
			llz.lon=urPos.lon;
			break;
		}
	}
	if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_Convert_WME2Other(): return {lat="+llz.lat+",lon="+llz.lon+",zoom="+llz.zoom+"}");
	return llz;
}


// дополнительно-принудительная обработка после прыжка "туда"
function WmeJM_PostLoadOtherMaps()
{
	if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_PostLoadOtherMaps()");
	var waiting=false;
	var locType=WmeJM_GetLocationType();
	var llz=WmeJM_GetLLZ();
	if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_PostLoadOtherMaps(): locType="+locType+": {lat="+llz.lat+",lon="+llz.lon+",zoom="+llz.zoom+"}");

	switch(locType)
	{
		case "waze":
		{
			break;
		}
		case "NM":
		{
			break;
		}
		case "YM":
		{
			break;
		}
		case "google":
		{
			break;
		}
		case "2gis":
		{
			break;
		}
		case "re":
		{
			break;
		}
		case "sc":
		{
			break;
		}
		case "wm":
		{
			break;
		}
		case "bm":
		{
			break;
		}
		case "kdl":
		{
			break;
		}
		case "ncaby":
		{
			if (map)
			{
				if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_PostLoadOtherMaps(): map.loaded="+map.loaded);
				if (map.loaded)
				{
					// http://map.nca.by/map.html?xy=6878238.761035528,3451752.4686308377&z=17
					var xy=__getQueryString(location.href, 'xy')
					if(xy != -1)
					{
						var axy=xy.split(",")
						llz.lon = parseFloat(axy[1])
						llz.lat = parseFloat(axy[0])
						llz.zoom = parseInt(__getQueryString(location.href, 'z'))-1;
						if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_PostLoadOtherMaps(): locType="+locType+": map.centerAndZoom({x:"+llz.lon+",y:"+llz.lat+"},"+llz.zoom+")");
						map.centerAndZoom({x:llz.lon,y:llz.lat}, llz.zoom);
					}
				}
				else
					waiting=true;
			}
			break;
		}
		case "osm":
		{
			break;
		}
	}

	if (waiting)
	{
		setTimeout(WmeJM_PostLoadOtherMaps,2000);
	}
}



// обработчик мышиных кликов - собственно - прыгаем.
function WmeJM_clickJumpToMaps()
{
	if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_clickJumpToMaps("+this.id+")");
	var llz=WmeJM_GetLLZ();
	if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_clickJumpToMaps("+this.id+"): llz={lat:"+llz.lat+",lon:"+llz.lon+",zoom:"+llz.zoom+"}");


	if (this.id == '_map_WME' || this.id == '_map_WMEB')
		llz=WmeJM_Convert_Other2WME(llz);
	else
		llz=WmeJM_Convert_WME2Other(this.id,llz);


	if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_clickJumpToMaps("+this.id+"): wmeJM_Config["+this.id+"]="+wmeJM_Config[this.id])

	var template="";
	for(var i=0; i < wmeJM_Config.length; ++i)
		if(wmeJM_Config[i].id == this.id)
		{
			template=wmeJM_Config[i].template
			break;
		}
	var url=template.replace("{{lon}}",llz.lon).replace("{{lat}}",llz.lat).replace("{{zoom}}",llz.zoom);
	if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_clickJumpToMaps("+this.id+"): " + url + ', _url'+this.id)
	window.open(url,'_url'+this.id);
}


function WmeJM_UpdateJumpStyle()
{
	var JumpTools=document.getElementById('WME.JumpMaps_' + wmeJM_version)
	if (JumpTools)
	{
		var w=
			document.getElementsByClassName("olControlScaleLine")[0].clientWidth+
			document.getElementsByClassName("WazeControlMousePosition")[0].clientWidth+
			document.getElementsByClassName("WazeControlPermalink")[0].clientWidth+
			50;
		JumpTools.setAttribute('style','position:absolute;z-index:2003;float:right;font-size:10px; right: '+w+'px;');
	}
	setTimeout(WmeJM_UpdateJumpStyle,300);
}


// добавить в WME
function WmeJM_InsertWMEIcon()
{
	if(document.getElementById('WME.JumpMaps_' + wmeJM_version) != null)
	{
		return;
	}

	var nod=document.createElement("div");
	nod.setAttribute('id', 'WME.JumpMaps_' + wmeJM_version);
	nod.setAttribute('unselectable', 'on');
    /*
	var w=
		document.getElementsByClassName("olControlScaleLine")[0].clientWidth+
		document.getElementsByClassName("WazeControlMousePosition")[0].clientWidth+
		document.getElementsByClassName("WazeControlPermalink")[0].clientWidth+
		50;

	nod.setAttribute('style','position:absolute;z-index:2003;float:right;font-size:10px; right: '+w+'px;');
    */

	// exclude private
	var jsn=[];
	for(var i=0;i<wmeJM_Config.length;++i)
	{
		if(wmeJM_Config[i].save === 1)
		{
			jsn.push(wmeJM_Config[i])
		}
	}
	var WMEJumpMapsLink0 = JSON.stringify(jsn,function(key, value) { if (key === "save" && value === 1) {return undefined; }  return value;});

	nod.innerHTML="";
	//nod.innerHTML='<button><li class="fa fa-rocket"></li>&nbsp;Jump</button>';

	function IsJsonString(str) {
		try {
			JSON.parse(str);
		} catch (e) {
			return false;
		}
		return true;
	}


	//localStorage.removeItem("WMEJumpMapsLink") - очистить
	var WMEJumpMapsLink=WMEJumpMapsLink0;

	if ("undefined" === typeof localStorage.WMEJumpMapsLink || !IsJsonString(localStorage.getItem('WMEJumpMapsLink')))
	{
		if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): use WMEJumpMapsLink0!!! ");
		localStorage.setItem('WMEJumpMapsLink', WMEJumpMapsLink0);
		WMEJumpMapsLink=localStorage.getItem("WMEJumpMapsLink");
	}
	else
	{
		WMEJumpMapsLink=localStorage.getItem("WMEJumpMapsLink");
		if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): use custom WMEJumpMapsLink="+WMEJumpMapsLink);
	}

	//var WMEJumpMapsLink=localStorage.getItem("WMEJumpMapsLink");

	if (WMEJumpMapsLink)
	{
		var aLinks = JSON.parse(WMEJumpMapsLink);
		for (var i=0; i < aLinks.length; i++)
		{
			nod.innerHTML += "<a id='" + aLinks[i].id + "' style='font-size: 10px' title='" + aLinks[i].title + "'>" + aLinks[i].name + "</a>&nbsp;";
		}
	}
	nod.innerHTML += "<a id='_map_LI' style='font-size: 10px' title='Open in LiveMap'>[Live]</a>&nbsp;"+
					"<a href='https://gf.qytechs.cn/scripts/5116-wme-yandexmap/' title='WME-JumpMaps_" + wmeJM_version + "' style='font-size: 10px' target='_blank'>[?]</a>&nbsp;";

	document.getElementsByClassName('olControlAttribution')[0].parentElement.appendChild(nod);

	{
		var aLinks = JSON.parse(WMEJumpMapsLink);
		for (var i=0; i < aLinks.length; i++)
		{
			document.getElementById(aLinks[i].id).onclick	= WmeJM_clickJumpToMaps;
		}
		document.getElementById('_map_LI').onclick	= WmeJM_clickJumpToMaps;
	}
	WmeJM_UpdateJumpStyle()
}

// вставка "ссылки" для прыжка
function WmeJM_InsertIcon()
{
	if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_InsertIcon()");
	var result = false;
	var locType=WmeJM_GetLocationType();
	if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_InsertIcon(): locType="+locType);

	var nod=null;
	if(locType != "waze")
	{
		nod=document.createElement(locType === "osm"?"div":"span");
		nod.setAttribute('id', 'WME.JumpMaps_' + wmeJM_version);
	}
	else
	{
		WmeJM_InsertWMEIcon();
		return true;
	}

	var clsid=[];
	clsid["NM"]      = {t:0,c:"link nk-map-region-view__link nk-tooltip nk-tooltip_for_link link__control i-bem link_js_inited"};
	clsid["YM"]      = {t:0,c:"map-view__lang-switcher"};
	clsid["google"]  = {t:0,c:"fineprint-item fineprint-padded fineprint-tld-escape-holder noprint"};
	clsid["2gis"]    = {t:0,c:"online__controlsItem _geoLocation"};
	clsid["sc"]      = {t:1,c:"Right_menu"};
	clsid["re"]      = {t:1,c:"toolbarButtonContainer"};
	clsid["wm"]      = {t:1,c:"wm-Add"};
	clsid["bm"]      = {t:0,c:"kijs_noprint"};
	clsid["kdl"]     = {t:1,c:"social_networks"};
	clsid["ncaby"]   = {t:1,c:"LocateButton"};
	clsid["osm"]     = {t:0,c:"control-layers leaflet-control"};

	var WazeControlAttribution = null;
	if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_InsertIcon(): clsid[locType]="+clsid[locType]);
	if(clsid[locType])
		WazeControlAttribution = clsid[locType].t?document.getElementById(clsid[locType].c):document.getElementsByClassName(clsid[locType].c);

	if (WazeControlAttribution && (clsid[locType].t || WazeControlAttribution.length >= 1))
	{
		if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_InsertIcon(): found '" + (clsid[locType].t?WazeControlAttribution:WazeControlAttribution[0]) + "'");
		if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_InsertIcon(): document.readyState=" + document.readyState);

		switch(locType)
		{
			case "NM":
			case "YM":
			{
				nod.innerHTML = "<a id='_map_WME' "+
					"class=\"link nk-map-region-view__link nk-tooltip nk-tooltip_for_link link__control i-bem link_js_inited nk-tooltip_js_inited _popup-destructor_js_inited nk-icon nk-icon_id_ymaps icon\""
					+"data-bem='{\"link\":{},\"nk-tooltip\":{\"title\":\"Open in WME\"}}'>"
					+"<img src='"+wmeJM_IconWME+"' width='39px' height='39px'></a>&nbsp;&nbsp;&nbsp;&nbsp;"
				WazeControlAttribution[0].parentElement.insertBefore(nod, WazeControlAttribution[0]);
				break;
			}
			case "google":
			{
				nod.innerHTML = "<a id='_map_WME' title='Open in WME'>[WME]</a>&nbsp;&nbsp;&nbsp;";
				WazeControlAttribution[0].parentElement.insertBefore(nod, WazeControlAttribution[0]);
				break;
			}
			case "2gis":
			{
				nod.innerHTML = "<a id='_map_WME'><img style='cursor: pointer; padding-top: 14px;' width=39 height=39  src='"+wmeJM_IconWME+"'></a>"
				WazeControlAttribution[0].parentElement.insertBefore(nod, WazeControlAttribution[0]);
				break;
			}
			case "re":
			{
				WazeControlAttribution.innerHTML=WazeControlAttribution.innerHTML+
					"<li class=\"toolbarLeftElement toolbarSeparator\"></li>" +
					"<a id='_map_WME'><img style='cursor: pointer; padding-left: 4px;' width=28 height=28  src='"+wmeJM_IconWME+"'></a>"
				break;
			}
			case "sc":
			{
				if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_FakeLoad(), WazeControlAttribution.innerHTML: " + WazeControlAttribution.innerHTML);
				$("#Right_menu").append('<div id="_map_WMEB" class="butt" title="Open in WME BETA!">Waze Beta</div>');
				break;
			}
			case "wm":
			{
				WazeControlAttribution.innerHTML=WazeControlAttribution.innerHTML+'<div class="butt" id="_map_WME" title="Open in WME"><img style="cursor: pointer; padding-top: 0px;" width=39 height=39  src="'+wmeJM_IconWME+'"></div>'
				break;
			}
			case "bm":
			{
				if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): locType === bm");
				var td=document.createElement("TD");
				td.style="background: transparent none repeat scroll 0% 0%; padding: 0px; margin: 0px; border: 0px solid black;"

				td.setAttribute('id', 'WME.JumpMaps_' + wmeJM_version);
				td.innerHTML = "<a id='_map_WME'><img style='cursor: pointer; ' width=24 height=24  src='"+wmeJM_IconWME+"'></a>"

				for(var i=0; i < WazeControlAttribution.length; ++i)
				{
					if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WazeControlAttribution[i].tagName="+WazeControlAttribution[i].tagName);

					if(WazeControlAttribution[i].tagName == "TABLE")
					{
						WazeControlAttribution[i].rows[0].appendChild(td);
						break;
					}
				}
				break;
			}
			case "kdl":
			{
				WazeControlAttribution.innerHTML=WazeControlAttribution.innerHTML+'<a id="_map_WME" class="waze" title="Open in WME"></a>'
				document.styleSheets[0].insertRule("#social_networks a.waze { background:url("+wmeJM_IconWME+" );background-size: 100% 100%; right: 236px;}", 0);
				break;
			}
			case "ncaby":
			{
				WazeControlAttribution.innerHTML=WazeControlAttribution.innerHTML+
				  '<div style="display: block; top: 340px;" widgetid="WazeButton" id="WazeButton" role="presentation">'+
					'<a id="_map_WME"><img style="cursor: pointer; padding-left: 4px;" width=28 height=28  src="'+wmeJM_IconWME+'"></a></div>';
				break;
			}
			case "osm":
			{
				nod.setAttribute('class', "leaflet-control");
				nod.innerHTML = "<a id='_map_WME'><img style='cursor: pointer; padding-top: 0px;' width=39 height=39  src='"+wmeJM_IconWME+"'></a>"
				WazeControlAttribution[0].parentElement.insertBefore(nod, WazeControlAttribution[0]);
				break;
			}
		}

		if (document.getElementById('_map_WME'))
		{
			document.getElementById('_map_WME').onclick	 = WmeJM_clickJumpToMaps;
			result=true;
		}
		if (document.getElementById('_map_WMEB'))
		{
			document.getElementById('_map_WMEB').onclick	 = WmeJM_clickJumpToMaps;
			result=true;
		}
	}
	return result;
}

//
function WmeJM_FakeLoad()
{
	if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): start WmeJM_FakeLoad(), this"+ this);

	if(window.document.getElementById('WME.JumpMaps_' + wmeJM_version))
	{
		if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_FakeLoad(): found WME.JumpMaps_" + wmeJM_version + ". Done");
		return;
	}

	if (document.readyState != 'complete')
	{
		if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_FakeLoad(): document.readyState != 'complete' . wait 3000ms");
		setTimeout(WmeJM_FakeLoad,3000);
		return;
	}

	if (WmeJM_GetLocationType() == "waze" && document.getElementsByClassName('olControlAttribution')[0] == null)
	{
		if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_FakeLoad(): wait waze olControlAttribution... (3000ms)");
		setTimeout(WmeJM_FakeLoad,3000);
		return;
	}

	if(!WmeJM_InsertIcon() && WmeJM_GetLocationType() != "waze")
	{
		if(++wmeJM_countProbe < 8)
		{
			if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): not other found '"+cls+"', wait... (5000ms), wmeJM_countProbe="+wmeJM_countProbe);
			setTimeout(WmeJM_FakeLoad,5000);
		}
		// пост-обработка
		WmeJM_PostLoadOtherMaps();
		return;
	}

	if(WmeJM_GetLocationType() != "waze")
	{
		WmeJM_PostLoadOtherMaps();
	}
}


// запускатор скрипта
function WmeJM_bootstrap()
{
	console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_bootstrap()");

	var wmeJM_debug0=localStorage.getItem("WMEJumpMapsDebug");
	if(wmeJM_debug0 && (wmeJM_debug0 === "true" || wmeJM_debug0 === "1"))
		wmeJM_debug=true;

	if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): WmeJM_bootstrap(), this"+ this +"{");

	setTimeout(function() {WmeJM_FakeLoad()},3000,this);
	if(wmeJM_debug) console.log("WME-JumpMaps (" + wmeJM_version + "): }WmeJM_bootstrap(), this=" + this);
}


WmeJM_bootstrap();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址