- Got page generation timing working for GD map.
- Fixed incorrect map generation timing in GD map.
- Changed map sizes to be 1024 pixels wide.
- Turned Google map XML generator into a CGI.
- Cleaned up page generation timing in Google map.
- Removed obsolete XML data file.
1 parent 3ec725f commit 762207f926dfe3919a5ad5bdc64ea59d150d1a85
nstanger authored on 12 May 2006
Showing 7 changed files
View
96
Repositories/Maps/gd_map.js
/******************************************************************************
* Code adapted from Rasmus' 30 second AJAX Tutorial at:
* http://rajshekhar.net/blog/archives/85-Rasmus-30-second-AJAX-Tutorial.html
******************************************************************************/
// Grab page initialisation time.
var startTime = new Date();
 
/******************************************************************************
* Create XMLHttpRequest object. This happens once when the page
* is loaded.
*/
function createRequestObject()
function imageLoaded()
{
var ro;
var browser = navigator.appName;
// In typical fashion, Microsoft does things differently.
if (browser == "Microsoft Internet Explorer")
{
ro = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
ro = new XMLHttpRequest();
}
return ro;
var endTime = new Date();
document.getElementById( "timer" ).innerHTML = 'Page generated in ' + ( endTime - startTime ) + ' ms.';
}
 
// Global XMLHttpRequest object.
var http = createRequestObject();
/******************************************************************************
* Send a request to the back end application (written in PHP here, but
* could be ASP, Java servlets, etc.). To use this, attach it to an (X)HTML
* element either as a direct link, e.g.:
*
* <a href="javascript:sendRequest('foo', 'on')">[foo]</a>
*
* or via an onclick event, e.g.:
*
* <img src="foo.jpg" onclick="javascript:sendRequest('foo', 'off')" />
*
* If you need different handlers for different things, just create them as
* separate PHP files on the back end, and dispatch appropriately from here.
* For example, if you want a separate handler for database operations, you
* could add another function called "sendDBRequest", or something similar.
*/
function load()
{
// Somewhere to write the timing information to.
var timer = document.getElementById( "timer" );
timer.innerHTML = "Loading...";
// Grab start time.
var startTime = new Date();
// Open the request.
http.open('GET', 'coordinates.pl?width=900&height=457', true);
// Set callback function.
http.onreadystatechange =
function()
{
if(http.readyState == 4)
{
if (http.status == 200) // Did it work?
{
// Grab the response content.
var response = http.responseText;
document.getElementById( "timer" ).innerHTML = '';
}
}
// Grab finishing time. We have to do this here rather than in
// the main part of the load() function because the map data
// are loaded asynchronously.
var endTime = new Date();
timer.innerHTML = 'Generated in ' + ( endTime - startTime ) + ' ms.';
};
// Send the request.
http.send(null);
}
View
14
Repositories/Maps/gd_map.php
<title>Repository hit visualisation using GD</title>
<meta name="generator" content="BBEdit 8.2" />
<script type="text/javascript" src="gd_map.js"></script>
</head>
<body onload="load()">
<body>
 
<h1>Repository hit visualisation using GD</h1>
 
<p>Stats current as of early afternoon 8 May 2006. You can also view the <a href="coordinates.pl?width=3599&height=1826"><strong>REALLY BIG</strong> version</a>.</p>
<p>Stats current as of early afternoon 8 May 2006. You can also view the <a href="coordinates.pl?width=3599&amp;height=1826"><strong>REALLY BIG</strong> version</a>.</p>
 
<div id="timer"></div>
 
<div id="map" style="width:900px; height:457px"></div>
 
<!--
<p><img src="coordinates.pl?width=900&height=457" width="900" height="457" alt="Small version loading --- please wait..." /></p>
-->
<p><img id="map" src="gd_map.pl?width=1024&amp;height=520" onLoad="imageLoaded()" width="1024" height="520" alt="Small version loading --- please wait..." /></p>
 
