Simple Map - Version 2.6.0

Version Description

  • Update gmaps.js from 0.4.18 to 0.4.19
  • Add front end test

https://github.com/miya0001/simple-map/compare/2.5.0...2.6.0

Download this release

Release Info

Developer miyauchi
Plugin Icon wp plugin Simple Map
Version 2.6.0
Comparing to
See all releases

Version 2.6.0

Files changed (7) hide show
  1. .svnignore +18 -0
  2. Gruntfile.js +45 -0
  3. js/simple-map.js +104 -0
  4. js/simple-map.min.js +14 -0
  5. package.json +25 -0
  6. readme.txt +208 -0
  7. simple-map.php +168 -0
.svnignore ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .DS_Store
2
+ .git
3
+ .gitignore
4
+ .travis.yml
5
+ Gruntfile.js
6
+ LINGUAS
7
+ Makefile
8
+ README.md
9
+ _site
10
+ bin
11
+ composer.json
12
+ composer.lock
13
+ node_modules
14
+ npm-debug.log
15
+ package.json
16
+ phpunit.xml
17
+ tests
18
+ vendor
Gruntfile.js ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* vim: set ft=javascript expandtab shiftwidth=2 tabstop=2: */
2
+
3
+ module.exports = function( grunt ) {
4
+
5
+ // Project configuration
6
+ grunt.initConfig( {
7
+ pkg: grunt.file.readJSON( 'package.json' ),
8
+ uglify: {
9
+ all: {
10
+ files: {
11
+ 'js/simple-map.min.js': [
12
+ 'node_modules/gmaps/gmaps.js',
13
+ 'js/simple-map.js'
14
+ ]
15
+ },
16
+ options: {
17
+ banner: '/**\n' +
18
+ ' * <%= pkg.title %> - v<%= pkg.version %>\n' +
19
+ ' *\n' +
20
+ ' * <%= pkg.homepage %>\n' +
21
+ ' * <%= pkg.repository.url %>\n' +
22
+ ' *\n' +
23
+ ' * Special thanks!\n' +
24
+ ' * http://hpneo.github.io/gmaps/\n' +
25
+ ' *\n' +
26
+ ' * Copyright <%= grunt.template.today("yyyy") %>, <%= pkg.author.name %> (<%= pkg.author.url %>)\n' +
27
+ ' * Released under the <%= pkg.license %>\n' +
28
+ ' */\n',
29
+ mangle: {
30
+ except: ['jQuery']
31
+ }
32
+ }
33
+ }
34
+ },
35
+ qunit: {
36
+ all: ['tests/qunit/*.html']
37
+ }
38
+ } );
39
+
40
+ // Load other tasks
41
+ grunt.loadNpmTasks('grunt-contrib-uglify');
42
+ grunt.registerTask( 'default', ['uglify'] );
43
+
44
+ grunt.util.linefeed = '\n';
45
+ };
js/simple-map.js ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function($){
2
+
3
+ var SimpleMap = function(element, pos, zoom, infoCont) {
4
+ this.base_url = 'https://maps.google.com/maps?';
5
+ this.display(element, pos, zoom, infoCont);
6
+ }
7
+
8
+ SimpleMap.prototype.display = function(element, pos, zoom, infoCont) {
9
+ $(element).show();
10
+ var breakpoint = $(element).data('breakpoint');
11
+ if (breakpoint > 640) {
12
+ breakpoint = 640;
13
+ }
14
+ if ($('html').width() > breakpoint) {
15
+ var map = new GMaps({
16
+ div: element,
17
+ lat: pos.lat(),
18
+ lng: pos.lng(),
19
+ mapTypeControl: false,
20
+ zoom: parseFloat(zoom),
21
+ streetViewControl: false,
22
+ scrollwheel: false,
23
+ mapTypeId: google.maps.MapTypeId.ROADMAP
24
+ });
25
+ if (infoCont.length) {
26
+ var marker = map.addMarker({
27
+ lat: pos.lat(),
28
+ lng: pos.lng(),
29
+ infoWindow: {
30
+ content: infoCont
31
+ }
32
+ });
33
+ if ($(element).data('infowindow') == 'open') {
34
+ marker.infoWindow.open(marker.map, marker);
35
+ }
36
+ } else {
37
+ map.addMarker({
38
+ lat: pos.lat(),
39
+ lng: pos.lng()
40
+ });
41
+ }
42
+ } else {
43
+ var url = GMaps.staticMapURL({
44
+ center: pos.lat()+','+pos.lng(),
45
+ zoom: zoom,
46
+ size: breakpoint+'x'+$(element).height(),
47
+ markers: [
48
+ {lat: pos.lat(), lng: pos.lng()}
49
+ ],
50
+ sensor: 'false'
51
+ });
52
+ var img = $('<img />');
53
+ $(img).attr('src', url);
54
+ $(img).attr('alt', $(element).text());
55
+ var a = $('<a />');
56
+ $(a).attr(
57
+ 'href',
58
+ this.base_url+'q='+pos.lat()+','+pos.lng()+'&z='+zoom
59
+ );
60
+ $(a).html(img);
61
+ $(element).html(a);
62
+ $(element).addClass('staticmap');
63
+ }
64
+ }
65
+
66
+ $('.simplemap').each(function(){
67
+ var element = $('div', this).get(0);
68
+ var zoom = 16;
69
+ if (parseFloat($(element).data('zoom'))) {
70
+ zoom = $(element).data('zoom');
71
+ }
72
+ if ($(element).data('lat') && $(element).data('lng')) {
73
+ var lat = $(element).data('lat');
74
+ var lng = $(element).data('lng');
75
+ var infoCont = $(element).html();
76
+ var pos = new google.maps.LatLng(
77
+ lat,
78
+ lng
79
+ );
80
+ new SimpleMap(element, pos, zoom, infoCont);
81
+ } else if ($(element).data('addr')) {
82
+ GMaps.geocode({
83
+ address: $(element).data('addr'),
84
+ callback: function(results, status) {
85
+ if (status == 'OK') {
86
+ var pos = results[0].geometry.location;
87
+ new SimpleMap(element, pos, zoom, $(element).html());
88
+ }
89
+ }
90
+ });
91
+ } else if ($(element).text().length) {
92
+ GMaps.geocode({
93
+ address: $(element).text(),
94
+ callback: function(results, status) {
95
+ if (status == 'OK') {
96
+ var pos = results[0].geometry.location;
97
+ new SimpleMap(element, pos, zoom, $(element).text());
98
+ }
99
+ }
100
+ });
101
+ }
102
+ });
103
+
104
+ })(jQuery);
js/simple-map.min.js ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Simple Map - v2.6.0
3
+ *
4
+ * http://wordpress.org/plugins/simple-map/
5
+ * https://github.com/miya0001/simple-map
6
+ *
7
+ * Special thanks!
8
+ * http://hpneo.github.io/gmaps/
9
+ *
10
+ * Copyright 2015, Takayuki Miyauchi (http://wpist.me/)
11
+ * Released under the GPLv2
12
+ */
13
+ "use strict";(function(e,t){"object"==typeof exports?module.exports=t():"function"==typeof define&&define.amd?define(["jquery","googlemaps!"],t):e.GMaps=t()})(this,function(){if("object"!=typeof window.google||!window.google.maps)throw"Google Maps API is required. Please register the following JavaScript library http://maps.google.com/maps/api/js?sensor=true.";var t=function(e,t){var o;if(e===t)return e;for(o in t)e[o]=t[o];return e},o=function(e,t){var o,n=Array.prototype.slice.call(arguments,2),r=[],a=e.length;if(Array.prototype.map&&e.map===Array.prototype.map)r=Array.prototype.map.call(e,function(e){var o=n.slice(0);return o.splice(0,0,e),t.apply(this,o)});else for(o=0;a>o;o++)callback_params=n,callback_params.splice(0,0,e[o]),r.push(t.apply(this,callback_params));return r},n=function(e){var t,o=[];for(t=0;e.length>t;t++)o=o.concat(e[t]);return o},r=function(e,t){var o=e[0],n=e[1];return t&&(o=e[1],n=e[0]),new google.maps.LatLng(o,n)},a=function(e,t){var o;for(o=0;e.length>o;o++)e[o]instanceof google.maps.LatLng||(e[o]=e[o].length>0&&"object"==typeof e[o][0]?a(e[o],t):r(e[o],t));return e},s=function(e,t){var o,n=e.replace(".","");return o="jQuery"in this&&t?$("."+n,t)[0]:document.getElementsByClassName(n)[0]},i=function(e,t){var o,e=e.replace("#","");return o="jQuery"in window&&t?$("#"+e,t)[0]:document.getElementById(e)},l=function(e){var t=0,o=0;if(e.offsetParent)do t+=e.offsetLeft,o+=e.offsetTop;while(e=e.offsetParent);return[t,o]},p=function(){var e=document,o=function(n){if(!this)return new o(n);n.zoom=n.zoom||15,n.mapType=n.mapType||"roadmap";var r,a=function(e,t){return void 0===e?t:e},p=this,c=["bounds_changed","center_changed","click","dblclick","drag","dragend","dragstart","idle","maptypeid_changed","projection_changed","resize","tilesloaded","zoom_changed"],g=["mousemove","mouseout","mouseover"],h=["el","lat","lng","mapType","width","height","markerClusterer","enableNewStyle"],d=n.el||n.div,u=n.markerClusterer,m=google.maps.MapTypeId[n.mapType.toUpperCase()],f=new google.maps.LatLng(n.lat,n.lng),y=a(n.zoomControl,!0),v=n.zoomControlOpt||{style:"DEFAULT",position:"TOP_LEFT"},k=v.style||"DEFAULT",w=v.position||"TOP_LEFT",L=a(n.panControl,!0),b=a(n.mapTypeControl,!0),_=a(n.scaleControl,!0),M=a(n.streetViewControl,!0),x=a(x,!0),C={},O={zoom:this.zoom,center:f,mapTypeId:m},P={panControl:L,zoomControl:y,zoomControlOptions:{style:google.maps.ZoomControlStyle[k],position:google.maps.ControlPosition[w]},mapTypeControl:b,scaleControl:_,streetViewControl:M,overviewMapControl:x};if(this.el="string"==typeof n.el||"string"==typeof n.div?d.indexOf("#")>-1?i(d,n.context):s.apply(this,[d,n.context]):d,this.el===void 0||null===this.el)throw"No element defined.";for(window.context_menu=window.context_menu||{},window.context_menu[p.el.id]={},this.controls=[],this.overlays=[],this.layers=[],this.singleLayers={},this.markers=[],this.polylines=[],this.routes=[],this.polygons=[],this.infoWindow=null,this.overlay_el=null,this.zoom=n.zoom,this.registered_events={},this.el.style.width=n.width||this.el.scrollWidth||this.el.offsetWidth,this.el.style.height=n.height||this.el.scrollHeight||this.el.offsetHeight,google.maps.visualRefresh=n.enableNewStyle,r=0;h.length>r;r++)delete n[h[r]];for(1!=n.disableDefaultUI&&(O=t(O,P)),C=t(O,n),r=0;c.length>r;r++)delete C[c[r]];for(r=0;g.length>r;r++)delete C[g[r]];this.map=new google.maps.Map(this.el,C),u&&(this.markerClusterer=u.apply(this,[this.map]));var T=function(e,t){var o="",n=window.context_menu[p.el.id][e];for(var r in n)if(n.hasOwnProperty(r)){var a=n[r];o+='<li><a id="'+e+"_"+r+'" href="#">'+a.title+"</a></li>"}if(i("gmaps_context_menu")){var s=i("gmaps_context_menu");s.innerHTML=o;var r,c=s.getElementsByTagName("a"),g=c.length;for(r=0;g>r;r++){var h=c[r],d=function(o){o.preventDefault(),n[this.id.replace(e+"_","")].action.apply(p,[t]),p.hideContextMenu()};google.maps.event.clearListeners(h,"click"),google.maps.event.addDomListenerOnce(h,"click",d,!1)}var u=l.apply(this,[p.el]),m=u[0]+t.pixel.x-15,f=u[1]+t.pixel.y-15;s.style.left=m+"px",s.style.top=f+"px"}};this.buildContextMenu=function(e,t){if("marker"===e){t.pixel={};var o=new google.maps.OverlayView;o.setMap(p.map),o.draw=function(){var n=o.getProjection(),r=t.marker.getPosition();t.pixel=n.fromLatLngToContainerPixel(r),T(e,t)}}else T(e,t);var n=i("gmaps_context_menu");setTimeout(function(){n.style.display="block"},0)},this.setContextMenu=function(t){window.context_menu[p.el.id][t.control]={};var o,n=e.createElement("ul");for(o in t.options)if(t.options.hasOwnProperty(o)){var r=t.options[o];window.context_menu[p.el.id][t.control][r.name]={title:r.title,action:r.action}}n.id="gmaps_context_menu",n.style.display="none",n.style.position="absolute",n.style.minWidth="100px",n.style.background="white",n.style.listStyle="none",n.style.padding="8px",n.style.boxShadow="2px 2px 6px #ccc",i("gmaps_context_menu")||e.body.appendChild(n);var a=i("gmaps_context_menu");google.maps.event.addDomListener(a,"mouseout",function(e){e.relatedTarget&&this.contains(e.relatedTarget)||window.setTimeout(function(){a.style.display="none"},400)},!1)},this.hideContextMenu=function(){var e=i("gmaps_context_menu");e&&(e.style.display="none")};var z=function(e,t){google.maps.event.addListener(e,t,function(e){void 0==e&&(e=this),n[t].apply(this,[e]),p.hideContextMenu()})};google.maps.event.addListener(this.map,"zoom_changed",this.hideContextMenu);for(var S=0;c.length>S;S++){var W=c[S];W in n&&z(this.map,W)}for(var S=0;g.length>S;S++){var W=g[S];W in n&&z(this.map,W)}google.maps.event.addListener(this.map,"rightclick",function(e){n.rightclick&&n.rightclick.apply(this,[e]),void 0!=window.context_menu[p.el.id].map&&p.buildContextMenu("map",e)}),this.refresh=function(){google.maps.event.trigger(this.map,"resize")},this.fitZoom=function(){var e,t=[],o=this.markers.length;for(e=0;o>e;e++)"boolean"==typeof this.markers[e].visible&&this.markers[e].visible&&t.push(this.markers[e].getPosition());this.fitLatLngBounds(t)},this.fitLatLngBounds=function(e){var t,o=e.length,n=new google.maps.LatLngBounds;for(t=0;o>t;t++)n.extend(e[t]);this.map.fitBounds(n)},this.setCenter=function(e,t,o){this.map.panTo(new google.maps.LatLng(e,t)),o&&o()},this.getElement=function(){return this.el},this.zoomIn=function(e){e=e||1,this.zoom=this.map.getZoom()+e,this.map.setZoom(this.zoom)},this.zoomOut=function(e){e=e||1,this.zoom=this.map.getZoom()-e,this.map.setZoom(this.zoom)};var I,R=[];for(I in this.map)"function"!=typeof this.map[I]||this[I]||R.push(I);for(r=0;R.length>r;r++)(function(e,t,o){e[o]=function(){return t[o].apply(t,arguments)}})(this,this.map,R[r])};return o}(this);p.prototype.createControl=function(e){var t=document.createElement("div");t.style.cursor="pointer",e.disableDefaultStyles!==!0&&(t.style.fontFamily="Roboto, Arial, sans-serif",t.style.fontSize="11px",t.style.boxShadow="rgba(0, 0, 0, 0.298039) 0px 1px 4px -1px");for(var o in e.style)t.style[o]=e.style[o];e.id&&(t.id=e.id),e.title&&(t.title=e.title),e.classes&&(t.className=e.classes),e.content&&("string"==typeof e.content?t.innerHTML=e.content:e.content instanceof HTMLElement&&t.appendChild(e.content)),e.position&&(t.position=google.maps.ControlPosition[e.position.toUpperCase()]);for(var n in e.events)(function(t,o){google.maps.event.addDomListener(t,o,function(){e.events[o].apply(this,[this])})})(t,n);return t.index=1,t},p.prototype.addControl=function(e){var t=this.createControl(e);return this.controls.push(t),this.map.controls[t.position].push(t),t},p.prototype.removeControl=function(e){var t,o=null;for(t=0;this.controls.length>t;t++)this.controls[t]==e&&(o=this.controls[t].position,this.controls.splice(t,1));if(o)for(t=0;this.map.controls.length>t;t++){var n=this.map.controls[e.position];if(n.getAt(t)==e){n.removeAt(t);break}}return e},p.prototype.createMarker=function(e){if(void 0==e.lat&&void 0==e.lng&&void 0==e.position)throw"No latitude or longitude defined.";var o=this,n=e.details,r=e.fences,a=e.outside,s={position:new google.maps.LatLng(e.lat,e.lng),map:null},i=t(s,e);delete i.lat,delete i.lng,delete i.fences,delete i.outside;var l=new google.maps.Marker(i);if(l.fences=r,e.infoWindow){l.infoWindow=new google.maps.InfoWindow(e.infoWindow);for(var p=["closeclick","content_changed","domready","position_changed","zindex_changed"],c=0;p.length>c;c++)(function(t,o){e.infoWindow[o]&&google.maps.event.addListener(t,o,function(t){e.infoWindow[o].apply(this,[t])})})(l.infoWindow,p[c])}for(var g=["animation_changed","clickable_changed","cursor_changed","draggable_changed","flat_changed","icon_changed","position_changed","shadow_changed","shape_changed","title_changed","visible_changed","zindex_changed"],h=["dblclick","drag","dragend","dragstart","mousedown","mouseout","mouseover","mouseup"],c=0;g.length>c;c++)(function(t,o){e[o]&&google.maps.event.addListener(t,o,function(){e[o].apply(this,[this])})})(l,g[c]);for(var c=0;h.length>c;c++)(function(t,o,n){e[n]&&google.maps.event.addListener(o,n,function(o){o.pixel||(o.pixel=t.getProjection().fromLatLngToPoint(o.latLng)),e[n].apply(this,[o])})})(this.map,l,h[c]);return google.maps.event.addListener(l,"click",function(){this.details=n,e.click&&e.click.apply(this,[this]),l.infoWindow&&(o.hideInfoWindows(),l.infoWindow.open(o.map,l))}),google.maps.event.addListener(l,"rightclick",function(t){t.marker=this,e.rightclick&&e.rightclick.apply(this,[t]),void 0!=window.context_menu[o.el.id].marker&&o.buildContextMenu("marker",t)}),l.fences&&google.maps.event.addListener(l,"dragend",function(){o.checkMarkerGeofence(l,function(e,t){a(e,t)})}),l},p.prototype.addMarker=function(e){var t;if(e.hasOwnProperty("gm_accessors_"))t=e;else{if(!(e.hasOwnProperty("lat")&&e.hasOwnProperty("lng")||e.position))throw"No latitude or longitude defined.";t=this.createMarker(e)}return t.setMap(this.map),this.markerClusterer&&this.markerClusterer.addMarker(t),this.markers.push(t),p.fire("marker_added",t,this),t},p.prototype.addMarkers=function(e){for(var t,o=0;t=e[o];o++)this.addMarker(t);return this.markers},p.prototype.hideInfoWindows=function(){for(var e,t=0;e=this.markers[t];t++)e.infoWindow&&e.infoWindow.close()},p.prototype.removeMarker=function(e){for(var t=0;this.markers.length>t;t++)if(this.markers[t]===e){this.markers[t].setMap(null),this.markers.splice(t,1),this.markerClusterer&&this.markerClusterer.removeMarker(e),p.fire("marker_removed",e,this);break}return e},p.prototype.removeMarkers=function(e){var t=[];if(e===void 0){for(var o=0;this.markers.length>o;o++){var n=this.markers[o];n.setMap(null),this.markerClusterer&&this.markerClusterer.removeMarker(n),p.fire("marker_removed",n,this)}this.markers=t}else{for(var o=0;e.length>o;o++){var r=this.markers.indexOf(e[o]);if(r>-1){var n=this.markers[r];n.setMap(null),this.markerClusterer&&this.markerClusterer.removeMarker(n),p.fire("marker_removed",n,this)}}for(var o=0;this.markers.length>o;o++){var n=this.markers[o];null!=n.getMap()&&t.push(n)}this.markers=t}},p.prototype.drawOverlay=function(e){var t=new google.maps.OverlayView,o=!0;return t.setMap(this.map),null!=e.auto_show&&(o=e.auto_show),t.onAdd=function(){var o=document.createElement("div");o.style.borderStyle="none",o.style.borderWidth="0px",o.style.position="absolute",o.style.zIndex=100,o.innerHTML=e.content,t.el=o,e.layer||(e.layer="overlayLayer");var n=this.getPanes(),r=n[e.layer],a=["contextmenu","DOMMouseScroll","dblclick","mousedown"];r.appendChild(o);for(var s=0;a.length>s;s++)(function(e,t){google.maps.event.addDomListener(e,t,function(e){-1!=navigator.userAgent.toLowerCase().indexOf("msie")&&document.all?(e.cancelBubble=!0,e.returnValue=!1):e.stopPropagation()})})(o,a[s]);e.click&&(n.overlayMouseTarget.appendChild(t.el),google.maps.event.addDomListener(t.el,"click",function(){e.click.apply(t,[t])})),google.maps.event.trigger(this,"ready")},t.draw=function(){var n=this.getProjection(),r=n.fromLatLngToDivPixel(new google.maps.LatLng(e.lat,e.lng));e.horizontalOffset=e.horizontalOffset||0,e.verticalOffset=e.verticalOffset||0;var a=t.el,s=a.children[0],i=s.clientHeight,l=s.clientWidth;switch(e.verticalAlign){case"top":a.style.top=r.y-i+e.verticalOffset+"px";break;default:case"middle":a.style.top=r.y-i/2+e.verticalOffset+"px";break;case"bottom":a.style.top=r.y+e.verticalOffset+"px"}switch(e.horizontalAlign){case"left":a.style.left=r.x-l+e.horizontalOffset+"px";break;default:case"center":a.style.left=r.x-l/2+e.horizontalOffset+"px";break;case"right":a.style.left=r.x+e.horizontalOffset+"px"}a.style.display=o?"block":"none",o||e.show.apply(this,[a])},t.onRemove=function(){var o=t.el;e.remove?e.remove.apply(this,[o]):(t.el.parentNode.removeChild(t.el),t.el=null)},this.overlays.push(t),t},p.prototype.removeOverlay=function(e){for(var t=0;this.overlays.length>t;t++)if(this.overlays[t]===e){this.overlays[t].setMap(null),this.overlays.splice(t,1);break}},p.prototype.removeOverlays=function(){for(var e,t=0;e=this.overlays[t];t++)e.setMap(null);this.overlays=[]},p.prototype.drawPolyline=function(e){var t=[],o=e.path;if(o.length)if(void 0===o[0][0])t=o;else for(var n,r=0;n=o[r];r++)t.push(new google.maps.LatLng(n[0],n[1]));var a={map:this.map,path:t,strokeColor:e.strokeColor,strokeOpacity:e.strokeOpacity,strokeWeight:e.strokeWeight,geodesic:e.geodesic,clickable:!0,editable:!1,visible:!0};e.hasOwnProperty("clickable")&&(a.clickable=e.clickable),e.hasOwnProperty("editable")&&(a.editable=e.editable),e.hasOwnProperty("icons")&&(a.icons=e.icons),e.hasOwnProperty("zIndex")&&(a.zIndex=e.zIndex);for(var s=new google.maps.Polyline(a),i=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"],l=0;i.length>l;l++)(function(t,o){e[o]&&google.maps.event.addListener(t,o,function(t){e[o].apply(this,[t])})})(s,i[l]);return this.polylines.push(s),p.fire("polyline_added",s,this),s},p.prototype.removePolyline=function(e){for(var t=0;this.polylines.length>t;t++)if(this.polylines[t]===e){this.polylines[t].setMap(null),this.polylines.splice(t,1),p.fire("polyline_removed",e,this);break}},p.prototype.removePolylines=function(){for(var e,t=0;e=this.polylines[t];t++)e.setMap(null);this.polylines=[]},p.prototype.drawCircle=function(e){e=t({map:this.map,center:new google.maps.LatLng(e.lat,e.lng)},e),delete e.lat,delete e.lng;for(var o=new google.maps.Circle(e),n=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"],r=0;n.length>r;r++)(function(t,o){e[o]&&google.maps.event.addListener(t,o,function(t){e[o].apply(this,[t])})})(o,n[r]);return this.polygons.push(o),o},p.prototype.drawRectangle=function(e){e=t({map:this.map},e);var o=new google.maps.LatLngBounds(new google.maps.LatLng(e.bounds[0][0],e.bounds[0][1]),new google.maps.LatLng(e.bounds[1][0],e.bounds[1][1]));e.bounds=o;for(var n=new google.maps.Rectangle(e),r=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"],a=0;r.length>a;a++)(function(t,o){e[o]&&google.maps.event.addListener(t,o,function(t){e[o].apply(this,[t])})})(n,r[a]);return this.polygons.push(n),n},p.prototype.drawPolygon=function(e){var r=!1;e.hasOwnProperty("useGeoJSON")&&(r=e.useGeoJSON),delete e.useGeoJSON,e=t({map:this.map},e),0==r&&(e.paths=[e.paths.slice(0)]),e.paths.length>0&&e.paths[0].length>0&&(e.paths=n(o(e.paths,a,r)));for(var s=new google.maps.Polygon(e),i=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"],l=0;i.length>l;l++)(function(t,o){e[o]&&google.maps.event.addListener(t,o,function(t){e[o].apply(this,[t])})})(s,i[l]);return this.polygons.push(s),p.fire("polygon_added",s,this),s},p.prototype.removePolygon=function(e){for(var t=0;this.polygons.length>t;t++)if(this.polygons[t]===e){this.polygons[t].setMap(null),this.polygons.splice(t,1),p.fire("polygon_removed",e,this);break}},p.prototype.removePolygons=function(){for(var e,t=0;e=this.polygons[t];t++)e.setMap(null);this.polygons=[]},p.prototype.getFromFusionTables=function(e){var t=e.events;delete e.events;var o=e,n=new google.maps.FusionTablesLayer(o);for(var r in t)(function(e,o){google.maps.event.addListener(e,o,function(e){t[o].apply(this,[e])})})(n,r);return this.layers.push(n),n},p.prototype.loadFromFusionTables=function(e){var t=this.getFromFusionTables(e);return t.setMap(this.map),t},p.prototype.getFromKML=function(e){var t=e.url,o=e.events;delete e.url,delete e.events;var n=e,r=new google.maps.KmlLayer(t,n);for(var a in o)(function(e,t){google.maps.event.addListener(e,t,function(e){o[t].apply(this,[e])})})(r,a);return this.layers.push(r),r},p.prototype.loadFromKML=function(e){var t=this.getFromKML(e);return t.setMap(this.map),t},p.prototype.addLayer=function(e,t){t=t||{};var o;switch(e){case"weather":this.singleLayers.weather=o=new google.maps.weather.WeatherLayer;break;case"clouds":this.singleLayers.clouds=o=new google.maps.weather.CloudLayer;break;case"traffic":this.singleLayers.traffic=o=new google.maps.TrafficLayer;break;case"transit":this.singleLayers.transit=o=new google.maps.TransitLayer;break;case"bicycling":this.singleLayers.bicycling=o=new google.maps.BicyclingLayer;break;case"panoramio":this.singleLayers.panoramio=o=new google.maps.panoramio.PanoramioLayer,o.setTag(t.filter),delete t.filter,t.click&&google.maps.event.addListener(o,"click",function(e){t.click(e),delete t.click});break;case"places":if(this.singleLayers.places=o=new google.maps.places.PlacesService(this.map),t.search||t.nearbySearch||t.radarSearch){var n={bounds:t.bounds||null,keyword:t.keyword||null,location:t.location||null,name:t.name||null,radius:t.radius||null,rankBy:t.rankBy||null,types:t.types||null};t.radarSearch&&o.radarSearch(n,t.radarSearch),t.search&&o.search(n,t.search),t.nearbySearch&&o.nearbySearch(n,t.nearbySearch)}if(t.textSearch){var r={bounds:t.bounds||null,location:t.location||null,query:t.query||null,radius:t.radius||null};o.textSearch(r,t.textSearch)}}return void 0!==o?("function"==typeof o.setOptions&&o.setOptions(t),"function"==typeof o.setMap&&o.setMap(this.map),o):void 0},p.prototype.removeLayer=function(e){if("string"==typeof e&&void 0!==this.singleLayers[e])this.singleLayers[e].setMap(null),delete this.singleLayers[e];else for(var t=0;this.layers.length>t;t++)if(this.layers[t]===e){this.layers[t].setMap(null),this.layers.splice(t,1);break}};var c,g;return p.prototype.getRoutes=function(e){switch(e.travelMode){case"bicycling":c=google.maps.TravelMode.BICYCLING;break;case"transit":c=google.maps.TravelMode.TRANSIT;break;case"driving":c=google.maps.TravelMode.DRIVING;break;default:c=google.maps.TravelMode.WALKING}g="imperial"===e.unitSystem?google.maps.UnitSystem.IMPERIAL:google.maps.UnitSystem.METRIC;var o={avoidHighways:!1,avoidTolls:!1,optimizeWaypoints:!1,waypoints:[]},n=t(o,e);n.origin=/string/.test(typeof e.origin)?e.origin:new google.maps.LatLng(e.origin[0],e.origin[1]),n.destination=/string/.test(typeof e.destination)?e.destination:new google.maps.LatLng(e.destination[0],e.destination[1]),n.travelMode=c,n.unitSystem=g,delete n.callback,delete n.error;var r=this,a=new google.maps.DirectionsService;a.route(n,function(t,o){if(o===google.maps.DirectionsStatus.OK){for(var n in t.routes)t.routes.hasOwnProperty(n)&&r.routes.push(t.routes[n]);e.callback&&e.callback(r.routes)}else e.error&&e.error(t,o)})},p.prototype.removeRoutes=function(){this.routes=[]},p.prototype.getElevations=function(e){e=t({locations:[],path:!1,samples:256},e),e.locations.length>0&&e.locations[0].length>0&&(e.locations=n(o([e.locations],a,!1)));var r=e.callback;delete e.callback;var s=new google.maps.ElevationService;if(e.path){var i={path:e.locations,samples:e.samples};s.getElevationAlongPath(i,function(e,t){r&&"function"==typeof r&&r(e,t)})}else delete e.path,delete e.samples,s.getElevationForLocations(e,function(e,t){r&&"function"==typeof r&&r(e,t)})},p.prototype.cleanRoute=p.prototype.removePolylines,p.prototype.drawRoute=function(e){var t=this;this.getRoutes({origin:e.origin,destination:e.destination,travelMode:e.travelMode,waypoints:e.waypoints,unitSystem:e.unitSystem,error:e.error,callback:function(o){if(o.length>0){var n={path:o[o.length-1].overview_path,strokeColor:e.strokeColor,strokeOpacity:e.strokeOpacity,strokeWeight:e.strokeWeight};e.hasOwnProperty("icons")&&(n.icons=e.icons),t.drawPolyline(n),e.callback&&e.callback(o[o.length-1])}}})},p.prototype.travelRoute=function(e){if(e.origin&&e.destination)this.getRoutes({origin:e.origin,destination:e.destination,travelMode:e.travelMode,waypoints:e.waypoints,unitSystem:e.unitSystem,error:e.error,callback:function(t){if(t.length>0&&e.start&&e.start(t[t.length-1]),t.length>0&&e.step){var o=t[t.length-1];if(o.legs.length>0)for(var n,r=o.legs[0].steps,a=0;n=r[a];a++)n.step_number=a,e.step(n,o.legs[0].steps.length-1)}t.length>0&&e.end&&e.end(t[t.length-1])}});else if(e.route&&e.route.legs.length>0)for(var t,o=e.route.legs[0].steps,n=0;t=o[n];n++)t.step_number=n,e.step(t)},p.prototype.drawSteppedRoute=function(e){var t=this;if(e.origin&&e.destination)this.getRoutes({origin:e.origin,destination:e.destination,travelMode:e.travelMode,waypoints:e.waypoints,error:e.error,callback:function(o){if(o.length>0&&e.start&&e.start(o[o.length-1]),o.length>0&&e.step){var n=o[o.length-1];if(n.legs.length>0)for(var r,a=n.legs[0].steps,s=0;r=a[s];s++){r.step_number=s;var i={path:r.path,strokeColor:e.strokeColor,strokeOpacity:e.strokeOpacity,strokeWeight:e.strokeWeight};e.hasOwnProperty("icons")&&(i.icons=e.icons),t.drawPolyline(i),e.step(r,n.legs[0].steps.length-1)}}o.length>0&&e.end&&e.end(o[o.length-1])}});else if(e.route&&e.route.legs.length>0)for(var o,n=e.route.legs[0].steps,r=0;o=n[r];r++){o.step_number=r;var a={path:o.path,strokeColor:e.strokeColor,strokeOpacity:e.strokeOpacity,strokeWeight:e.strokeWeight};e.hasOwnProperty("icons")&&(a.icons=e.icons),t.drawPolyline(a),e.step(o)}},p.Route=function(e){this.origin=e.origin,this.destination=e.destination,this.waypoints=e.waypoints,this.map=e.map,this.route=e.route,this.step_count=0,this.steps=this.route.legs[0].steps,this.steps_length=this.steps.length;var t={path:new google.maps.MVCArray,strokeColor:e.strokeColor,strokeOpacity:e.strokeOpacity,strokeWeight:e.strokeWeight};e.hasOwnProperty("icons")&&(t.icons=e.icons),this.polyline=this.map.drawPolyline(t).getPath()},p.Route.prototype.getRoute=function(t){var o=this;this.map.getRoutes({origin:this.origin,destination:this.destination,travelMode:t.travelMode,waypoints:this.waypoints||[],error:t.error,callback:function(){o.route=e[0],t.callback&&t.callback.call(o)}})},p.Route.prototype.back=function(){if(this.step_count>0){this.step_count--;var e=this.route.legs[0].steps[this.step_count].path;for(var t in e)e.hasOwnProperty(t)&&this.polyline.pop()}},p.Route.prototype.forward=function(){if(this.step_count<this.steps_length){var e=this.route.legs[0].steps[this.step_count].path;for(var t in e)e.hasOwnProperty(t)&&this.polyline.push(e[t]);this.step_count++}},p.prototype.checkGeofence=function(e,t,o){return o.containsLatLng(new google.maps.LatLng(e,t))},p.prototype.checkMarkerGeofence=function(e,t){if(e.fences)for(var o,n=0;o=e.fences[n];n++){var r=e.getPosition();this.checkGeofence(r.lat(),r.lng(),o)||t(e,o)}},p.prototype.toImage=function(e){var e=e||{},t={};if(t.size=e.size||[this.el.clientWidth,this.el.clientHeight],t.lat=this.getCenter().lat(),t.lng=this.getCenter().lng(),this.markers.length>0){t.markers=[];for(var o=0;this.markers.length>o;o++)t.markers.push({lat:this.markers[o].getPosition().lat(),lng:this.markers[o].getPosition().lng()})}if(this.polylines.length>0){var n=this.polylines[0];t.polyline={},t.polyline.path=google.maps.geometry.encoding.encodePath(n.getPath()),t.polyline.strokeColor=n.strokeColor,t.polyline.strokeOpacity=n.strokeOpacity,t.polyline.strokeWeight=n.strokeWeight}return p.staticMapURL(t)},p.staticMapURL=function(e){function t(e,t){if("#"===e[0]&&(e=e.replace("#","0x"),t)){if(t=parseFloat(t),t=Math.min(1,Math.max(t,0)),0===t)return"0x00000000";t=(255*t).toString(16),1===t.length&&(t+=t),e=e.slice(0,8)+t}return e}var o,n=[],r=("file:"===location.protocol?"http:":location.protocol)+"//maps.googleapis.com/maps/api/staticmap";e.url&&(r=e.url,delete e.url),r+="?";var a=e.markers;delete e.markers,!a&&e.marker&&(a=[e.marker],delete e.marker);var s=e.styles;delete e.styles;var i=e.polyline;if(delete e.polyline,e.center)n.push("center="+e.center),delete e.center;else if(e.address)n.push("center="+e.address),delete e.address;else if(e.lat)n.push(["center=",e.lat,",",e.lng].join("")),delete e.lat,delete e.lng;else if(e.visible){var l=encodeURI(e.visible.join("|"));n.push("visible="+l)}var p=e.size;p?(p.join&&(p=p.join("x")),delete e.size):p="630x300",n.push("size="+p),e.zoom||e.zoom===!1||(e.zoom=15);var c=e.hasOwnProperty("sensor")?!!e.sensor:!0;delete e.sensor,n.push("sensor="+c);for(var g in e)e.hasOwnProperty(g)&&n.push(g+"="+e[g]);if(a)for(var h,d,u=0;o=a[u];u++){h=[],o.size&&"normal"!==o.size?(h.push("size:"+o.size),delete o.size):o.icon&&(h.push("icon:"+encodeURI(o.icon)),delete o.icon),o.color&&(h.push("color:"+o.color.replace("#","0x")),delete o.color),o.label&&(h.push("label:"+o.label[0].toUpperCase()),delete o.label),d=o.address?o.address:o.lat+","+o.lng,delete o.address,delete o.lat,delete o.lng;for(var g in o)o.hasOwnProperty(g)&&h.push(g+":"+o[g]);h.length||0===u?(h.push(d),h=h.join("|"),n.push("markers="+encodeURI(h))):(h=n.pop()+encodeURI("|"+d),n.push(h))}if(s)for(var u=0;s.length>u;u++){var m=[];s[u].featureType&&m.push("feature:"+s[u].featureType.toLowerCase()),s[u].elementType&&m.push("element:"+s[u].elementType.toLowerCase());for(var f=0;s[u].stylers.length>f;f++)for(var y in s[u].stylers[f]){var v=s[u].stylers[f][y];("hue"==y||"color"==y)&&(v="0x"+v.substring(1)),m.push(y+":"+v)}var k=m.join("|");""!=k&&n.push("style="+k)}if(i){if(o=i,i=[],o.strokeWeight&&i.push("weight:"+parseInt(o.strokeWeight,10)),o.strokeColor){var w=t(o.strokeColor,o.strokeOpacity);i.push("color:"+w)}if(o.fillColor){var L=t(o.fillColor,o.fillOpacity);i.push("fillcolor:"+L)}var b=o.path;if(b.join)for(var _,f=0;_=b[f];f++)i.push(_.join(","));else i.push("enc:"+b);i=i.join("|"),n.push("path="+encodeURI(i))}var M=window.devicePixelRatio||1;return n.push("scale="+M),n=n.join("&"),r+n},p.prototype.addMapType=function(e,t){if(!t.hasOwnProperty("getTileUrl")||"function"!=typeof t.getTileUrl)throw"'getTileUrl' function required.";t.tileSize=t.tileSize||new google.maps.Size(256,256);var o=new google.maps.ImageMapType(t);this.map.mapTypes.set(e,o)},p.prototype.addOverlayMapType=function(e){if(!e.hasOwnProperty("getTile")||"function"!=typeof e.getTile)throw"'getTile' function required.";var t=e.index;delete e.index,this.map.overlayMapTypes.insertAt(t,e)},p.prototype.removeOverlayMapType=function(e){this.map.overlayMapTypes.removeAt(e)},p.prototype.addStyle=function(e){var t=new google.maps.StyledMapType(e.styles,{name:e.styledMapName});this.map.mapTypes.set(e.mapTypeId,t)},p.prototype.setStyle=function(e){this.map.setMapTypeId(e)},p.prototype.createPanorama=function(e){return e.hasOwnProperty("lat")&&e.hasOwnProperty("lng")||(e.lat=this.getCenter().lat(),e.lng=this.getCenter().lng()),this.panorama=p.createPanorama(e),this.map.setStreetView(this.panorama),this.panorama},p.createPanorama=function(e){var o=i(e.el,e.context);e.position=new google.maps.LatLng(e.lat,e.lng),delete e.el,delete e.context,delete e.lat,delete e.lng;for(var n=["closeclick","links_changed","pano_changed","position_changed","pov_changed","resize","visible_changed"],r=t({visible:!0},e),a=0;n.length>a;a++)delete r[n[a]];for(var s=new google.maps.StreetViewPanorama(o,r),a=0;n.length>a;a++)(function(t,o){e[o]&&google.maps.event.addListener(t,o,function(){e[o].apply(this)})})(s,n[a]);return s},p.prototype.on=function(e,t){return p.on(e,this,t)},p.prototype.off=function(e){p.off(e,this)},p.custom_events=["marker_added","marker_removed","polyline_added","polyline_removed","polygon_added","polygon_removed","geolocated","geolocation_failed"],p.on=function(e,t,o){if(-1==p.custom_events.indexOf(e))return t instanceof p&&(t=t.map),google.maps.event.addListener(t,e,o);var n={handler:o,eventName:e};return t.registered_events[e]=t.registered_events[e]||[],t.registered_events[e].push(n),n},p.off=function(e,t){-1==p.custom_events.indexOf(e)?(t instanceof p&&(t=t.map),google.maps.event.clearListeners(t,e)):t.registered_events[e]=[]},p.fire=function(e,t,o){if(-1==p.custom_events.indexOf(e))google.maps.event.trigger(t,e,Array.prototype.slice.apply(arguments).slice(2));else if(e in o.registered_events)for(var n=o.registered_events[e],r=0;n.length>r;r++)(function(e,t,o){e.apply(t,[o])})(n[r].handler,o,t)},p.geolocate=function(e){var t=e.always||e.complete;navigator.geolocation?navigator.geolocation.getCurrentPosition(function(o){e.success(o),t&&t()},function(o){e.error(o),t&&t()},e.options):(e.not_supported(),t&&t())},p.geocode=function(e){this.geocoder=new google.maps.Geocoder;var t=e.callback;e.hasOwnProperty("lat")&&e.hasOwnProperty("lng")&&(e.latLng=new google.maps.LatLng(e.lat,e.lng)),delete e.lat,delete e.lng,delete e.callback,this.geocoder.geocode(e,function(e,o){t(e,o)})},google.maps.Polygon.prototype.getBounds||(google.maps.Polygon.prototype.getBounds=function(){for(var e,t=new google.maps.LatLngBounds,o=this.getPaths(),n=0;o.getLength()>n;n++){e=o.getAt(n);for(var r=0;e.getLength()>r;r++)t.extend(e.getAt(r))}return t}),google.maps.Polygon.prototype.containsLatLng||(google.maps.Polygon.prototype.containsLatLng=function(e){var t=this.getBounds();if(null!==t&&!t.contains(e))return!1;for(var o=!1,n=this.getPaths().getLength(),r=0;n>r;r++)for(var a=this.getPaths().getAt(r),s=a.getLength(),i=s-1,l=0;s>l;l++){var p=a.getAt(l),c=a.getAt(i);(p.lng()<e.lng()&&c.lng()>=e.lng()||c.lng()<e.lng()&&p.lng()>=e.lng())&&p.lat()+(e.lng()-p.lng())/(c.lng()-p.lng())*(c.lat()-p.lat())<e.lat()&&(o=!o),i=l}return o}),google.maps.Circle.prototype.containsLatLng||(google.maps.Circle.prototype.containsLatLng=function(e){return google.maps.geometry?google.maps.geometry.spherical.computeDistanceBetween(this.getCenter(),e)<=this.getRadius():!0}),google.maps.LatLngBounds.prototype.containsLatLng=function(e){return this.contains(e)},google.maps.Marker.prototype.setFences=function(e){this.fences=e},google.maps.Marker.prototype.addFence=function(e){this.fences.push(e)},google.maps.Marker.prototype.getId=function(){return this.__gm_id},Array.prototype.indexOf||(Array.prototype.indexOf=function(e){if(null==this)throw new TypeError;var t=Object(this),o=t.length>>>0;if(0===o)return-1;var n=0;if(arguments.length>1&&(n=Number(arguments[1]),n!=n?n=0:0!=n&&1/0!=n&&n!=-1/0&&(n=(n>0||-1)*Math.floor(Math.abs(n)))),n>=o)return-1;for(var r=n>=0?n:Math.max(o-Math.abs(n),0);o>r;r++)if(r in t&&t[r]===e)return r;return-1}),p}),function(e){var t=function(e,t,o,n){this.base_url="https://maps.google.com/maps?",this.display(e,t,o,n)};t.prototype.display=function(t,o,n,r){e(t).show();var a=e(t).data("breakpoint");if(a>640&&(a=640),e("html").width()>a){var s=new GMaps({div:t,lat:o.lat(),lng:o.lng(),mapTypeControl:!1,zoom:parseFloat(n),streetViewControl:!1,scrollwheel:!1,mapTypeId:google.maps.MapTypeId.ROADMAP});if(r.length){var i=s.addMarker({lat:o.lat(),lng:o.lng(),infoWindow:{content:r}});"open"==e(t).data("infowindow")&&i.infoWindow.open(i.map,i)}else s.addMarker({lat:o.lat(),lng:o.lng()})}else{var l=GMaps.staticMapURL({center:o.lat()+","+o.lng(),zoom:n,size:a+"x"+e(t).height(),markers:[{lat:o.lat(),lng:o.lng()}],sensor:"false"}),p=e("<img />");e(p).attr("src",l),e(p).attr("alt",e(t).text());var c=e("<a />");e(c).attr("href",this.base_url+"q="+o.lat()+","+o.lng()+"&z="+n),e(c).html(p),e(t).html(c),e(t).addClass("staticmap")}},e(".simplemap").each(function(){var o=e("div",this).get(0),n=16;if(parseFloat(e(o).data("zoom"))&&(n=e(o).data("zoom")),e(o).data("lat")&&e(o).data("lng")){var r=e(o).data("lat"),a=e(o).data("lng"),s=e(o).html(),i=new google.maps.LatLng(r,a);new t(o,i,n,s)}else e(o).data("addr")?GMaps.geocode({address:e(o).data("addr"),callback:function(r,a){if("OK"==a){var s=r[0].geometry.location;new t(o,s,n,e(o).html())}}}):e(o).text().length&&GMaps.geocode({address:e(o).text(),callback:function(r,a){if("OK"==a){var s=r[0].geometry.location;
14
+ new t(o,s,n,e(o).text())}}})})}(jQuery);
package.json ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "simple-map",
3
+ "title": "Simple Map",
4
+ "license" : "GPLv2",
5
+ "description": "Easy way to embed google map(s) using gmaps.js.",
6
+ "version": "2.6.0",
7
+ "homepage": "http://wordpress.org/plugins/simple-map/",
8
+ "repository" : {
9
+ "type" : "git",
10
+ "url" : "https://github.com/miya0001/simple-map"
11
+ },
12
+ "author": {
13
+ "name": "Takayuki Miyauchi",
14
+ "url": "http://wpist.me/"
15
+ },
16
+ "dependencies": {
17
+ "gmaps": "git+ssh://git@github.com:HPNeo/gmaps.git#0.4.19"
18
+ },
19
+ "devDependencies": {
20
+ "grunt": "~0.4.1",
21
+ "grunt-contrib-uglify": "~0.1.1",
22
+ "grunt-contrib-qunit": "*"
23
+ },
24
+ "keywords": []
25
+ }
readme.txt ADDED
@@ -0,0 +1,208 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Simple Map ===
2
+ Contributors: miyauchi
3
+ Donate link: http://wpist.me/
4
+ Tags: google maps, map, shortcode, address
5
+ Requires at least: 3.6
6
+ Tested up to: 4.3
7
+ Stable tag: 2.6.0
8
+
9
+ Easy way to embed google map(s).
10
+
11
+ == Description ==
12
+
13
+ Easy way to embed google map(s) using [gmaps.js](http://hpneo.github.com/gmaps/).
14
+
15
+ This plugin allows you to convert address into google maps like below:
16
+
17
+ `[map]San Francisco, California[/map]`
18
+
19
+ Another way, you can embed Google Map with url only like oEmbed.
20
+
21
+
22
+ You can also use coordinates, set width, height and zoom:
23
+
24
+ `[map lat="37.77493" lng="-122.41942"]
25
+ Text you would
26
+ like to appear
27
+ as a tooltip
28
+ goes here
29
+ [/map]`
30
+
31
+ In this case there will be a marker on the map with a tooltip appearing on click on the said marker.
32
+ You can use simple html as the tooltip content.
33
+
34
+
35
+ [This plugin is maintained on GitHub.](https://github.com/miya0001/simple-map)
36
+
37
+ = Some features: =
38
+
39
+ * Allows you to embed google map based on shortcode.
40
+ * Markers can be added using address or lat/long.
41
+ * Displays static map for iPhone automatically.
42
+ * oEmbed Support.
43
+
44
+ = Arguments =
45
+
46
+ * width: Width of the map. Default value is "100%".
47
+ * height: Height of the map. Default value is "200px".
48
+ * zoom: Zoom of the map. Default value is "16".
49
+ * breakpoint: If display is narrower than this value, this plugin will display static map. Default value is "480".
50
+ * addr: Address of the map you want to place.
51
+ * lat: Lat of the map you want to place.
52
+ * lng: Lng of the map you want to place.
53
+ * infowindow: If you want to open infoWindow by Default, please set "open".
54
+
55
+ If you will set lat/lng and address, this plugin gives priority to lat/lng.
56
+
57
+ = Filter Hooks =
58
+
59
+ This plugin has some filter hooks for customize default.
60
+
61
+ * simplemap_default_width
62
+ * simplemap_default_height
63
+ * simplemap_default_zoom
64
+ * simplemap_default_breakpoint
65
+ * simplemap_default_infowindow
66
+
67
+ `add_filter( 'simplemap_default_zoom', function(){
68
+ return 10; // Default zoom is 10
69
+ } );`
70
+
71
+ = Translators =
72
+
73
+ * Japanese(ja) - [Takayuki Miyauchi](http://firegoby.jp/)
74
+
75
+ Please contact me.
76
+
77
+ * https://github.com/miya0001/simple-map/issues
78
+
79
+ = Contributors =
80
+
81
+ * [Takayuki Miyauchi](http://firegoby.jp/)
82
+ * [Zoltán Balogh](http://birdcreation.com/)
83
+ * [Takanobu Watanabe](https://github.com/tknv)
84
+ * [Shinichi Nishikawa](http://th-daily.shinichi.me/)
85
+
86
+ == Installation ==
87
+
88
+ * Download the zip, extract it and upload the extracted folder to your-wp-directory/wp-content/plugins/
89
+ * Go to the plugins administration screen in your WordPress admin and activate the plugin.
90
+
91
+ OR
92
+
93
+ * Download the zip, go to the plugins administration screen in your WordPress admin, click on Add New then on upload, browse to the downloaded zip, upload the plugin and activate it.
94
+
95
+ OR
96
+
97
+ * Go to the plugins administration screen in your WordPress admin, click on Add New, search for Simple Map and click on Install Now.
98
+
99
+ *Usage*
100
+
101
+ This plugin allows you to convert address into google maps like below:
102
+
103
+ `[map]San Francisco, California[/map]`
104
+
105
+ Another way, you can embed Google Map with url only like oEmbed.
106
+
107
+ You can also use coordinates, set width, height and zoom:
108
+
109
+ `[map lat="37.77493" lng="-122.41942" width="100%" height="400px" zoom="15"]
110
+ Text you would
111
+ like to appear
112
+ as a tooltip
113
+ goes here
114
+ [/map]`
115
+
116
+ In this case there will be a marker on the map with a tooltip appearing on click on the said marker.
117
+ You can use simple html as the tooltip content.
118
+
119
+ == Screenshots ==
120
+
121
+ 1. Very easy.
122
+ 2. Info Window.
123
+ 3. Mobile Support. (Google static map)
124
+
125
+ == Changelog ==
126
+
127
+ = 2.6.0 =
128
+
129
+ * Update gmaps.js from 0.4.18 to 0.4.19
130
+ * Add front end test
131
+
132
+ https://github.com/miya0001/simple-map/compare/2.5.0...2.6.0
133
+
134
+ = 2.5.0 =
135
+ * Update gmaps.js 0.4.17 to 0.4.18
136
+ * Tested on WordPress 4.3
137
+
138
+ = 2.4.0 =
139
+ * Update gmaps.js 0.4.16 to 0.4.17
140
+
141
+ = 2.3.0 =
142
+ * Tested on the WordPress 4.1.
143
+ * Up to minimum required to WordPress 3.6.
144
+
145
+ = 2.2.0 =
146
+ * update gmaps.js 0.4.15 to 0.4.16
147
+
148
+ = 2.1.0 =
149
+ * update gmaps.js 0.4.14 to 0.4.15
150
+
151
+ = 2.0.0 =
152
+ * Add argument infowindow
153
+ * little fix
154
+
155
+ = 1.9.0 =
156
+ * update gmaps.js 0.4.13 to 0.4.14
157
+
158
+ = 1.8.0 =
159
+ * update gmaps.js 0.4.12 to 0.4.13
160
+
161
+ = 1.7.0 =
162
+ * update gmaps.js 0.4.11 to 0.4.12
163
+
164
+ = 1.6.0 =
165
+ * update gmaps.js 0.4.9 to 0.4.11
166
+
167
+ = 1.5.0 =
168
+ * enable ssl source of google map api js
169
+
170
+ = 1.4.0 =
171
+ * change URL match pattern.
172
+
173
+ = 1.3.0 =
174
+ * Update gmaps.js to 0.4.9.
175
+
176
+ = 1.2.0 =
177
+ * Tested on the WordPress 3.8.
178
+ * Add Grunt.
179
+
180
+ = 1.1.0 =
181
+ * Added support for gmaps.js tooltip on markers
182
+
183
+ = 1.0.0 =
184
+ * Delete hl=ja param from static map link uri.
185
+
186
+ = 0.9.0 =
187
+ * hook changed to the init.
188
+
189
+ = 0.8.0 =
190
+ * shortcode atts and address priority changed.
191
+
192
+ = 0.7.0 =
193
+ * gmaps.js updated 0.4.4 to 0.4.5
194
+
195
+ = 0.6.0 =
196
+ * oEmbed Support
197
+
198
+ = 0.1.0 =
199
+ * The first release.
200
+
201
+ == Credits ==
202
+
203
+ This plugin is not guaranteed though the user of WordPress can freely use this plugin free of charge regardless of the purpose.
204
+ The author must acknowledge the thing that the operation guarantee and the support in this plugin use are not done at all beforehand.
205
+
206
+ == Contact ==
207
+
208
+ twitter @miya0001
simple-map.php ADDED
@@ -0,0 +1,168 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ Plugin Name: Simple Map
4
+ Author: Takayuki Miyauchi
5
+ Plugin URI: https://github.com/miya0001/simple-map
6
+ Description: Insert google map convert from address.
7
+ Version: 2.6.0
8
+ Author URI: http://wpist.me/
9
+ Domain Path: /languages
10
+ Text Domain: simplemap
11
+ */
12
+
13
+ $simplemap = new Simple_Map();
14
+
15
+ class Simple_Map {
16
+
17
+ private $shortcode_tag = 'map';
18
+ private $class_name = 'simplemap';
19
+ private $width = '100%';
20
+ private $height = '200px';
21
+ private $zoom = 16;
22
+ private $breakpoint = 480;
23
+ private $max_breakpoint = 640;
24
+
25
+ function __construct()
26
+ {
27
+ add_action( 'init', array( $this, 'init' ) );
28
+ }
29
+
30
+ public function init()
31
+ {
32
+ add_action( 'wp_head', array( $this, 'wp_head' ) );
33
+ add_shortcode( $this->get_shortcode_tag(), array( $this, 'shortcode' ) );
34
+
35
+ wp_embed_register_handler(
36
+ 'google-map',
37
+ '#( https://( www|maps ).google.[a-z]{2,3}\.?[a-z]{0,3}/maps( /ms )?\?.+ )#i',
38
+ array( &$this, 'oembed_handler' )
39
+ );
40
+ }
41
+
42
+ public function oembed_handler( $match )
43
+ {
44
+ return sprintf(
45
+ '[%s url="%s"]',
46
+ $this->get_shortcode_tag(),
47
+ esc_url( $match[0] )
48
+ );
49
+ }
50
+
51
+ public function wp_head()
52
+ {
53
+ echo "<style>.simplemap img{max-width:none !important;padding:0 !important;margin:0 !important;}.staticmap,.staticmap img{max-width:100% !important;height:auto !important;}.simplemap .simplemap-content{display:none;}</style>\n";
54
+ }
55
+
56
+ public function wp_enqueue_scripts()
57
+ {
58
+ wp_register_script(
59
+ 'google-maps-api',
60
+ '//maps.google.com/maps/api/js?sensor=false',
61
+ false,
62
+ null,
63
+ true
64
+ );
65
+
66
+ wp_register_script(
67
+ 'simplemap',
68
+ apply_filters(
69
+ 'simplemap_script',
70
+ plugins_url( 'js/simple-map.min.js' , __FILE__ )
71
+ ),
72
+ array( 'jquery', 'google-maps-api' ),
73
+ filemtime( dirname( __FILE__ ).'/js/simple-map.min.js' ),
74
+ true
75
+ );
76
+ wp_enqueue_script( 'simplemap' );
77
+ }
78
+
79
+ public function shortcode( $p, $content = null )
80
+ {
81
+ add_action( 'wp_footer', array( &$this, 'wp_enqueue_scripts' ) );
82
+
83
+ if ( isset( $p['width'] ) && preg_match( '/^[0-9]+(%|px)$/', $p['width'] ) ) {
84
+ $w = $p['width'];
85
+ } else {
86
+ $w = apply_filters( 'simplemap_default_width', $this->width );
87
+ }
88
+ if ( isset( $p['height'] ) && preg_match( '/^[0-9]+(%|px)$/', $p['height'] ) ) {
89
+ $h = $p['height'];
90
+ } else {
91
+ $h = apply_filters( 'simplemap_default_height', $this->height );
92
+ }
93
+ if ( isset( $p['zoom'] ) && intval( $p['zoom'] ) ) {
94
+ $zoom = $p['zoom'];
95
+ } else {
96
+ $zoom = apply_filters( 'simplemap_default_zoom', $this->zoom );
97
+ }
98
+ if ( isset( $p['breakpoint'] ) && intval( $p['breakpoint'] ) ) {
99
+ if ( intval( $p['breakpoint'] ) > $this->max_breakpoint ) {
100
+ $breakpoint = $this->max_breakpoint;
101
+ } else {
102
+ $breakpoint = intval( $p['breakpoint'] );
103
+ }
104
+ } else {
105
+ $breakpoint = apply_filters(
106
+ 'simplemap_default_breakpoint',
107
+ $this->breakpoint
108
+ );
109
+ }
110
+ if ( $content ) {
111
+ $content = do_shortcode( $content );
112
+ }
113
+ if ( isset( $p['infowindow'] ) && $p['infowindow'] ) {
114
+ $infowindow = $p['infowindow'];
115
+ } else {
116
+ $infowindow = apply_filters( 'simplemap_default_infowindow', 'close' );
117
+ }
118
+
119
+ $addr = '';
120
+ $lat = '';
121
+ $lng = '';
122
+
123
+ if ( isset( $p['url'] ) && $p['url'] ) {
124
+ $iframe = '<iframe width="%s" height="%s" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="%s"></iframe>';
125
+
126
+ return sprintf(
127
+ $iframe,
128
+ $w,
129
+ $h,
130
+ esc_url( $p['url'].'&output=embed' )
131
+ );
132
+ } elseif ( isset( $p['lat'] ) && preg_match( '/^\-?[0-9\.]+$/', $p['lat'] )
133
+ && isset( $p['lng'] ) && preg_match( '/^\-?[0-9\.]+$/', $p['lng'] ) ){
134
+ $lat = $p['lat'];
135
+ $lng = $p['lng'];
136
+ } elseif ( isset( $p['addr'] ) && $p['addr'] ) {
137
+ if ( $content ) {
138
+ $addr = esc_html( $p['addr'] );
139
+ } else {
140
+ $content = esc_html( $p['addr'] );
141
+ }
142
+ } elseif ( ! $content ) {
143
+ return;
144
+ }
145
+ return sprintf(
146
+ '<div class="%1$s"><div class="%1$s-content" data-breakpoint="%2$s" data-lat="%3$s" data-lng="%4$s" data-zoom="%5$s" data-addr="%6$s" data-infowindow="%7$s" style="width:%8$s;height:%9$s;">%10$s</div></div>',
147
+ apply_filters( 'simplemap_class_name', $this->class_name ),
148
+ $breakpoint,
149
+ $lat,
150
+ $lng,
151
+ $zoom,
152
+ $addr,
153
+ $infowindow,
154
+ $w,
155
+ $h,
156
+ trim( $content )
157
+ );
158
+ }
159
+
160
+ private function get_shortcode_tag()
161
+ {
162
+ return apply_filters( 'simplemap_shortcode_tag', $this->shortcode_tag );
163
+ }
164
+
165
+ } // end class
166
+
167
+
168
+ // EOF