{"id":1057,"date":"2011-08-07T21:13:17","date_gmt":"2011-08-07T21:13:17","guid":{"rendered":"http:\/\/crowle.org\/?page_id=1057"},"modified":"2011-08-07T21:13:17","modified_gmt":"2011-08-07T21:13:17","slug":"crowle-map","status":"publish","type":"page","link":"https:\/\/crowle.org\/?page_id=1057","title":{"rendered":"Crowle Map"},"content":{"rendered":"<p>Test Map<br \/>\n<!-- ++Begin GSpreadsheets Map Wizard Generated Code++ --><\/p>\n<div style=\"width:575px;font-family:Arial, sans-serif;font-size:11px;border:1px solid black\">\n<table id=\"cm_mapTABLE\">\n<tbody>\n<tr id=\"cm_mapTR\">\n<td>\n<div id=\"cm_map\" style=\"width:450px;height:900px\"><\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\/\/&lt;![CDATA[<br \/>\nvar cm_map;<br \/>\nvar cm_mapMarkers = [];<br \/>\nvar cm_mapHTMLS = [];<\/p>\n<p>\/\/ Create a base icon for all of our markers that specifies the<br \/>\n\/\/ shadow, icon dimensions, etc.<br \/>\nvar cm_baseIcon = new GIcon();<br \/>\ncm_baseIcon.shadow = &quot;http:\/\/www.google.com\/mapfiles\/shadow50.png&quot;;<br \/>\ncm_baseIcon.iconSize = new GSize(20, 34);<br \/>\ncm_baseIcon.shadowSize = new GSize(37, 34);<br \/>\ncm_baseIcon.iconAnchor = new GPoint(9, 34);<br \/>\ncm_baseIcon.infoWindowAnchor = new GPoint(9, 2);<br \/>\ncm_baseIcon.infoShadowAnchor = new GPoint(18, 25);<\/p>\n<p>\/\/ Change these parameters to customize map<br \/>\nvar param_wsId = &quot;od6&quot;;<br \/>\nvar param_ssKey = &quot;0Anfo9NGnY6hAdFVURGlEaktsd21LYkFneGhPcHcwREE&quot;;<br \/>\nvar param_useSidebar = true;<br \/>\nvar param_titleColumn = &quot;title&quot;;<br \/>\nvar param_descriptionColumn = &quot;description&quot;;<br \/>\nvar param_latColumn = &quot;latitude&quot;;<br \/>\nvar param_lngColumn = &quot;longitude&quot;;<br \/>\nvar param_rankColumn = &quot;rank&quot;;<br \/>\nvar param_iconType = &quot;green&quot;;<br \/>\nvar param_iconOverType = &quot;orange&quot;;<\/p>\n<p>\/**<br \/>\n * Loads map and calls function to load in worksheet data.<br \/>\n *\/<br \/>\nfunction cm_load() {<br \/>\n  if (GBrowserIsCompatible()) {<br \/>\n    \/\/ create the map<br \/>\n    cm_map = new GMap2(document.getElementById(&quot;cm_map&quot;));<br \/>\n    cm_map.addControl(new GLargeMapControl());<br \/>\n    cm_map.addControl(new GMapTypeControl());<br \/>\n    cm_map.setCenter(new GLatLng( 43.907787,-79.359741), 2);<br \/>\n    cm_getJSON();<br \/>\n  } else {<br \/>\n    alert(&quot;Sorry, the Google Maps API is not compatible with this browser&quot;);<br \/>\n  }<br \/>\n}<\/p>\n<p>\/**<br \/>\n * Function called when marker on the map is clicked.<br \/>\n * Opens an info window (bubble) above the marker.<br \/>\n * @param {Number} markerNum Number of marker in global array<br \/>\n *\/<br \/>\nfunction cm_markerClicked(markerNum) {<br \/>\n  cm_mapMarkers[markerNum].openInfoWindowHtml(cm_mapHTMLS[markerNum]);<br \/>\n}<\/p>\n<p>\/**<br \/>\n * Function that sorts 2 worksheet rows from JSON feed<br \/>\n * based on their rank column. Only called if column is defined.<br \/>\n * @param {rowA} Object Represents row in JSON feed<br \/>\n * @param {rowB} Object Represents row in JSON feed<br \/>\n * @return {Number} Difference between row values<br \/>\n *\/<br \/>\nfunction cm_sortRows(rowA, rowB) {<br \/>\n  var rowAValue = parseFloat(rowA[&quot;gsx$&quot; + param_rankColumn].$t);<br \/>\n  var rowBValue = parseFloat(rowB[&quot;gsx$&quot; + param_rankColumn].$t);<\/p>\n<p>  return rowAValue &#8211; rowBValue;<br \/>\n}<\/p>\n<p>\/**<br \/>\n * Called when JSON is loaded. Creates sidebar if param_sideBar is true.<br \/>\n * Sorts rows if param_rankColumn is valid column. Iterates through worksheet rows,<br \/>\n * creating marker and sidebar entries for each row.<br \/>\n * @param {JSON} json Worksheet feed<br \/>\n *\/<br \/>\nfunction cm_loadMapJSON(json) {<br \/>\n  var usingRank = false;<\/p>\n<p>  if(param_useSidebar == true) {<br \/>\n    var sidebarTD = document.createElement(&quot;td&quot;);<br \/>\n    sidebarTD.setAttribute(&quot;width&quot;,&quot;150&quot;);<br \/>\n    sidebarTD.setAttribute(&quot;valign&quot;,&quot;top&quot;);<br \/>\n    var sidebarDIV = document.createElement(&quot;div&quot;);<br \/>\n    sidebarDIV.id = &quot;cm_sidebarDIV&quot;;<br \/>\n    sidebarDIV.style.overflow = &quot;auto&quot;;<br \/>\n    sidebarDIV.style.height = &quot;900px&quot;;<br \/>\n    sidebarDIV.style.fontSize = &quot;11px&quot;;<br \/>\n    sidebarDIV.style.color = &quot;#000000&quot;;<br \/>\n    sidebarTD.appendChild(sidebarDIV);<br \/>\n    document.getElementById(&quot;cm_mapTR&quot;).appendChild(sidebarTD);<br \/>\n  }<\/p>\n<p>  var bounds = new GLatLngBounds();\t  <\/p>\n<p>  if(json.feed.entry[0][&quot;gsx$&quot; + param_rankColumn]) {<br \/>\n    usingRank = true;<br \/>\n    json.feed.entry.sort(cm_sortRows);<br \/>\n  }<\/p>\n<p>  for (var i = 0; i &lt; json.feed.entry.length; i++) {<br \/>\n    var entry = json.feed.entry[i];<br \/>\n    if(entry[&quot;gsx$&quot; + param_latColumn]) {<br \/>\n      var lat = parseFloat(entry[&quot;gsx$&quot; + param_latColumn].$t);<br \/>\n      var lng = parseFloat(entry[&quot;gsx$&quot; + param_lngColumn].$t);<br \/>\n      var point = new GLatLng(lat,lng);<br \/>\n      var html = &quot;<\/p>\n<div style='font-size:12px'>&#8220;;<br \/>\n      html += &#8220;<strong>&#8221; + entry[&#8220;gsx$&#8221;+param_titleColumn].$t<br \/>\n              + &#8220;<\/strong>&#8220;;<br \/>\n      var label = entry[&#8220;gsx$&#8221;+param_titleColumn].$t;<br \/>\n      var rank = 0;<br \/>\n      if(usingRank &amp;&amp; entry[&#8220;gsx$&#8221; + param_rankColumn]) {<br \/>\n        rank = parseInt(entry[&#8220;gsx$&#8221;+param_rankColumn].$t);<br \/>\n      }<br \/>\n      if(entry[&#8220;gsx$&#8221; + param_descriptionColumn]) {<br \/>\n        html += &#8220;<br \/>&#8221; + entry[&#8220;gsx$&#8221;+param_descriptionColumn].$t;<br \/>\n      }<br \/>\n      html += &#8220;<\/div>\n<p>&#8220;;<\/p>\n<p>      \/\/ create the marker<br \/>\n      var marker = cm_createMarker(point,label,html,rank);<br \/>\n      cm_map.addOverlay(marker);<br \/>\n      cm_mapMarkers.push(marker);<br \/>\n      cm_mapHTMLS.push(html);<br \/>\n      bounds.extend(point);<\/p>\n<p>      if(param_useSidebar == true) {<br \/>\n        var markerA = document.createElement(&#8220;a&#8221;);<br \/>\n        markerA.setAttribute(&#8220;href&#8221;,&#8221;javascript:cm_markerClicked(&#8216;&#8221; + i +&#8221;&#8216;)&#8221;);<br \/>\n        markerA.style.color = &#8220;#000000&#8221;;<br \/>\n        var sidebarText= &#8220;&#8221;;<br \/>\n        if(usingRank) {<br \/>\n          sidebarText += rank + &#8220;) &#8220;;<br \/>\n        }<br \/>\n        sidebarText += label;<br \/>\n        markerA.appendChild(document.createTextNode(sidebarText));<br \/>\n        sidebarDIV.appendChild(markerA);<br \/>\n        sidebarDIV.appendChild(document.createElement(&#8220;br&#8221;));<br \/>\n        sidebarDIV.appendChild(document.createElement(&#8220;br&#8221;));<br \/>\n      }<br \/>\n    }<br \/>\n  }<\/p>\n<p>  cm_map.setZoom(cm_map.getBoundsZoomLevel(bounds));<br \/>\n  cm_map.setCenter(bounds.getCenter());<br \/>\n}<\/p>\n<p>\/**<br \/>\n * Creates marker with ranked Icon or blank icon,<br \/>\n * depending if rank is defined. Assigns onclick function.<br \/>\n * @param {GLatLng} point Point to create marker at<br \/>\n * @param {String} title Tooltip title to display for marker<br \/>\n * @param {String} html HTML to display in InfoWindow<br \/>\n * @param {Number} rank Number rank of marker, used in creating icon<br \/>\n * @return {GMarker} Marker created<br \/>\n *\/<br \/>\nfunction cm_createMarker(point, title, html, rank) {<br \/>\n  var markerOpts = {};<br \/>\n  var nIcon = new GIcon(cm_baseIcon);<\/p>\n<p>  if(rank &gt; 0 &amp;&amp; rank <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Test Map \/\/&lt;![CDATA[ var cm_map; var cm_mapMarkers = []; var cm_mapHTMLS = []; \/\/ Create a base icon for all of our markers that specifies the \/\/ shadow, icon dimensions, etc. var cm_baseIcon = new GIcon(); cm_baseIcon.shadow = &quot;http:\/\/www.google.com\/mapfiles\/shadow50.png&quot;; cm_baseIcon.iconSize = new GSize(20, 34); cm_baseIcon.shadowSize = new GSize(37, 34); cm_baseIcon.iconAnchor = new GPoint(9, 34); cm_baseIcon.infoWindowAnchor [&hellip;]<\/p>\n","protected":false},"author":159,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-1057","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/crowle.org\/index.php?rest_route=\/wp\/v2\/pages\/1057","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/crowle.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/crowle.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/crowle.org\/index.php?rest_route=\/wp\/v2\/users\/159"}],"replies":[{"embeddable":true,"href":"https:\/\/crowle.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1057"}],"version-history":[{"count":0,"href":"https:\/\/crowle.org\/index.php?rest_route=\/wp\/v2\/pages\/1057\/revisions"}],"wp:attachment":[{"href":"https:\/\/crowle.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1057"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}