</body>
</html>
View
11
Repositories/Maps/gd_map.pl
use Geo::Proj4;
 
 
my ($start_sec, $start_micro) = gettimeofday;
my ($start_time) = ( $start_sec * 1000 ) + round( $start_micro / 1000 );
 
my ($page);
 
my ($dsn) = "DBI:mysql:database=eprintstats;host=localhost";
my ($y_offset) = 8615499.05;
my ($max_x) = $x_offset * 2;
my ($max_y) = $y_offset * 2;
my (%cities);
my ($num_IPs) = -1;
my ($num_IPs) = 100;
my ($num_hits) = 0;
my ($ip, $count, $location);
my ($city, $lat, $long, $x, $y);
 
$mapimage->string( gdSmallFont, 3, 15, "$types{'abstract'} abstracts", $blue );
$mapimage->string( gdSmallFont, 3, 27, 'from ' . scalar( keys %cities ) . ' cities', $black );
$mapimage->string( gdSmallFont, 3, 39, "($num_rows IP addresses)", $black );
 
my ($finish_sec, $finish_micro) = gettimeofday();
$mapimage->string( gdSmallFont, 3, $height - 15, 'Generated in ' . round( ( $finish_micro - $start_micro ) / 1000 ) . ' ms', $black );
my ( $finish_sec, $finish_micro ) = gettimeofday();
my ($finish_time) = ( $finish_sec * 1000 ) + round( $finish_micro / 1000 );
$mapimage->string( gdSmallFont, 3, $height - 15, 'Generated in ' . ( $finish_time - $start_time ) . ' ms', $black );
 
binmode(STDOUT);
binmode( STDOUT );
 
