MunzeeMap

Munzee filter map script

当前为 2015-08-12 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name        MunzeeMap
// @namespace   MunzeeMap
// @include     http*://www.munzee.com/map*
// @version     2.0.3
// @grant       none
// @description Munzee filter map script
// ==/UserScript==

jQuery(document).ready(function ($) {
	var img_url = 'https://dl.dropboxusercontent.com/u/3657753/munzee/';
			
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga3');

  ga3('create', 'UA-3267689-27', 'auto');
  ga3('send', 'pageview');

	var icons = [];
	var perFilter = [];
	var filterOn = false;
	var n = 0;
	var i = 0;
	var kiek = [];
    var geoLink;
	$('body').css('position', 'relative').append('<div style="padding: 10px; border-radius: 5px; border: 1px solid #dedede;position: fixed; z-index: 2000; bottom:10px; left: 10px; background: white;" id="filterIcons"></div>');
	$(document).ajaxSuccess(function (event, xhr, settings) {
		kiek = [];
		$.each(allmarkers, function (key, data) {
			var caps = data.number_of_captures;
			if (data.icon.url == 'https://munzee.global.ssl.fastly.net/images/pins/svg/motel.svg?3' && caps < 5) {
				data.icon.url = img_url+'motel' + caps + '.png';

			}
			if (data.icon.url == 'https://munzee.global.ssl.fastly.net/images/pins/svg/hotel.svg?3' && caps < 10) {

				data.icon.url = img_url+'munzee_hotel'+caps+'.png';

			}
			if (data.icon.url == 'https://munzee.global.ssl.fastly.net/images/pins/svg/virtual.svg?3') {

				data.icon.url = img_url+'virtual.png';

			}
			if (kiek[data.icon.url] == undefined) {
				kiek[data.icon.url] = 0;
			}

			kiek[data.icon.url]++;

			if (data.getMap() != null) {

				// add new icon to list
				if ($.inArray(data.icon.url, icons) == -1) {
					icons[i++] = data.icon.url;
				}
				// hide icon if in filter list
				if ($.inArray(data.icon.url, perFilter) != -1) {
					data.setMap(null);
				}
			}
		});

		// ICONS list
		var iconsList = '';
		var style = '';
		var clase = '';
		$.each(icons.sort(), function (key, data) {

			if ($.inArray(data, perFilter) != -1) {
				style = 'opacity:0.4; background: red; border:3px red solid;';
				clase = 'ico_hide';
			} else {
				style = 'background: white; border:3px white solid;';
				clase = 'ico_show';
			}
			if (kiek[data] == undefined) {
				kiek[data] = 0;
			}
			iconsList += '<div style="padding: 0 5px 0 0;float:left;">';
			iconsList += '<div style="text-align: center; font-size: 10px">' + kiek[data] + '</div>';
			iconsList += '<img style="' + style + 'cursor:pointer; border-radius: 500px" class="haideris ' + clase + '" height="32px" src="' + data + '" title="Right mouse click\nto hide other icons" />';
			//	iconsList += '<div class="only_this" style="cursor:pointer;text-align: center; font-size: 10px" data-icon="' +data+ '" >ONLY</div>';
			iconsList += '</div>';
		});
		$('#filterIcons').html(iconsList +
			'<div style="float: right">'+
			'</form>' +
			'</div>'+
			'<div style="float: right">' +
            '<a id="geoReload" href="'+geoLink+'" title="Get link to this map position"><i class="fa fa-external-link"></i></a><br />' +
            '<a href="'+geoLink+'" title="Reload map"><i class="fa fa-refresh"></i></a>' +
            '</div>'+

			'<div style="clear:both;height: 1px; overflow: hidden"></div>');

	});
// hide
	$(document).on('click', '.ico_show.haideris', function () {
		filterOn = true;
		$(this).removeClass('ico_show').addClass('ico_hide').css('opacity', '0.4').css('background', 'red').css('border', '3px red solid');
		var curr = $(this).attr('src');
		perFilter[n++] = curr;
		$.each(allmarkers, function (key, data) {
			if (data.icon.url == curr) {
				data.setMap(null);
			}
		});
	});
// show
	$(document).on('click', '.ico_hide.haideris', function () {
		filterOn = true;
		$(this).removeClass('ico_hide').addClass('ico_show').css('opacity', '1').css('background', 'white').css('border', '3px white solid');
		var curr = $(this).attr('src');

		perFilter[$.inArray(curr, perFilter)] = null;
		$.each(allmarkers, function (key, data) {
			if (data.icon.url == curr) {
				data.setMap(the_map);
			}
		});
	});
	$(document).on('contextmenu', '.haideris', function (e) {
		filterOn = true;
		$('.haideris').removeClass('ico_show').addClass('ico_hide').css('opacity', '0.4').css('background', 'red').css('border', '3px red solid');
		var curr = $(this).attr('src');
		var tempFilter = [];
		var t = 0;
		$.each(icons, function (key, data) {
			if (curr != data) {
				tempFilter[t++] = data;
			}

		});
		perFilter = tempFilter;
		perFilter[$.inArray(curr, perFilter)] = null;
		$.each(allmarkers, function (key, data) {
			if (data.icon.url != curr) {
				data.setMap(null);
			}
		});

		$(this).removeClass('ico_hide').addClass('ico_show').css('opacity', '1').css('background', 'white').css('border', '3px white solid');

		perFilter[$.inArray(curr, perFilter)] = null;
		$.each(allmarkers, function (key, data) {
			if (data.icon.url == curr) {
				data.setMap(the_map);
			}
		});
		e.preventDefault();
	});
    // GEO
    google.maps.event.addListener(the_map, 'idle', function() {
        var mapCenter = the_map.getCenter();
        var mapZoom = the_map.getZoom();
        var lat = mapCenter.lat();
        var lon = mapCenter.lng();
        var code = geohash.encode( lat, lon, 9 );
        geoLink = 'https://www.munzee.com/map/'+code+'/'+mapZoom;
        $('#geoReload').attr('href',geoLink);

       // console.log(geoLink);
    });
    $(document).on('click','#geoReload', function(){
        window.prompt("                   Copy to clipboard: Ctrl+C, Enter                    ", geoLink);
        return false;
    });

});