{"id":15819,"date":"2015-07-08T05:01:10","date_gmt":"2015-07-07T19:01:10","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/ITblog\/?p=15819"},"modified":"2016-10-09T19:30:31","modified_gmt":"2016-10-09T09:30:31","slug":"php-lighthouses-in-australia-primer-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/php-lighthouses-in-australia-primer-tutorial\/","title":{"rendered":"PHP Lighthouses in Australia Primer Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/australian_lighthouses.php\"><img decoding=\"async\" style=\"float:left; border: 15px solid pink;\" alt=\"PHP Lighthouses in Australia Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/australian_loghthouses-64of.jpg\" title=\"PHP Lighthouses in Australia Primer Tutorial\" id='alhi' onmouseover=\" this.src=this.src.replace('-62of.j','-63of.xj').replace('-63of.j','-64of.xj').replace('-64of.j','-65of.xj').replace('-65of.j','-62of.xj').replace('.xj','.j');    \" \/><\/a><p class=\"wp-caption-text\">PHP Lighthouses in Australia Primer Tutorial<\/p><\/div>\n<p>Today we examine some of the methodology behind a project idea.<\/p>\n<p>Projects need &#8230;<\/p>\n<ul>\n<li>an idea &#8230; ours came from listening to the radio and hearing about Lighthouses, and how the technologies had changed what they look like and how they function these days &#8230; to quote <a target=_blank title='list of lighthouse positions' href='https:\/\/en.wikipedia.org\/wiki\/List_of_lighthouses_and_lightvessels_in_Australia'>Wikipedia<\/a> with respect to Australian Lighthouses (thanks) &#8230;<br \/>\n<blockquote><p>\nThe first lighthouse was Macquarie Lighthouse, which was lit in 1793 as a tripod mounted wood and coal fired beacon. The last manned lighthouse was Maatsuyker Island Lighthouse, off the south coast of Tasmania, which was automated in 1996.\n<\/p><\/blockquote>\n<\/li>\n<li>a means to access information &#8230; much easier these days with the search engines &#8230; we went with a Google Search as per <a target=_blank title='list of lighthouse positions' href='https:\/\/www.google.com.au\/search?q=list+of+lighthouse+positions&#038;ie=utf-8&#038;oe=utf-8&#038;gws_rd=cr&#038;ei=e7OXVf2zHNH88QWBnaeACg'>list of lighthouse positions<\/a> &#8230; which led to &#8230;<\/li>\n<li>the information source(s) &#8230; we settled, and were not surprised about the source, for Wikipedia&#8217;s <a target=_blank title='List of lighthouses and lightvessels in Australia - Wikipedia' href='https:\/\/en.wikipedia.org\/wiki\/List_of_lighthouses_and_lightvessels_in_Australia'>List of lighthouses and lightvessels in Australia &#8211; Wikipedia<\/a> &#8230; then, once happy about the quality of the source information, analyzed &#8230;<\/li>\n<li>the source data format &#8230; initially, at least, via View-&gt;Page Source, relative to the webpage &#8230; to get ideas for how to parse the data &#8230; so that we can determine a &#8230;<\/li>\n<li>programming language of choice &#8230; which is PHP &#8230; no surprise here &#8230; will need a server-side language &#8230; and a method like PHP&#8217;s <a target=_blank title='PHP file_get_contents() method' href='http:\/\/php.net\/manual\/en\/function.file-get-contents.php'>file_get_contents()<\/a> &#8230; from there &#8230;<\/li>\n<li>PHP coding to parse the data and put it into another format that value adds &#8230; otherwise why do it, as the Wikipedia information is fine as is &#8230; that is where we determine that we should &#8230;<\/li>\n<li>include an iframe that uses the Google Chart Map Chart to add that extra overall positional view of Lighthouses &#8230; a definite asset to the reader&#8217;s understanding of the subject &#8230; definitely a &#8220;where&#8221; web application &#8230; and in doing this we notice that &#8230;<\/li>\n<li>Google Chart Map Chart <a target=_blank href='http:\/\/www.rjmprogramming.com.au\/PHP\/Map\/map.php---GETME' title='Download me'>map.php<\/a> web application needed to be able to handle much larger input data streams than it could in its previous incarnation of only allowing PHP $_GET[] parameters &#8230; so we change it to allow $_POST[] parameters &#8230; maybe you noticed this with yesterday&#8217;s <a target=_blank title='PHP\/Javascript\/HTML Google Chart Map Onclick Tutorial' href='#pjhgcmot'>PHP\/Javascript\/HTML Google Chart Map Onclick Tutorial<\/a> as shown below &#8230; as this meant that &#8230;<\/li>\n<li>we need an HTML form that POSTs to the iframe with the Google Chart Map Chart map.php web application allowable because we are on the same domain with this thinking &#8230; and using an HTML textarea element to store the huge string of Lighthouse data that will be passed across via urldecode($_POST[&#8216;data&#8217;]) at map.php &#8230; using PHP&#8217;s <a target=_blank title='PHP urldecode() method information' href='http:\/\/php.net\/manual\/en\/function.urldecode.php'>urldecode()<\/a> and <a target=_blank title='PHP urlencode() method information' href='http:\/\/php.net\/manual\/en\/function.urlencode.php'>urlencode()<\/a> methods and Javascript&#8217;s <a target=_blank title='Javascript decodeURIComponent() method information from w3schools' href='http:\/\/www.w3schools.com\/jsref\/jsref_decodeuricomponent.asp'>decodeURIComponent()<\/a> method &#8230; as well as utilizing &#8230;<\/li>\n<li>Google Chart Map Chart map.php web application <a target=_blank title='PHP\/Javascript\/HTML Google Chart Map Onclick Tutorial' href='#pjhgcmot'>onclick<\/a> and <a target=_blank title='PHP\/Javascript\/HTML Google Chart Map Tooltip Tutorial' href='#pjhgcmtt'>tooltip<\/a> functionality we&#8217;ve been working on lately &#8230; hence the talk about this below &#8230; working out what (component) tools could do with a &#8220;makeover&#8221; is an extremely important part of any project and can be a useful compartmentalizing of the project<\/li>\n<\/ul>\n<p> &#8230; and so we end up with our <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/australian_lighthouses.php\" title='click picture'>live run<\/a> behind which is the PHP programming source code you could call <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/australian_lighthouses.php_GETME\" title='australian_lighthouses.php'>australian_lighthouses.php<\/a> for your perusal.<\/p>\n<hr>\n<p id='pjhgcmot'>Previous relevant <a target=_blank title='PHP\/Javascript\/HTML Google Chart Map Onclick Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/phpjavascripthtml-google-chart-map-onclick-tutorial\/'>PHP\/Javascript\/HTML Google Chart Map Onclick Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Map\/map.php\"><img decoding=\"async\" style=\"float:left; border: 15px solid pink;\" alt=\"PHP\/Javascript\/HTML Google Chart Map Onclick Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Map\/map_onclick.jpg\" title=\"PHP\/Javascript\/HTML Google Chart Map Onclick Tutorial\"  \/><\/a><p class=\"wp-caption-text\">PHP\/Javascript\/HTML Google Chart Map Onclick Tutorial<\/p><\/div>\n<p>They say &#8220;the knee bone&#8217;s connected to the thigh bone&#8221; then they say &#8220;the thigh bone&#8217;s connected to the &#8230; hip bone&#8221; then they say &#8220;let&#8217;s call the whole thing off&#8221; &#8230; sometimes.<\/p>\n<p>Today we say &#8220;the onmouseover event is connected to the onclick event&#8221; then we say &#8220;the onclick event is connected to the online woooooorld&#8221; &#8230; &#8220;do &#8230; the hokey pokey&#8221; x3 &#8230; &#8220;that&#8217;s what the onclick event preceeded by the onmouseover event within the environs you are encountering &#8230; is all about&#8221;.<\/p>\n<p>That news is pretty good actually, because it means mobile users are not missing out on much not having easy access to any onmouseover (ie. hover) functionality &#8230; they&#8217;ll still reach any onclick logic you present them, in the default case of events where onclick is a valid &#8220;touch&#8221; event as well.<\/p>\n<p>So the data structure of arrangements to allow for this onclick functionality is intrinsically the same as allowed for yesterday with the <a target=_blank title='PHP\/Javascript\/HTML Google Chart Map Tooltips Tutorial' href='#pjhgcmtt'>PHP\/Javascript\/HTML Google Chart Map Tooltips Tutorial<\/a> as shown below, but we just check for some more delimitation issue matters, and our updated prompting window logic gets quite &#8220;blurby&#8221; as per the Javascript (via PHP)  &#8230;<\/p>\n<p><code><br \/>\n<b><br \/>\n echo \" datalinesuffix = prompt('Enter decimal Latitude,Longitude ' + thisline + extra +  ' (for no more hit Cancel button and append with ' + '\\\\n\\\\n' + ',\\\"A tooltip and clicking link for Google Map of &lt;a target=_blank href=https:\/\/www.google.com.au\/maps\/place\/' + encodeURIComponent(dlp2) + '&gt;' + dlp2 + '&lt;\/a&gt;\\\" ' + '\\\\n\\\\n' + ' or maybe perhaps ' + '\\\\n\\\\n' + ',\\\"A tooltip and clicking link for Google Map based on latitude and longitude of &lt;a target=_blank href=https:\/\/maps.google.com.au\/maps?' + encodeURIComponent('z=15&t=m&q=loc:') + '{latitude}{longitude}&gt;' + dlp2 + '&lt;\/a&gt;\\\"' + '\\\\n\\\\n' + ' optionally (as (just) two examples of what is possible with HTML included (activates with onclick bit not onmouseover))', thisdef); \" . \"\\n\";<br \/>\n echo ' if (datalinesuffix != null) { if (datalinesuffix.indexOf(\"{latitude}\") != -1) { dlsa=datalinesuffix.split(\",\"); if (dlsa[0].indexOf(\"-\") == -1) { datalinesuffix=datalinesuffix.replace(\"{latitude}\",encodeURIComponent(\"+\" + dlsa[0]));  } else { datalinesuffix=datalinesuffix.replace(\"{latitude}\",encodeURIComponent(dlsa[0]));  }  } if (datalinesuffix.indexOf(\"{longitude}\") != -1) { dlsa=datalinesuffix.split(\",\"); if (dlsa.length &gt; 1) { if (dlsa[1].indexOf(\"-\") == -1) { datalinesuffix=datalinesuffix.replace(\"{longitude}\",encodeURIComponent(\"+\" + dlsa[1]));  } else { datalinesuffix=datalinesuffix.replace(\"{longitude}\",encodeURIComponent(dlsa[1])); }  }  }    } ' . \"\\n\";<br \/>\n<\/b><br \/>\n<\/code><\/p>\n<p> &#8230; as again we are making use of $_GET[] parameters coming into the PHP at the server side.<\/p>\n<p>The bigger picture plan for how this helps something else we are trying will become apparent over time &#8230; in the fullness of time &#8230; at the appropriate juncture of juxtapositions.<\/p>\n<p>Let&#8217;s see some PHP code in <a target=_blank title='click picture' href='http:\/\/www.rjmprogramming.com.au\/PHP\/Map\/map.php'>live action<\/a> for this tutorial where you define your map characteristics and data.<\/p>\n<p>Link to Google Chart Tools &#8220;spiritual home&#8221; &#8230; <a target=_blank href='https:\/\/developers.google.com\/chart\/interactive\/docs\/index' title='Google Chart Tools provide a perfect way to visualize data on your website. From simple line charts to complex hierarchical tree maps, the chart galley provides a large number of well-designed chart types. Populating your data is easy using the provided client- and server-side tools.\n'>via Google<\/a>.<br \/>\nLink to Google Chart Tools Map information &#8230; <a target=_blank href='https:\/\/developers.google.com\/chart\/interactive\/docs\/gallery\/map' title='Google Map (chart)'>via Google<\/a>.<br \/>\nLink to Google Chart tooltips information &#8230; <a target=_blank href='https:\/\/developers.google.com\/chart\/interactive\/docs\/customizing_tooltip_content' title='Google Map (chart) tooltips information'>via Google<\/a>.<\/p>\n<p>Link to some downloadable PHP programming code &#8230; rename to <a target=_blank href='http:\/\/www.rjmprogramming.com.au\/PHP\/Map\/map.php---GETME' title='Download me'>map.php<\/a> which changed from yesterday as per <a target=_blank href='http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/Map\/map.php---GETME' title='map.php'>this link<\/a>.<\/p>\n<hr>\n<p id='pjhgcmtt'>Previous relevant <a target=_blank title='PHP\/Javascript\/HTML Google Chart Map Tooltips Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/phpjavascripthtml-google-chart-map-tooltips-tutorial\/'>PHP\/Javascript\/HTML Google Chart Map Tooltips Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Map\/map.php\"><img decoding=\"async\" style=\"float:left; border: 15px solid pink;\" alt=\"PHP\/Javascript\/HTML Google Chart Map Tooltips Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Map\/map_tooltips.jpg\" title=\"PHP\/Javascript\/HTML Google Chart Map Tooltips Tutorial\"  \/><\/a><p class=\"wp-caption-text\">PHP\/Javascript\/HTML Google Chart Map Tooltips Tutorial<\/p><\/div>\n<p>Here is a tutorial that is revisiting Google Graphs API, or Google Chart Tools, and its Map functionality, which we first talked about with <a target=_blank title='PHP\/Javascript\/HTML Google Chart Map Tutorial' href='#pjhgmt'>PHP\/Javascript\/HTML Google Chart Map Tutorial<\/a> as shown below.  Please <a target=_blank title='Google Charts mission statement' href='https:\/\/developers.google.com\/chart\/interactive\/docs\/'>read<\/a> &#8230;<\/p>\n<blockquote><p>Google Chart Tools provide a perfect way to visualize data on your website. From simple line charts to complex hierarchical tree maps, the chart galley provides a large number of well-designed chart types. Populating your data is easy using the provided client- and server-side tools.<\/p><\/blockquote>\n<p>Why are we revisiting?  Well, we are interested in the interactive side to this wonderful product.  We are going to start with a look into <a target=_blank title='Tooltips information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/Tooltip'>&#8220;tooltips&#8221;<\/a>.  Tooltips are those optional informational features of some webpages that happen when hovering over an HTML element, principally through the filling out of an HTML element&#8217;s <a target=_blank title='HTML global attribute of title information from w3schools' href='http:\/\/www.w3schools.com\/tags\/att_global_title.asp'>title<\/a> global attribute..  Google Charts functionality amounts to the use of Javascript, and, these days, <a target=_blank title='SVG information from w3schools' href='http:\/\/www.w3schools.com\/svg\/'>SVG<\/a> HTML elements, so &#8220;tooltips&#8221; are very relevant to the &#8220;user experience&#8221; when using Google Charts.  With the Map Chart, the latitude, laongitude set is combined with a title, which can be the default &#8220;tooltip&#8221; shown, as this is all fine for many usages, but we want to extend it so that that title doesn&#8217;t have to be the tooltip.<\/p>\n<p>The integration of this added functionality into the Google Chart Map Chart involves adding an extra &#8220;string&#8221; column to the data table as per the <b>bold<\/b> bits of the new Javascript (via PHP) snippet &#8230;<\/p>\n<p><code><br \/>\n<b><br \/>\n if (isset($_GET['value']) && (isset($_GET['tooltip']) || strpos($GETdata, \"'\") !== false)) {<br \/>\n  echo \"   var data = new google.visualization.DataTable(); \/\" . \"\/\" . $GETlabel . $GETvalue . \" \\n\";<br \/>\n  echo \"   data.addColumn('number', '\" . str_replace(\"'\",\"\",str_replace(\",\",\"\",str_replace(\"['\",\"\",$GETlabel))) . \"');  \\n\";<br \/>\n  echo \"   data.addColumn('number', \" . str_replace(\",\", \"); data.addColumn({'type': 'string', 'role': 'tooltip', 'p': {'html': true}}); data.addColumn('string', \", str_replace(\"]\",\"\",$GETvalue)) . \");  \\n\";<br \/>\n  echo \"   data.addRows([ \\n\";<br \/>\n  echo str_replace(\"''\" . \"''\", \"''\", str_replace(\"~\", \"'\", substr($GETdata,1)));<br \/>\n  echo \"   ]); \\n\";<br \/>\n } else {<br \/>\n <\/b><br \/>\n      echo ' var data = google.visualization.arrayToDataTable([ ' . \"\\n\";<br \/>\n      echo \" \" . $GETlabel . $GETvalue . \" \\n\";<br \/>\n      echo str_replace(\"''\" . \"''\", \"''\", str_replace(\"~\", \"'\", $GETdata));<br \/>\n      echo \"        ]);\\n\";<br \/>\n<b> }<\/b><br \/>\n<\/code><\/p>\n<p> &#8230; making use of $_GET[] parameters coming into the PHP at the server side &#8230; you&#8217;ll find that Javascript loves to work with PHP as one of those <a target=_blank title='Fred and Ginger' href='http:\/\/www.youtube.com\/watch?v=MsS7B8nyw5Y'>Fred and Ginger<\/a> relationships of the programming world &#8230; you&#8217;ll be happier writing Javascript from your PHP too &#8230; try it and you&#8217;ll see the advantages time and again and again and again &#8230; did we leave out one? &#8230; <font size=0>and again<\/font>.<\/p>\n<p>The bigger picture plan for how this helps something else we are trying will hopefully become apparent over time.<\/p>\n<p>Let&#8217;s see some PHP code in <a target=_blank title='click picture' href='http:\/\/www.rjmprogramming.com.au\/PHP\/Map\/map.php'>live action<\/a> for this tutorial where you define your map characteristics and data.<\/p>\n<p>Link to Google Chart Tools &#8220;spiritual home&#8221; &#8230; <a target=_blank href='https:\/\/developers.google.com\/chart\/interactive\/docs\/index' title='Google Chart Tools provide a perfect way to visualize data on your website. From simple line charts to complex hierarchical tree maps, the chart galley provides a large number of well-designed chart types. Populating your data is easy using the provided client- and server-side tools.\n'>via Google<\/a>.<br \/>\nLink to Google Chart Tools Map information &#8230; <a target=_blank href='https:\/\/developers.google.com\/chart\/interactive\/docs\/gallery\/map' title='Google Map (chart)'>via Google<\/a>.<br \/>\nLink to Google Chart tooltips information &#8230; <a target=_blank href='https:\/\/developers.google.com\/chart\/interactive\/docs\/customizing_tooltip_content' title='Google Map (chart) tooltips information'>via Google<\/a>.<\/p>\n<p>Link to some downloadable PHP programming code &#8230; rename to <a target=_blank href='http:\/\/www.rjmprogramming.com.au\/PHP\/Map\/map.php--GETME' title='Download me'>map.php<\/a> which changed from the days of <a target=_blank href='https:\/\/www.rjmprogramming.com.au\/ITblog\/google-charts-emailing-primer-tutorial\/' title='Google Charts Emailing Primer Tutorial'>Google Charts Emailing Primer Tutorial<\/a> as per <a target=_blank href='http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/Map\/map.php--GETME' title='map.php'>this link<\/a>.<\/p>\n<hr>\n<p id='pjhgmt'>Previous relevant <a target=_blank title='PHP\/Javascript\/HTML Google Chart Map Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/phpjavascripthtml-google-chart-map-tutorial'>PHP\/Javascript\/HTML Google Chart Map Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Map\/map.php\"><img decoding=\"async\" style=\"float:left; border: 15px solid pink;\" alt=\"PHP\/Javascript\/HTML Google Chart Map Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Map\/GoogleChart_Map.jpg\" title=\"PHP\/Javascript\/HTML Google Chart Map Tutorial\"  \/><\/a><p class=\"wp-caption-text\">PHP\/Javascript\/HTML Google Chart Map Tutorial<\/p><\/div>\n<p>Here is a tutorial that introduces you to Google Graphs API, or Google Chart Tools, and its Map functionality.<\/p>\n<blockquote><p>Google Chart Tools provide a perfect way to visualize data on your website. From simple line charts to complex hierarchical tree maps, the chart galley provides a large number of well-designed chart types. Populating your data is easy using the provided client- and server-side tools.<\/p><\/blockquote>\n<p>Let&#8217;s see some  <a target=_blank title='click picture' href='http:\/\/www.rjmprogramming.com.au\/PHP\/Map\/map.php'>PHP<\/a> code in live action for this tutorial where you define your map characteristics and data.<\/p>\n<p>Link to Google Chart Tools &#8220;spiritual home&#8221; &#8230; <a target=_blank href='https:\/\/developers.google.com\/chart\/interactive\/docs\/index' title='Google Chart Tools provide a perfect way to visualize data on your website. From simple line charts to complex hierarchical tree maps, the chart galley provides a large number of well-designed chart types. Populating your data is easy using the provided client- and server-side tools.\n'>via Google<\/a>.<br \/>\nLink to Google Chart Tools Map information &#8230; <a target=_blank href='https:\/\/developers.google.com\/chart\/interactive\/docs\/gallery\/map' title='Google Map (chart)'>via Google<\/a>.<\/p>\n<p>Link to some downloadable PHP programming code &#8230; rename to <a target=_blank href='http:\/\/www.rjmprogramming.com.au\/PHP\/Map\/map.php_GETME' title='Download me'>map.php<\/a>.\n<\/p>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d4832' onclick='var dv=document.getElementById(\"d4832\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"http:\/\/www.rjmprogramming.com.au\/wordpress\/?s=Google+Chart#content\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d4832' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d15782' onclick='var dv=document.getElementById(\"d15782\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/?tag=svg\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d15782' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d15807' onclick='var dv=document.getElementById(\"d15807\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/?tag=map\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d15807' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d15807' onclick='var dv=document.getElementById(\"d15807\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/?tag=geographicals\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d15807' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Today we examine some of the methodology behind a project idea. Projects need &#8230; an idea &#8230; ours came from listening to the radio and hearing about Lighthouses, and how the technologies had changed what they look like and how &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/php-lighthouses-in-australia-primer-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,31,33,37],"tags":[1606,429,481,513,518,527,1608,576,587,652,1610,745,830,861,871,932,970,997,999,1226,1609,1319,1611,1612,1431],"class_list":["post-15819","post","type-post","status-publish","format-standard","hentry","category-elearning","category-projects","category-software","category-tutorials","tag-decodeuricomponent","tag-file_get_contents","tag-geographicals","tag-google","tag-google-chart","tag-google-maps","tag-hover","tag-html","tag-iframe","tag-javascript","tag-lighthouse","tag-map","tag-navigation","tag-onclick","tag-onmouseover","tag-php","tag-post","tag-programming","tag-project","tag-svg","tag-tooltips","tag-tutorial","tag-urldecode","tag-urlencide","tag-wikipedia"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/15819"}],"collection":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/comments?post=15819"}],"version-history":[{"count":15,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/15819\/revisions"}],"predecessor-version":[{"id":25618,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/15819\/revisions\/25618"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=15819"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=15819"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=15819"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}