print $mapimage->jpeg();
 
 
View
208
Repositories/Maps/google_data.xml 100755 → 0
<markers>
<marker lat="50.9" lng="-1.4" city="Southampton" num="591" />
<marker lat="47.6801" lng="-122.1206" city="Redmond" num="1135" />
<marker lat="37.4192" lng="-122.0574" city="Mountain View" num="2196" />
<marker lat="38.9348" lng="-77.2672" city="Vienna" num="200" />
<marker lat="52.2" lng="0.1167" city="Cambridge" num="177" />
<marker lat="37.4249" lng="-122.0074" city="Sunnyvale" num="910" />
<marker lat="1.2931" lng="103.8558" city="Singapore" num="83" />
<marker lat="-27" lng="133" city="Unknown" num="381" />
<marker lat="-43.5333" lng="172.6332" city="Christchurch" num="45" />
<marker lat="41.3833" lng="2.1833" city="Barcelona" num="35" />
<marker lat="51.5" lng="-0.1167" city="London" num="40" />
<marker lat="33.8719" lng="35.5097" city="Beirut" num="24" />
<marker lat="39.0335" lng="-77.4838" city="Ashburn" num="19" />
<marker lat="-45.8667" lng="170.5" city="Dunedin" num="46" />
<marker lat="40.2787" lng="-74.3683" city="Englishtown" num="13" />
<marker lat="41.8675" lng="-87.6744" city="Chicago" num="12" />
<marker lat="39.9289" lng="116.3883" city="Beijing" num="71" />
<marker lat="-36.8667" lng="174.7667" city="Auckland" num="140" />
<marker lat="-40.35" lng="175.6167" city="Palmerston North" num="8" />
<marker lat="4.6" lng="-74.0833" city="Bogotá" num="8" />
<marker lat="-7.0114" lng="110.4111" city="Semarang" num="8" />
<marker lat="49.1333" lng="-123.1833" city="Steveston" num="7" />
<marker lat="42.0586" lng="-87.6845" city="Evanston" num="7" />
<marker lat="-34.9333" lng="138.6" city="Adelaide" num="9" />
<marker lat="42.4897" lng="-71.1595" city="Woburn" num="7" />
<marker lat="-37.7833" lng="175.2833" city="Hamilton" num="8" />
<marker lat="60.45" lng="22.2833" city="Turku" num="6" />
<marker lat="54.6833" lng="25.3167" city="Vilnius" num="26" />
<marker lat="-41.3" lng="174.7833" city="Wellington" num="23" />
<marker lat="59.8944" lng="30.2642" city="Saint Petersburg" num="6" />
<marker lat="52.25" lng="21" city="Warszawa" num="6" />
<marker lat="59.3333" lng="18.05" city="Stockholm" num="13" />
<marker lat="18.975" lng="72.8258" city="Bombay" num="13" />
<marker lat="-26.2" lng="28.0833" city="Johannesburg" num="9" />
<marker lat="3.1667" lng="101.7" city="Kuala Lumpur" num="8" />
<marker lat="-37.8167" lng="144.9667" city="Melbourne" num="5" />
<marker lat="-33.9167" lng="18.4167" city="Cape Town" num="9" />
<marker lat="43.6333" lng="-79.4667" city="Swansea" num="7" />
<marker lat="-6.1744" lng="106.8294" city="Jakarta" num="7" />
<marker lat="-46.4" lng="168.35" city="Invercargill" num="5" />
<marker lat="47.3667" lng="8.55" city="Zürich" num="5" />
<marker lat="-17.3667" lng="145.6" city="Hillcrest" num="5" />
<marker lat="-24.6464" lng="25.9119" city="Gaborone" num="5" />
<marker lat="-31.9333" lng="115.8333" city="Perth" num="7" />
<marker lat="57.7167" lng="11.9667" city="Göteborg" num="5" />
<marker lat="29.875" lng="121.5419" city="Ningbo" num="8" />
<marker lat="57.1333" lng="-2.1" city="Aberdeen" num="7" />
<marker lat="52.2833" lng="-1.5833" city="Warwick" num="6" />
<marker lat="51.2167" lng="-0.5667" city="Guildford" num="4" />
<marker lat="34.0616" lng="-118.0818" city="Rosemead" num="4" />
<marker lat="52.6833" lng="-1.8167" city="Lichfield" num="4" />
<marker lat="21.0333" lng="105.85" city="Hanoi" num="4" />
<marker lat="22.3667" lng="114.1333" city="Chung Kwai Chung" num="7" />
<marker lat="22.2833" lng="114.15" city="Hong Kong" num="4" />
<marker lat="30.7372" lng="76.7872" city="Chandigarh" num="6" />
<marker lat="55.8333" lng="-4.25" city="Glasgow" num="4" />
<marker lat="42.9742" lng="-85.9311" city="Allendale" num="4" />
<marker lat="-6.2394" lng="106.9928" city="Bekasi" num="4" />
<marker lat="27.9744" lng="119.6308" city="Hexi" num="4" />
<marker lat="39.1422" lng="117.1767" city="Tianjin" num="4" />
<marker lat="52.0333" lng="-0.7" city="Milton Keynes" num="4" />
<marker lat="52.0333" lng="-0.4834" city="Ampthill" num="4" />
<marker lat="6.4531" lng="3.3958" city="Lagos" num="4" />
<marker lat="28.6" lng="77.2" city="New Delhi" num="11" />
<marker lat="-34.5875" lng="-58.6725" city="Buenos Aires" num="6" />
<marker lat="18.5333" lng="73.8667" city="Pune" num="4" />
<marker lat="-22.9" lng="-43.2333" city="Rio De Janeiro" num="7" />
<marker lat="-37.75" lng="145.0167" city="Preston" num="4" />
<marker lat="1.55" lng="110.3333" city="Kuching" num="4" />
<marker lat="40.8597" lng="-74.4026" city="Parsippany" num="4" />
<marker lat="48.2" lng="11.45" city="Allach" num="3" />
<marker lat="33.7866" lng="-118.2987" city="Los Angeles" num="3" />
<marker lat="37.5664" lng="126.9997" city="Seoul" num="3" />
<marker lat="46.8833" lng="0.0667" city="Saint-Clair" num="3" />
<marker lat="0.3156" lng="32.5656" city="Kampala" num="3" />
<marker lat="-27.5" lng="153.0167" city="Brisbane" num="3" />
<marker lat="35.6719" lng="51.4244" city="Tehran" num="7" />
<marker lat="48.6667" lng="2.3833" city="Viry-Châtillon" num="3" />
<marker lat="53.65" lng="-1.7833" city="Huddersfield" num="3" />
<marker lat="51.9167" lng="-0.2167" city="Stevenage" num="3" />
<marker lat="43.3167" lng="-79.8" city="Burlington" num="3" />
<marker lat="-32.8" lng="134.2167" city="Flinders" num="3" />
<marker lat="51.7667" lng="-0.3" city="Sandridge" num="3" />
<marker lat="42.6833" lng="23.3167" city="Sofia" num="3" />
<marker lat="31.95" lng="35.9333" city="Amman" num="3" />
<marker lat="-41.2833" lng="174.75" city="Northland" num="3" />
<marker lat="33.7964" lng="-84.0337" city="Snellville" num="3" />
<marker lat="33.8125" lng="-79.0643" city="Conway" num="3" />
<marker lat="44.0667" lng="144.25" city="Meiji" num="3" />
<marker lat="33.7516" lng="-84.3915" city="Atlanta" num="3" />
<marker lat="38.9925" lng="112.01" city="Hubei" num="3" />
<marker lat="-33.9" lng="18.6" city="Parow" num="5" />
<marker lat="28.4667" lng="77.0333" city="Gurgaon" num="3" />
<marker lat="36.8" lng="22.5" city="Sína" num="5" />
<marker lat="37.7645" lng="-122.4294" city="San Francisco" num="3" />
<marker lat="63.4167" lng="10.4167" city="Trondheim" num="3" />
<marker lat="51.6514" lng="-2.5156" city="Hill" num="3" />
<marker lat="46.8" lng="-71.25" city="Québec" num="5" />
<marker lat="13.0833" lng="80.2833" city="Madras" num="3" />
<marker lat="53.3331" lng="-6.2489" city="Dublin" num="7" />
<marker lat="42.228" lng="-83.7389" city="Ann Arbor" num="3" />
<marker lat="43.9957" lng="-73.1596" city="Middlebury" num="3" />
<marker lat="-32.3667" lng="115.8166" city="Karnup" num="3" />
<marker lat="50.8333" lng="-0.15" city="Brighton" num="5" />
<marker lat="51.75" lng="-1.25" city="Oxford" num="6" />
<marker lat="40.4249" lng="-86.9162" city="West Lafayette" num="3" />
<marker lat="-15.3833" lng="35.3333" city="Zomba" num="3" />
<marker lat="51.55" lng="-0.4834" city="Uxbridge" num="3" />
<marker lat="69.6667" lng="18.9667" city="Tromsø" num="3" />
<marker lat="53.8" lng="-1.5833" city="Leeds" num="5" />
<marker lat="10.5" lng="-66.9167" city="Caracas" num="3" />
<marker lat="22.5697" lng="88.3696" city="Kolkata" num="3" />
<marker lat="11" lng="76.9667" city="Coimbatore" num="3" />
<marker lat="52.2583" lng="-7.1119" city="Waterford" num="3" />
<marker lat="39.4667" lng="-0.3667" city="Valencia" num="3" />
<marker lat="40.2" lng="-8.4167" city="Coimbra" num="3" />
<marker lat="53.55" lng="-2.1167" city="Oldham" num="3" />
<marker lat="-35.2833" lng="149.2167" city="Canberra" num="3" />
<marker lat="0.3833" lng="9.45" city="Libreville" num="3" />
<marker lat="-45.875" lng="170.3472" city="Mosgiel" num="3" />
<marker lat="5.6" lng="101.0833" city="Kampong Lalang" num="5" />
<marker lat="42.2423" lng="-71.8099" city="Worcester" num="3" />
<marker lat="23.723" lng="90.4086" city="Dhaka" num="3" />
<marker lat="48.8667" lng="2.3333" city="Paris" num="3" />
<marker lat="38.8318" lng="-77.2888" city="Fairfax" num="3" />
<marker lat="50.0833" lng="14.4667" city="Praha" num="3" />
<marker lat="42.6" lng="-5.5667" city="León" num="2" />
<marker lat="37.3501" lng="-121.9854" city="Santa Clara" num="2" />
<marker lat="38.5525" lng="44.9478" city="Khoy" num="2" />
<marker lat="54.0667" lng="-2.8333" city="Lancaster" num="2" />
<marker lat="48.3" lng="4.0833" city="Troyes" num="2" />
<marker lat="60.1756" lng="24.9342" city="Helsinki" num="2" />
<marker lat="53.4167" lng="-3" city="Liverpool" num="2" />
<marker lat="-27.35" lng="153.0666" city="Boondall" num="4" />
<marker lat="51.6667" lng="-1.2833" city="Abingdon" num="2" />
<marker lat="54.9119" lng="-1.3833" city="Sunderland" num="2" />
<marker lat="42.3005" lng="-85.5902" city="Kalamazoo" num="4" />
<marker lat="39.7505" lng="-84.2687" city="Dayton" num="2" />
<marker lat="49.2" lng="16.6333" city="Brno" num="2" />
<marker lat="52.4167" lng="-4.0667" city="Aberystwyth" num="2" />
<marker lat="51.2167" lng="4.4167" city="Antwerpen" num="2" />
<marker lat="31.5497" lng="74.3436" city="Lahore" num="2" />
<marker lat="46.9167" lng="7.4667" city="Bern" num="2" />
<marker lat="34.0253" lng="-6.8361" city="Rabat" num="2" />
<marker lat="40.5332" lng="-105.0712" city="Fort Collins" num="2" />
<marker lat="56.95" lng="24.1" city="Riga" num="4" />
<marker lat="61.5833" lng="21.8667" city="Noormarkku" num="2" />
<marker lat="53.1667" lng="8.2" city="Oldenburg" num="2" />
<marker lat="43.6667" lng="-79.4168" city="Toronto" num="2" />
<marker lat="52.9667" lng="-1.1667" city="Nottingham" num="2" />
<marker lat="45.0724" lng="-93.1874" city="Saint Paul" num="2" />
<marker lat="51.55" lng="5.1167" city="Tilburg" num="2" />
<marker lat="49.25" lng="-122.95" city="Burnaby" num="2" />
<marker lat="30.2553" lng="120.1689" city="Hangzhou" num="2" />
<marker lat="40.7669" lng="29.9169" city="Kocaeli" num="2" />
<marker lat="53.55" lng="10" city="Hamburg" num="2" />
<marker lat="20.6667" lng="-103.3333" city="Guadalajara" num="2" />
<marker lat="34.9023" lng="-78.6756" city="Fayetteville" num="2" />
<marker lat="53.5" lng="-2.2167" city="Manchester" num="2" />
<marker lat="43.7" lng="7.25" city="Nice" num="2" />
<marker lat="41.9" lng="12.4832" city="Roma" num="2" />
<marker lat="29.7072" lng="-95.498" city="Houston" num="2" />
<marker lat="51.0833" lng="-114.0833" city="Calgary" num="2" />
<marker lat="5.3333" lng="103.1333" city="Kuala Terengganu" num="2" />
<marker lat="52.6333" lng="4.75" city="Alkmaar" num="2" />
<marker lat="43.8" lng="11.65" city="Villa" num="2" />
<marker lat="46.0553" lng="14.5144" city="Ljubljana" num="2" />
<marker lat="39.1436" lng="-84.4708" city="Cincinnati" num="2" />
<marker lat="25.2925" lng="113.5183" city="Shanxi" num="2" />
<marker lat="50.9833" lng="11.0333" city="Erfurt" num="2" />
<marker lat="43.0839" lng="-106.3976" city="Casper" num="2" />
<marker lat="47.5167" lng="7.65" city="Muttenz" num="2" />
<marker lat="13.75" lng="100.5167" city="Bangkok" num="4" />
<marker lat="52.1833" lng="4.45" city="Rijnsburg" num="2" />
<marker lat="48.9833" lng="2.45" city="Gonesse" num="2" />
<marker lat="51.5167" lng="-0.2167" city="Notting Hill" num="2" />
<marker lat="6.9319" lng="79.8478" city="Colombo" num="2" />
<marker lat="52.9333" lng="-1.5" city="Derby" num="2" />
<marker lat="54.9" lng="23.9" city="Kauno" num="2" />
<marker lat="41.3" lng="-7.75" city="Vila Real" num="2" />
<marker lat="22.2833" lng="114.15" city="Central District" num="2" />
<marker lat="45.1667" lng="5.7167" city="Grenoble" num="2" />
<marker lat="41.55" lng="-8.4333" city="Braga" num="2" />
<marker lat="40.3" lng="-3.7167" city="Getafe" num="2" />
<marker lat="44.8186" lng="20.4681" city="Beograd" num="2" />
<marker lat="55.6833" lng="-2.55" city="Gordon" num="2" />
<marker lat="52.4" lng="13.0667" city="Potsdam" num="2" />
<marker lat="40.4" lng="-3.6833" city="Madrid" num="4" />
<marker lat="38.8933" lng="-77.0146" city="Washington" num="4" />
<marker lat="-37.8833" lng="145.3" city="Fern Tree Gully" num="2" />
<marker lat="-28" lng="153.4333" city="Gold Coast" num="2" />
<marker lat="45.4167" lng="-75.7" city="Ottawa" num="2" />
<marker lat="52.35" lng="4.9167" city="Amsterdam" num="2" />
<marker lat="39.1535" lng="-77.0753" city="Olney" num="2" />
<marker lat="36.0525" lng="-79.1077" city="Chapel Hill" num="2" />
<marker lat="28.0631" lng="-82.4128" city="Tampa" num="2" />
<marker lat="39.9514" lng="-75.1582" city="Philadelphia" num="2" />
<marker lat="38.9638" lng="-84.3689" city="Newport" num="2" />
<marker lat="42.2061" lng="-83.6228" city="Ypsilanti" num="2" />
<marker lat="24.8598" lng="-168.0219" city="Honolulu" num="2" />
<marker lat="-33.8833" lng="151.2167" city="Sydney" num="2" />
<marker lat="51.3794" lng="-2.3656" city="Bath" num="2" />
<marker lat="52.5167" lng="13.4" city="Berlin" num="2" />
<marker lat="45.8" lng="16" city="Zagreb" num="2" />
<marker lat="-33.9" lng="18.6333" city="Bellville" num="2" />
</markers>
View
10
Repositories/Maps/google_map.js
// Grab page initialisation time.
var startTime = new Date();
 
function load()
{
// Somewhere to write the timing information to.
var timer = document.getElementById( "timer" );
timer.innerHTML = "Loading...";
// Grab start time.
var startTime = new Date();
if ( GBrowserIsCompatible() )
{
// Create new map.
// <markers abs="200" dl="100" ips="27">
// <marker city="Timbuktu" lat="37.441" long="-122.141" abs="10" dl="0" />
// <marker city="West Bromwich" lat="37.322" long="-121.213" abs="22" dl="49" />
// </markers>
GDownloadUrl( "google_map_data.xml",
GDownloadUrl( "google_map_generate_data.pl",
function( data, responseCode )
{
var xml = GXml.parse( data );
var markerlist = xml.documentElement.getElementsByTagName( "marker" );
' abstracts</span> from ' +
markerlist.length +
' cities (' +
xml.documentElement.getAttribute( "ips" ) +
' IP addresses), generated in ' +
' IP addresses), page generated in ' +
( endTime - startTime ) +
' ms.';
} );
}
View
Repositories/Maps/google_map.php
View
Repositories/Maps/google_map_generate_data.pl