<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>The blog of a developer</title>
<description>Personal weblog of WyriHaximus</description>
<link>http://wyrihaximus.net/blog/</link>
<language>en-us</language>
<generator>http://www.badaptive.com/</generator>

<item>
<title>WoW Screenshots Map disabled</title>
<description>&lt;p&gt;
The new style maps on the wow screenshot pages are there now for a while. People seem to like them alot as they startmoving them around and check out place in the world. For the moment they are disabled to correct a few issue&amp;#39;s. There are some problems I would like to fix before putting them back on. They can be very bandwidth demanding so I&amp;#39;ll be looking into using a mix of image type to have optimal bandwidth useage but keeping the quality up. Another thing that is going to be included are &lt;a href=&quot;/world-of-warcraft/_screenshots/tags-id-1118-n-continent--instance.html&quot;&gt;Instance&lt;/a&gt;  maps (thanks to &lt;a href=&quot;http://dan-gilbert.com/&quot;&gt;Dan Gilbert&lt;/a&gt; from &lt;a href=&quot;http://atlasmod.com/&quot;&gt;atlasmod.com&lt;/a&gt;). The third issue are the markers. Currently they are only on a handfull of zones like Nagrand. (The maps will only be removed on screenshot pages, but will be available on the &lt;a href=&quot;/world-of-warcraft/maps/&quot;&gt;map&lt;/a&gt;  page and the page pages since they are still usefull on those pages.) This upcoming change will also include (when available) 4 diget coords to improve acuracy.
&lt;/p&gt;
&lt;p&gt;
WyriHaximus &lt;br /&gt;
&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;This post (&lt;a href=&quot;http://wyrihaximus.net/blog/message-id-228-n-wow-screenshots-map-disabled.html&quot;&gt;WoW Screenshots Map disabled&lt;/a&gt;) has been posted on the &lt;a href=&quot;http://wyrihaximus.net/&quot;&gt;WyriHaximus.net&lt;/a&gt; &lt;a href=&quot;http://wyrihaximus.net/blog/&quot;&gt;Blog&lt;/a&gt; by WyriHaximus. Tagged with these tags:  &lt;span id=&quot;tags_blog_228_span&quot;&gt;&lt;span&gt;&lt;a class=&quot;tag_cload_lvl5&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-560-n-screenshots.html&quot; rel=&quot;tag&quot;&gt;screenshots (22)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl4_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-800-n-world-of-warcraft.html&quot; rel=&quot;tag&quot;&gt;World of Warcraft (21)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2867-n-maps.html&quot; rel=&quot;tag&quot;&gt;Maps (2)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_2&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-3519-n-happy.html&quot; rel=&quot;tag&quot;&gt;Happy (1)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_3&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-3520-n-atlas-mod.html&quot; rel=&quot;tag&quot;&gt;Atlas Mod (1)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_0&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-3521-n-coords.html&quot; rel=&quot;tag&quot;&gt;Coords (1)&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; </description>
<link>http://wyrihaximus.net/blog/message-id-228-n-wow-screenshots-map-disabled.html</link>
</item>
<item>
<title>Custom Google Map Tiles part 2/2: Slicing the tiles and creating the HTML</title>
<description>&lt;p&gt;Time to create a Custom Tiled Google Map from out previous created World of Warcraft map. We'll do 3 maps in this tutorial. Starting with an easy of GTASA (Grand Theft Auto Sanandreas), then we'll make it a bit harder and make a Guild Wars map. After that we'll make a World of Warcraft map out of 4 parts. Below are the images needed for each map. With the GTASA I'll take you by hand over each step so you can get familier with the steps and give a short explanation of what each option/handling does. With the Guild Wars map we'll make a bigger map and with the World of Warcraft map we make a map out of 4 images and use some extra techniques to speed things up.&lt;/p&gt;

&lt;p&gt;For this we need the following things:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;A decent amount of RAM (atleast 2GB should do the trick)&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://www.adobe.com/products/photoshop/photoshop/&quot;&gt;Photoshop&lt;/a&gt; (One with JavaScript support)&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://code.google.com/apis/maps/signup.html&quot;&gt;A Google Maps API key&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;An HTML editor (one wich you can edit the source with) and maybe a JS editor if your HTML editor can't handle it.&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://mapki.com/wiki/Automatic_Tile_Cutter#Updated_Script&quot;&gt;The tile cutter script&lt;/a&gt; from &lt;a href=&quot;http://mapki.com/&quot;&gt;mapki.com&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://www.hertogjan.nl/&quot;&gt;Beer&lt;/a&gt; (No download available working on that sorry.)&lt;/li&gt;
    &lt;li&gt;Popcorn or something else to eat&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And you'll need the following images:&lt;/p&gt;

&lt;h4&gt;Grand Theft Auto: San Andreas&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://servcontent.wyrihaximus.net/wyrihaximus.net/blog/customgooglemaptiles/gtasa_aerial_map.jpg&quot;&gt;&lt;img src=&quot;http://images.wyrihaximus.net/blog/customgooglemaptiles/gtasa_aerial_map_125.jpg&quot; style=&quot;border:0px;&quot; /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Guild Wars&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://servcontent.wyrihaximus.net/wyrihaximus.net/blog/customgooglemaptiles/guildwarsmap.jpg&quot;&gt;&lt;img src=&quot;http://images.wyrihaximus.net/blog/customgooglemaptiles/guildwarsmap_125.jpg&quot; style=&quot;border:0px;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;World of Warcraft&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://servcontent.wyrihaximus.net/wyrihaximus.net/blog/customgooglemaptiles/Full_Map_1x0_16384x16384.jpg&quot;&gt;&lt;img src=&quot;http://images.wyrihaximus.net/blog/customgooglemaptiles/Full_Map_1x0_16384x16384_125.jpg&quot; style=&quot;border:0px;&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://servcontent.wyrihaximus.net/wyrihaximus.net/blog/customgooglemaptiles/Full_Map_1x1_16384x16384.jpg&quot;&gt;&lt;img src=&quot;http://images.wyrihaximus.net/blog/customgooglemaptiles/Full_Map_1x1_16384x16384_125.jpg&quot; style=&quot;border:0px;&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://servcontent.wyrihaximus.net/wyrihaximus.net/blog/customgooglemaptiles/Full_Map_3x0_16384x16384.jpg&quot;&gt;&lt;img src=&quot;http://images.wyrihaximus.net/blog/customgooglemaptiles/Full_Map_3x0_16384x16384_125.jpg&quot; style=&quot;border:0px;&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;http://servcontent.wyrihaximus.net/wyrihaximus.net/blog/customgooglemaptiles/Full_Map_3x1_16384x16384.jpg&quot;&gt;&lt;img src=&quot;http://images.wyrihaximus.net/blog/customgooglemaptiles/Full_Map_3x1_16384x16384_125.jpg&quot; style=&quot;border:0px;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before we start take a few things in mind. This tutorial was written on a &lt;a href=&quot;http://www.intel.com/products/processor/core2quad/index.htm&quot;&gt;Quad Core (Q6600) Intel Proc&lt;/a&gt;, 2GB RAM, &lt;a href=&quot;http://en.wikipedia.org/wiki/Data_striping&quot;&gt;Striped&lt;/a&gt; 7500rpm SATA HDD running &lt;a href=&quot;http://www.microsoft.com/windows/products/windowsvista/default.aspx&quot;&gt;Vista Home Premium&lt;/a&gt;. Performance can be different for you depending on the box your using. So if I say a few minutes on my box it can very well but a few days, weeks heck maybe even months on your x486 ;). Also path used are my own. Make sure to keep an eye on that the ones you use are correct and make sure not to mix up :). The file paths used &lt;/p&gt;

&lt;h2&gt;GTA Sanandreas&lt;/h2&gt;

&lt;p&gt;As said we'll start easy, just follow my instructions and get used to the steps.&lt;/p&gt;

&lt;h3&gt;Configurating the script&lt;/h3&gt;

&lt;p&gt;We'll start with downloading the map image. And open the .js file. In the .js file look for this line.&lt;/p&gt;

&lt;code&gt;var FolderPath = &quot;C:/Users/test/&quot;; //&lt;-- path to where we will save our tiles&lt;/code&gt;

&lt;p&gt;Change it to the location where you want the tile slices to end up. In my case I aimed it at my localwebserver's wwwroot directory, and to a specific folder for the GTA Sanandreas slices.&lt;/p&gt;

&lt;code&gt;var FolderPath = &quot;C:/htdocs/gtasa/&quot;;  //&lt;-- path to where we will save our tiles&lt;/code&gt;

&lt;p&gt;Now find this lines. These lines controll the number of zoom level sliced.&lt;/p&gt;
&lt;code&gt;var HighestZoomLevel = 17; // Enter the highest zoom level we are creating tiles for (should be less than OrgZoom; technically the script should be able to handle values larger as well, but your image quality will suffer)&lt;br /&gt;
var LowestZoomLevel = 12; // Enter the last zoom level we want to create tiles for (must be &lt;= HighestZoomLevel for the script to do anything)&lt;/code&gt;

&lt;p&gt;And change it into.&lt;/p&gt;

&lt;code&gt;var HighestZoomLevel = 6; // Enter the highest zoom level we are creating tiles for (should be less than OrgZoom; technically the  script should be able to handle values larger as well, but your image quality will suffer)&lt;br /&gt;
var LowestZoomLevel = 1; // Enter the last zoom level we want to create tiles for (must be &lt;= HighestZoomLevel for the script to do anything)&lt;/code&gt;

&lt;p&gt;For GTASA We'll use fixed values to keep it easy. Later on I'll explain it in more detail and with the last one I'll give hints so you can figure it out ;).&lt;/p&gt;

&lt;p&gt;Next up are the lines that controll the file naming indirectly.&lt;/p&gt;

&lt;code&gt;var OrgX = 31551; // the Google Maps X value of the tile at the top left corner of your Photoshop document&lt;br /&gt;
var OrgY = 50899; // the Google Maps Y value of the tile at the top left corner of your Photoshop document&lt;br /&gt;
var OrgZoomLevel = 17; // the Google Maps zoom level of your Photoshop document (for best results, you will need to resize your Photoshop document to match a zoom level as closely as possible before running this script)&lt;/code&gt;

&lt;p&gt;Change it into.&lt;/p&gt;

&lt;code&gt;var OrgX = 1;   // the Google Maps X value of the tile at the top left corner of your Photoshop document&lt;br /&gt;
var OrgY = 1;   // the Google Maps Y value of the tile at the top left corner of your Photoshop document&lt;br /&gt;
var OrgZoomLevel = 6;   // the Google Maps zoom level of your Photoshop document (for best results, you will need to resize your  Photoshop document to match a zoom level as closely as possible before running this script)&lt;/code&gt;

&lt;p&gt;The reason why both OrgX and OrgY are 1 is to keep it simple. The OrgZoomLevel is the same as HighestZoomLevel since it's causing very tiny results on low zoom levels and end up with an ugly effect.&lt;/p&gt;

&lt;p&gt;Following are the lines that controll what image type to output.&lt;/p&gt;

&lt;code&gt;var saveJPEG = true;&lt;br /&gt;
var savePNG = false;&lt;br /&gt;
var saveGIF = false;&lt;/code&gt;

&lt;p&gt;Into.&lt;/p&gt;

&lt;code&gt;var saveJPEG = false;&lt;br /&gt;
var savePNG = true;&lt;br /&gt;
var saveGIF = false;&lt;/code&gt;

&lt;h3&gt;Slicing the tiles&lt;/h3&gt;

&lt;p&gt;This is the easiest step of all since you just sit and wait. Fire up Photoshop, and open the GTASA map image. Set foreground and background color to black (or white, or yellow if you like but I found black the best suiteble color for this). Now go to File -&gt; Scripts -&gt; Browse. Go to where ever you saved the tile cutter script and open it. No open up yer first beer and grab a bite. This will take a few minutes. You should see alot of screenings opening, resizing and closing and doing it all over again. Once the script is finished you'll see the full map image again. And if you check in &lt;b&gt;C:/htdocs/gtasa/&lt;/b&gt;, there should be a shit load of 256x256 images in there.&lt;/p&gt;

&lt;h3&gt;Putting together the HTML&lt;/h3&gt;

&lt;p&gt;We'll start with including the Google Maps API. (Make sure you replace [KEY] with your Google Maps API key.)&lt;/p&gt;

&lt;code&gt;&amp;lt;script src=&amp;quot;http://maps.google.com/maps?file=api&amp;amp;amp;v=2&amp;amp;amp;key=[KEY]&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;

&lt;p&gt;Next we'll create the div that will contain the map widget. We'll name it gtasa_map and size is 450 by 300.&lt;/p&gt;

&lt;code&gt;&amp;lt;div id=&amp;quot;gtasa_map&amp;quot; style=&amp;quot;width: 450px; height: 300px&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;

&lt;p&gt;We'll create a function that will be called when the loading of the page is finished. Within that function is a check if the used browser can run Google Maps. And after the function with hook it up to the onload event.&lt;/p&gt;

&lt;code&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
function on_load_maps()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;if (GBrowserIsCompatible())&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
window.onload = on_load_maps;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;/code&gt;

&lt;p&gt;All of the following code lines should be place within the if that checks the browsers compatibility. First we create a new GMap2 object hooked to the early created div.&lt;/p&gt;

&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gtasa_map = new GMap2(document.getElementById(&amp;quot;gtasa_map&amp;quot;));&lt;/code&gt;

&lt;p&gt;This adds the zoom and panning control.&lt;/p&gt;

&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gtasa_map.addControl(new GLargeMapControl());&lt;/code&gt;

&lt;p&gt;Prepare the copyright info.&lt;/p&gt;

&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gtasa_copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(-90,-180),new GLatLng(90,180)), 1, &amp;quot;(c) 2008 WyriHaximus.net&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gtasa_copyrightCollection = new GCopyrightCollection('Map Data:');&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gtasa_copyrightCollection.addCopyright(gtasa_copyright);&lt;/code&gt;

&lt;p&gt;This is the most importend bit. This will tell Google Maps what the URL of the tiles is.&lt;/p&gt;

&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gtasa_CustomGetTileUrl=function(a,b){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var f = &amp;quot;http://mt1.servcontent.wyrihaximus.net/gtasa/&amp;quot;+b+&amp;quot;_&amp;quot;+a.x+&amp;quot;_&amp;quot;+a.y+&amp;quot;.png&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return f;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/code&gt;

&lt;p&gt;Combine the copyright info and the custom tile code.&lt;/p&gt;

&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gtasa_tilelayers = [new GTileLayer(gtasa_copyrightCollection,1,6)];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gtasa_tilelayers[0].getTileUrl = gtasa_CustomGetTileUrl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gtasa_custommap = new GMapType(gtasa_tilelayers, new GMercatorProjection(7), &amp;quot;Old OS&amp;quot;);&lt;/code&gt;

&lt;p&gt;Set the center of the map so we have the map nice in the middle of our widget.&lt;/p&gt;

&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gtasa_map.setCenter(new GLatLng(73.92246884621463,-105.8203125, true), 1, gtasa_custommap);&lt;/code&gt;

&lt;p&gt;This applies the custom map to the widget.&lt;/p&gt;

&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gtasa_map.addMapType(gtasa_custommap);&lt;/code&gt;

&lt;p&gt;You should end up with this big of code:&lt;/p&gt;

&lt;code&gt;
&amp;lt;div id=&amp;quot;gtasa_map&amp;quot; style=&amp;quot;width: 450px; height: 300px&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script&lt;br /&gt; src=&amp;quot;http://maps.google.com/maps?file=api&amp;amp;amp;v=2&amp;amp;amp;key=[KEY]&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
function on_load_maps()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;if (GBrowserIsCompatible())&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gtasa_map = new GMap2(document.getElementById(&amp;quot;gtasa_map&amp;quot;));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gtasa_map.addControl(new GLargeMapControl());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gtasa_copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(-90,-180),new GLatLng(90,180)), 1, &amp;quot;(c) 2008 WyriHaximus.net&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gtasa_copyrightCollection = new GCopyrightCollection('Map Data:');&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gtasa_copyrightCollection.addCopyright(gtasa_copyright);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gtasa_CustomGetTileUrl=function(a,b){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var f = &amp;quot;http://mt1.servcontent.wyrihaximus.net/gtasa/&amp;quot;+b+&amp;quot;_&amp;quot;+a.x+&amp;quot;_&amp;quot;+a.y+&amp;quot;.png&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return f;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gtasa_tilelayers = [new GTileLayer(gtasa_copyrightCollection,1,6)];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gtasa_tilelayers[0].getTileUrl = gtasa_CustomGetTileUrl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gtasa_custommap = new GMapType(gtasa_tilelayers, new GMercatorProjection(7), &amp;quot;Old OS&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gtasa_map.setCenter(new GLatLng(73.92246884621463,-105.8203125, true), 1, gtasa_custommap);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gtasa_map.addMapType(gtasa_custommap);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
window.onload = on_load_maps;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;/code&gt;

&lt;h3&gt;The Result&lt;/h3&gt;

&lt;p&gt;Now we've got something cool, a fully working Google Map Mashup of the GTASA map. From here we can put markers on places, create permalinks to special places and more. But I'll cover that in another tutorial.&lt;/p&gt;

&lt;div id=&quot;gtasa_map&quot; style=&quot;width: 450px; height: 300px&quot;&gt;&lt;/div&gt;

&lt;h2&gt;Guild Wars&lt;/h2&gt;

&lt;p&gt;Lets step it up a bit, the following instructions are in essention the same but with a Guild Wars twist.&lt;/p&gt;

&lt;h3&gt;Configurating the script&lt;/h3&gt;

&lt;p&gt;Open the .js file we used last time. We are going to change a few things to prepare it for to Guild Wars map.&lt;/p&gt;

&lt;code&gt;var FolderPath = &quot;C:/htdocs/gtasa/&quot;;  //&lt;-- path to where we will save our tiles&lt;/code&gt;

&lt;p&gt;Change it to a map for the Guild Wars tiles, preferable like we did last time to keep everythings together.&lt;/p&gt;

&lt;code&gt;var FolderPath = &quot;C:/htdocs/gw/&quot;;  //&lt;-- path to where we will save our tiles&lt;/code&gt;

&lt;p&gt;Now find this lines. These lines controll the number of zoom level sliced.&lt;/p&gt;

&lt;code&gt;var HighestZoomLevel = 6; // Enter the highest zoom level we are creating tiles for (should be less than OrgZoom; technically the  script should be able to handle values larger as well, but your image quality will suffer)&lt;/code&gt;

&lt;p&gt;And change it into the below. This changes the HighestZoomLevel to something higher since this image is something over twice as big. To keep is simple we add 2 to the value in the GTASA example.&lt;/p&gt;

&lt;code&gt;var HighestZoomLevel = 8; // Enter the highest zoom level we are creating tiles for (should be less than OrgZoom; technically the  script should be able to handle values larger as well, but your image quality will suffer)&lt;/code&gt;

&lt;p&gt;Next up are the lines that controll the file naming indirectly. They add numbers to the tile name representing the X and Y values for each zoom level based on what you give here.&lt;/p&gt;

&lt;code&gt;var OrgZoomLevel = 6;   // the Google Maps zoom level of your Photoshop document (for best results, you will need to resize your  Photoshop document to match a zoom level as closely as possible before running this script)&lt;/code&gt;

&lt;p&gt;Change it into. Once again we set OrgZoomLevel to HighestZoomLevel to avoid funny effects.&lt;/p&gt;

&lt;code&gt;var OrgZoomLevel = 8;   // the Google Maps zoom level of your Photoshop document (for best results, you will need to resize your  Photoshop document to match a zoom level as closely as possible before running this script)&lt;/code&gt;

&lt;h3&gt;Slicing the tiles&lt;/h3&gt;

&lt;p&gt;This is the easiest step of all since you just sit and wait. Now open up yer seccond and third beer since this will take a while or go take a shower. When this is done you'll see alot of images in &lt;b&gt;C:/htdocs/gw/&lt;/b&gt;.&lt;/p&gt;

&lt;h3&gt;Putting together the HTML&lt;/h3&gt;

&lt;p&gt;Since we allready build this piece of code I'll describe what each changed does (beside the nameing ofcourse).&lt;/p&gt;

&lt;p&gt;We'll start with the changed code:&lt;/p&gt;

&lt;code&gt;
&amp;lt;div id=&amp;quot;gw_map&amp;quot; style=&amp;quot;width: 450px; height: 300px&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script&lt;br /&gt; src=&amp;quot;http://maps.google.com/maps?file=api&amp;amp;amp;v=2&amp;amp;amp;key=[KEY]&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
function on_load_maps()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;if (GBrowserIsCompatible())&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gw_map = new GMap2(document.getElementById(&amp;quot;gw_map&amp;quot;));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gw_map.addControl(new GLargeMapControl());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gw_copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(-90,-180),new GLatLng(90,180)), 1, &amp;quot;(c) 2008 WyriHaximus.net&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gw_copyrightCollection = new GCopyrightCollection('Map Data:');&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gw_copyrightCollection.addCopyright(gw_copyright);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gw_CustomGetTileUrl=function(a,b){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var f = &amp;quot;http://mt1.servcontent.wyrihaximus.net/gw/&amp;quot;+b+&amp;quot;_&amp;quot;+a.x+&amp;quot;_&amp;quot;+a.y+&amp;quot;.png&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return f;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gw_tilelayers = [new GTileLayer(gw_copyrightCollection,1,8)];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gw_tilelayers[0].getTileUrl = gw_CustomGetTileUrl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gw_custommap = new GMapType(gw_tilelayers, new GMercatorProjection(9), &amp;quot;Old OS&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gw_map.setCenter(new GLatLng(68.78414378041504,-99.140625, true), 1, gw_custommap);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gw_map.addMapType(gw_custommap);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
window.onload = on_load_maps;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;/code&gt;

&lt;p&gt;Since the number of zoom levels we only have to change 2 lines. We'll start with telling the Google Maps API that the zoom levels will range from 1 to 8 instead of fom 1 till 6.&lt;/p&gt;

&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gw_tilelayers = [new GTileLayer(gw_copyrightCollection,1,6)];&lt;/code&gt;

&lt;p&gt;Into:&lt;/p&gt;

&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gw_tilelayers = [new GTileLayer(gw_copyrightCollection,1,8)];&lt;/code&gt;

&lt;p&gt;And since the number of zoom levels (form 0 till the max you entered before, and in our case 8) to be exspected. Change it form 7 to 9 to match the Guild Wars map.&lt;/p&gt;

&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gw_custommap = new GMapType(gw_tilelayers, new GMercatorProjection(7), &amp;quot;Old OS&amp;quot;);&lt;/code&gt;

&lt;p&gt;Into:&lt;/p&gt;

&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var gw_custommap = new GMapType(gw_tilelayers, new GMercatorProjection(9), &amp;quot;Old OS&amp;quot;);&lt;/code&gt;

&lt;p&gt;And last but most importend, the new image slices location:&lt;/p&gt;

&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var f = &amp;quot;http://mt1.servcontent.wyrihaximus.net/gtasa/&amp;quot;+b+&amp;quot;_&amp;quot;+a.x+&amp;quot;_&amp;quot;+a.y+&amp;quot;.png&amp;quot;;&lt;/code&gt;

&lt;p&gt;Into:&lt;/p&gt;

&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var f = &amp;quot;http://mt1.servcontent.wyrihaximus.net/gw/&amp;quot;+b+&amp;quot;_&amp;quot;+a.x+&amp;quot;_&amp;quot;+a.y+&amp;quot;.png&amp;quot;;&lt;/code&gt;

&lt;h3&gt;The Result&lt;/h3&gt;

&lt;p&gt;Congratulations you've (with minor alterations) created a Google Maps Mashup Guild Wars Map. As you can see once you got the hang of it, it's simple :).&lt;/p&gt;

&lt;div id=&quot;gw_map&quot; style=&quot;width: 450px; height: 300px&quot;&gt;&lt;/div&gt;

&lt;h2&gt;World of Warcraft&lt;/h2&gt;

&lt;p&gt;Ok this is going to be fun, instead of 1 image we got 4 this time. And we'll also get a more improved tile script to speed things up. We'll start with setting up the script for the first image.&lt;/p&gt;

&lt;p&gt;Change:&lt;/p&gt;

&lt;code&gt;var FolderPath = &quot;C:/htdocs/gw/&quot;;  //&lt;-- path to where we will save our tiles&lt;/code&gt;

&lt;p&gt;Into:&lt;/p&gt;

&lt;code&gt;var FolderPath = &quot;C:/htdocs/wow/&quot;;  //&lt;-- path to where we will save our tiles&lt;/code&gt;

&lt;p&gt;Start Photoshop, open &lt;b&gt;Full_Map_1x0_16384x16384.jpg&lt;/b&gt; and fire up the script. Go do something untill it's done. When it's done close the current document (don't save) and open &lt;b&gt;Full_Map_1x0_16384x16384.jpg&lt;/b&gt;. Now we are going to change 1 setting of the script so we don't overwrite the tiles just created.&lt;/p&gt;

&lt;p&gt;Change:&lt;/p&gt;

&lt;code&gt;var OrgX = 1;   // the Google Maps X value of the tile at the top left corner of your Photoshop document&lt;/code&gt;

&lt;p&gt;Into:&lt;/p&gt;

&lt;code&gt;var OrgX = 65;   // the Google Maps X value of the tile at the top left corner of your Photoshop document&lt;/code&gt;

&lt;p&gt;Now we are going to add the next 2 images below the previous 2. Change the folowing things in the script.&lt;/p&gt;

&lt;p&gt;Change:&lt;/p&gt;

&lt;code&gt;var OrgX = 65;   // the Google Maps X value of the tile at the top left corner of your Photoshop document&lt;br /&gt;
var OrgY = 1;   // the Google Maps Y value of the tile at the top left corner of your Photoshop document&lt;/code&gt;

&lt;p&gt;Into:&lt;/p&gt;

&lt;code&gt;var OrgX = 1;   // the Google Maps X value of the tile at the top left corner of your Photoshop document&lt;br /&gt;
var OrgY = 65;   // the Google Maps Y value of the tile at the top left corner of your Photoshop document&lt;/code&gt;

&lt;p&gt;Close the current image and open &lt;b&gt;Full_Map_3x0_16384x16384.jpg&lt;/b&gt;, start the script and wait till it's done. After that change the script again:&lt;/p&gt;

&lt;code&gt;var OrgX = 1;   // the Google Maps X value of the tile at the top left corner of your Photoshop document&lt;/code&gt;

&lt;p&gt;Into:&lt;/p&gt;

&lt;code&gt;var OrgX = 65;   // the Google Maps X value of the tile at the top left corner of your Photoshop document&lt;/code&gt;

&lt;code&gt;var OrgX = 1;   // the Google Maps X value of the tile at the top left corner of your Photoshop document&lt;br /&gt;
var OrgY = 1;   // the Google Maps Y value of the tile at the top left corner of your Photoshop document&lt;/code&gt;

&lt;p&gt;Now close the current image and open &lt;b&gt;Full_Map_3x1_16384x16384.jpg&lt;/b&gt;, start the script and wait till it's done. When it's done you created all the tiles needed. To be honest this isn't the best method but on machines with low memory (2GB) it's the best and most simple way. The best way would be just 1 big image but that is out of reach in this cause, those images take up 6GB of RAM ;). Anyway lets move on to the next step and create the JavaScript.&lt;/p&gt;

&lt;h3&gt;Putting together the HTML&lt;/h3&gt;

&lt;p&gt;We'll start with the same scripts as the others (except the naming prefix).&lt;/p&gt;

&lt;code&gt;
&amp;lt;div id=&amp;quot;wow_map&amp;quot; style=&amp;quot;width: 450px; height: 300px&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script&lt;br /&gt; src=&amp;quot;http://maps.google.com/maps?file=api&amp;amp;amp;v=2&amp;amp;amp;key=[KEY]&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
function on_load_maps()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;if (GBrowserIsCompatible())&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var wow_map = new GMap2(document.getElementById(&amp;quot;wow_map&amp;quot;));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wow_map.addControl(new GLargeMapControl());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var wow_copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(-90,-180),new GLatLng(90,180)), 1, &amp;quot;(c) 2008 WyriHaximus.net&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var wow_copyrightCollection = new GCopyrightCollection('Map Data:');&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wow_copyrightCollection.addCopyright(wow_copyright);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wow_CustomGetTileUrl=function(a,b){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var f = &amp;quot;http://mt1.servcontent.wyrihaximus.net/wow/&amp;quot;+b+&amp;quot;_&amp;quot;+a.x+&amp;quot;_&amp;quot;+a.y+&amp;quot;.png&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return f;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var wow_tilelayers = [new GTileLayer(wow_copyrightCollection,1,8)];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wow_tilelayers[0].getTileUrl = wow_CustomGetTileUrl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var wow_custommap = new GMapType(wow_tilelayers, new GMercatorProjection(9), &amp;quot;Old OS&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wow_map.setCenter(new GLatLng(63.860035895395306,-80.15625, true), 1, wow_custommap);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wow_map.addMapType(wow_custommap);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
window.onload = on_load_maps;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;/code&gt;

&lt;p&gt;Now we are going to add a bit of code that spreads the image requests over multiple servers. This makes the map loading alot faster when it loads for the first time or your moving around. Most browsers have a limit of simultanious downloaded files (images/css/html etc etc) we'll by pass that by using multiple servers. First find the following 2 lines:&lt;/p&gt;

&lt;code&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;if (GBrowserIsCompatible())&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&lt;/code&gt;

&lt;p&gt;After that add this code (note that these are my servers you should replace them with your own!):&lt;/p&gt;

&lt;code&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var current_server = 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var number_of_servers = 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var myservers=new Array();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myservers[number_of_servers++]=&amp;quot;mt1.servcontent.wyrihaximus.net&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myservers[number_of_servers++]=&amp;quot;mt2.servcontent.wyrihaximus.net&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myservers[number_of_servers++]=&amp;quot;mt3.servcontent.wyrihaximus.net&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myservers[number_of_servers++]=&amp;quot;mt4.servcontent.wyrihaximus.net&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myservers[number_of_servers++]=&amp;quot;mt5.servcontent.wyrihaximus.net&amp;quot;;
&lt;/code&gt;

&lt;p&gt;Now we are going to alter the line that gives the Google Maps API the tile URL. The change will pick the next server in row every time the function is called. This will spread out the connections over different servers and speed up the loading of the map.&lt;/p&gt;

&lt;p&gt;Change:&lt;/p&gt;

&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var f = &amp;quot;http://mt1.servcontent.wyrihaximus.net/wow/&amp;quot;+b+&amp;quot;_&amp;quot;+a.x+&amp;quot;_&amp;quot;+a.y+&amp;quot;.png&amp;quot;;&lt;/code&gt;

&lt;p&gt;Into:&lt;/p&gt;

&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;current_server = (current_server+1) % number_of_servers;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var f = &amp;quot;http://&amp;quot; + myservers[current_server] + &amp;quot;/wow/&amp;quot;+b+&amp;quot;_&amp;quot;+a.x+&amp;quot;_&amp;quot;+a.y+&amp;quot;.png&amp;quot;;&lt;/code&gt;

&lt;p&gt;You should have this code now&lt;/p&gt;

&lt;code&gt;
&amp;lt;div id=&amp;quot;wow_map&amp;quot; style=&amp;quot;width: 450px; height: 300px&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script&lt;br /&gt; src=&amp;quot;http://maps.google.com/maps?file=api&amp;amp;amp;v=2&amp;amp;amp;key=[KEY]&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
function on_load_maps()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;if (GBrowserIsCompatible())&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var current_server = 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var number_of_servers = 0;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var myservers=new Array();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myservers[number_of_servers++]=&amp;quot;mt1.servcontent.wyrihaximus.net&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myservers[number_of_servers++]=&amp;quot;mt2.servcontent.wyrihaximus.net&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myservers[number_of_servers++]=&amp;quot;mt3.servcontent.wyrihaximus.net&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myservers[number_of_servers++]=&amp;quot;mt4.servcontent.wyrihaximus.net&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;myservers[number_of_servers++]=&amp;quot;mt5.servcontent.wyrihaximus.net&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var wow_map = new GMap2(document.getElementById(&amp;quot;wow_map&amp;quot;));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wow_map.addControl(new GLargeMapControl());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var wow_copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(-90,-180),new GLatLng(90,180)), 1, &amp;quot;(c) 2008 WyriHaximus.net&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var wow_copyrightCollection = new GCopyrightCollection('Map Data:');&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wow_copyrightCollection.addCopyright(wow_copyright);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wow_CustomGetTileUrl=function(a,b){&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;current_server = (current_server+1) % number_of_servers;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var f = &amp;quot;http://&amp;quot; + myservers[current_server] + &amp;quot;/wow/&amp;quot;+b+&amp;quot;_&amp;quot;+a.x+&amp;quot;_&amp;quot;+a.y+&amp;quot;.png&amp;quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return f;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var wow_tilelayers = [new GTileLayer(wow_copyrightCollection,1,8)];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wow_tilelayers[0].getTileUrl = wow_CustomGetTileUrl;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var wow_custommap = new GMapType(wow_tilelayers, new GMercatorProjection(9), &amp;quot;Old OS&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wow_map.setCenter(new GLatLng(63.860035895395306,-80.15625, true), 1, wow_custommap);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wow_map.addMapType(wow_custommap);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
window.onload = on_load_maps;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;/code&gt;

&lt;h3&gt;The Result&lt;/h3&gt;

&lt;div id=&quot;wow_map&quot; style=&quot;width: 450px; height: 300px&quot;&gt;&lt;/div&gt;

&lt;h2&gt;Resources&lt;/h2&gt;

&lt;p&gt;All the images, tiles and html for this tutorial are available with &lt;a href=&quot;http://junk.wyrihaximus.net/customgooglemaptilesresources.torrent&quot;&gt;this torrent&lt;/a&gt;. (It's 580MB so I'm not going to put that up for download on my site ;).) &lt;/p&gt;

&lt;h2&gt;Information Sources&lt;/h2&gt;

&lt;p&gt;I couldn't have wrote this tutorial without some sites, persons and the combination of them.&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;http://mapki.com/&quot;&gt;Mapki&lt;/a&gt; (Great information source)&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://code.google.com/&quot;&gt;Google Code&lt;/a&gt; (Standard manuel)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;WyriHaximus&lt;/p&gt;

&lt;script src=&quot;http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;key=ABQIAAAAeyEkFpiQRmAR9DudCWj-iRRD5PBXOz7_zwADS5paxKedzm0SEhSg0yfAdCwQxn77ABOt8U4uLNbXWg&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;

function on_load_maps()
{
    if (GBrowserIsCompatible())
    {
        var current_server = 0;
        var number_of_servers = 0;
        var myservers=new Array();
        myservers[number_of_servers++]=&quot;mt1.servcontent.wyrihaximus.net&quot;;
        myservers[number_of_servers++]=&quot;mt2.servcontent.wyrihaximus.net&quot;;
        myservers[number_of_servers++]=&quot;mt3.servcontent.wyrihaximus.net&quot;;
        myservers[number_of_servers++]=&quot;mt4.servcontent.wyrihaximus.net&quot;;
        myservers[number_of_servers++]=&quot;mt5.servcontent.wyrihaximus.net&quot;;
        // Grand Theft Auto: San Andreas
        var gtasa_map = new GMap2(document.getElementById(&quot;gtasa_map&quot;));
        gtasa_map.addControl(new GLargeMapControl());
        var gtasa_copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(-90,-180),new GLatLng(90,180)), 1, &quot;(c) 2008 WyriHaximus.net&quot;);
        var gtasa_copyrightCollection = new GCopyrightCollection('Map Data:');
        gtasa_copyrightCollection.addCopyright(gtasa_copyright);
        gtasa_CustomGetTileUrl=function(a,b){
            current_server = (current_server+1) % number_of_servers;
            var f = &quot;http://&quot; + myservers[current_server] + &quot;/gtasa/&quot;+b+&quot;_&quot;+a.x+&quot;_&quot;+a.y+&quot;.png&quot;;
            return f;
        }
        var gtasa_tilelayers = [new GTileLayer(gtasa_copyrightCollection,1,6)];
        gtasa_tilelayers[0].getTileUrl = gtasa_CustomGetTileUrl;
        var gtasa_custommap = new GMapType(gtasa_tilelayers, new GMercatorProjection(7), &quot;Old OS&quot;);
        gtasa_map.setCenter(new GLatLng(73.92246884621463,-105.8203125, true), 1, gtasa_custommap);
        gtasa_map.addMapType(gtasa_custommap);
        // Guild Wars
        var gw_map = new GMap2(document.getElementById(&quot;gw_map&quot;));
        gw_map.addControl(new GLargeMapControl());
        var gw_copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(-90,-180),new GLatLng(90,180)), 1, &quot;(c) 2008 WyriHaximus.net&quot;);
        var gw_copyrightCollection = new GCopyrightCollection('Map Data:');
        gw_copyrightCollection.addCopyright(gw_copyright);
        gw_CustomGetTileUrl=function(a,b){
            current_server = (current_server+1) % number_of_servers;
            var f = &quot;http://&quot; + myservers[current_server] + &quot;/gw/&quot;+b+&quot;_&quot;+a.x+&quot;_&quot;+a.y+&quot;.png&quot;;
            return f;
        }
        var gw_tilelayers = [new GTileLayer(gw_copyrightCollection,1,6)];
        gw_tilelayers[0].getTileUrl = gw_CustomGetTileUrl;
        var gw_custommap = new GMapType(gw_tilelayers, new GMercatorProjection(7), &quot;Old OS&quot;);
        gw_map.setCenter(new GLatLng(68.78414378041504,-99.140625, true), 1, gw_custommap);
        gw_map.addMapType(gw_custommap);
        // World of Warcraft
        var wow_map = new GMap2(document.getElementById(&quot;wow_map&quot;));
        wow_map.addControl(new GLargeMapControl());
        var wow_copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(-90,-180),new GLatLng(90,180)), 1, &quot; (c) 2008 WyriHaximus.net&quot;);
        var wow_copyrightCollection = new GCopyrightCollection('Map Data:');
        wow_copyrightCollection.addCopyright(wow_copyright);
        wow_CustomGetTileUrl=function(a,b){
            current_server = (current_server+1) % number_of_servers;
            var f = &quot;http://&quot; + myservers[current_server] + &quot;/wow/&quot;+b+&quot;_&quot;+a.x+&quot;_&quot;+a.y+&quot;.png&quot;;
            return f;
        }
        var wow_tilelayers = [new GTileLayer(wow_copyrightCollection,2,6)];
        wow_tilelayers[0].getTileUrl = wow_CustomGetTileUrl;
        var wow_custommap = new GMapType(wow_tilelayers, new GMercatorProjection(7), &quot;Old OS&quot;);
        wow_map.setCenter(new GLatLng(63.860035895395306,-80.15625, true), 2, wow_custommap);
        wow_map.addMapType(wow_custommap);
    }
}

window.onload = on_load_maps;

&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;This post (&lt;a href=&quot;http://wyrihaximus.net/blog/message-id-227-n-custom-google-map-tiles-part-2-2--slicing-the-tiles-and-creating-the-html.html&quot;&gt;Custom Google Map Tiles part 2/2: Slicing the tiles and creating the HTML&lt;/a&gt;) has been posted on the &lt;a href=&quot;http://wyrihaximus.net/&quot;&gt;WyriHaximus.net&lt;/a&gt; &lt;a href=&quot;http://wyrihaximus.net/blog/&quot;&gt;Blog&lt;/a&gt; by WyriHaximus. Tagged with these tags:  &lt;span id=&quot;tags_blog_227_span&quot;&gt;&lt;span&gt;&lt;a class=&quot;tag_cload_lvl2_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-557-n-google.html&quot; rel=&quot;tag&quot;&gt;Google (10)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl4_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-800-n-world-of-warcraft.html&quot; rel=&quot;tag&quot;&gt;World of Warcraft (21)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl2_2&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2331-n-google-maps.html&quot; rel=&quot;tag&quot;&gt;Google Maps (6)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2596-n-tutorial.html&quot; rel=&quot;tag&quot;&gt;Tutorial (2)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_2&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2598-n-photoshop.html&quot; rel=&quot;tag&quot;&gt;Photoshop (2)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_3&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2867-n-maps.html&quot; rel=&quot;tag&quot;&gt;Maps (2)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_0&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2968-n-guild-wars.html&quot; rel=&quot;tag&quot;&gt;Guild Wars (1)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2969-n-grand-theft-auto--san-andreas.html&quot; rel=&quot;tag&quot;&gt;Grand Theft Auto: San Andreas (1)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_2&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2970-n-tiles.html&quot; rel=&quot;tag&quot;&gt;Tiles (1)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_3&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2971-n-torrent.html&quot; rel=&quot;tag&quot;&gt;Torrent (1)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_0&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2972-n-custom-tiles.html&quot; rel=&quot;tag&quot;&gt;Custom Tiles (1)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-3049-n-onzin.html&quot; rel=&quot;tag&quot;&gt;onzin (1)&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; </description>
<link>http://wyrihaximus.net/blog/message-id-227-n-custom-google-map-tiles-part-2-2--slicing-the-tiles-and-creating-the-html.html</link>
</item>
<item>
<title>Water plus Home Server is a very bad combination</title>
<description>&lt;p&gt;
Sigh here we go again. Last night some water leaked from our aquarium on the floor. We pulled out everything on power when we noticed it. That plus probably the water killed my home server so for the next few days anything not cached on the site server (like screenshots images) are unavailable. A new server is allready arranged and should be up and running in a few days. I&amp;#39;ll keep you posted. 
&lt;/p&gt;
&lt;p&gt;
WyriHaximus 
&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;This post (&lt;a href=&quot;http://wyrihaximus.net/blog/message-id-226-n-water-plus-home-server-is-a-very-bad-combination.html&quot;&gt;Water plus Home Server is a very bad combination&lt;/a&gt;) has been posted on the &lt;a href=&quot;http://wyrihaximus.net/&quot;&gt;WyriHaximus.net&lt;/a&gt; &lt;a href=&quot;http://wyrihaximus.net/blog/&quot;&gt;Blog&lt;/a&gt; by WyriHaximus. Tagged with these tags:  &lt;span id=&quot;tags_blog_226_span&quot;&gt;&lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-218-n-water.html&quot; rel=&quot;tag&quot;&gt;Water (1)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_2&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2424-n-news.html&quot; rel=&quot;tag&quot;&gt;News (3)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_3&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2870-n-home-server.html&quot; rel=&quot;tag&quot;&gt;Home Server (1)&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; </description>
<link>http://wyrihaximus.net/blog/message-id-226-n-water-plus-home-server-is-a-very-bad-combination.html</link>
</item>
<item>
<title>Toplist MOD for phpBB3 Screens</title>
<description>&lt;p&gt;
Development is going great for Toplist MOD for phpBB3. Most of the work is converting the themes to the new system and into the new style. Some code fixes are included aswell and they will also be updated in the version for phpBB2. To keep is short here are 2 screenshots of the phpBB3 version:
&lt;/p&gt;
&lt;h3&gt;Main Page&lt;/h3&gt;
&lt;p&gt;
&lt;img src=&quot;http://images.wyrihaximus.net/blog/toplist_mod_forum3_main.jpg&quot; alt=&quot; &quot; border=&quot;0&quot; /&gt;
&lt;/p&gt;
&lt;h3&gt;Edit/Add Page&lt;/h3&gt;
&lt;p&gt;
&lt;img src=&quot;http://images.wyrihaximus.net/blog/toplist_mod_forum3_add_edit.jpg&quot; alt=&quot; &quot; border=&quot;0&quot; /&gt;
&lt;/p&gt;
&lt;p&gt;
WyriHaximus
&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;This post (&lt;a href=&quot;http://wyrihaximus.net/blog/message-id-225-n-toplist-mod-for-forum3-screens.html&quot;&gt;Toplist MOD for phpBB3 Screens&lt;/a&gt;) has been posted on the &lt;a href=&quot;http://wyrihaximus.net/&quot;&gt;WyriHaximus.net&lt;/a&gt; &lt;a href=&quot;http://wyrihaximus.net/blog/&quot;&gt;Blog&lt;/a&gt; by WyriHaximus. Tagged with these tags:  &lt;span id=&quot;tags_blog_225_span&quot;&gt;&lt;span&gt;&lt;a class=&quot;tag_cload_lvl3_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-571-n-toplist-mod.html&quot; rel=&quot;tag&quot;&gt;Toplist MOD (12)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl5&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-881-n-forum.html&quot; rel=&quot;tag&quot;&gt;phpBB (24)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl3_2&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-882-n-php.html&quot; rel=&quot;tag&quot;&gt;PHP (16)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2748-n-forum3.html&quot; rel=&quot;tag&quot;&gt;phpBB3 (1)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_2&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2749-n-developement.html&quot; rel=&quot;tag&quot;&gt;Developement (1)&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; </description>
<link>http://wyrihaximus.net/blog/message-id-225-n-toplist-mod-for-forum3-screens.html</link>
</item>
<item>
<title>Friday night Themed Links stops (for now)</title>
<description>&lt;p&gt;
Ok this is it (for now) for the Friday night Themed Links. I decided to do this only once a month on the 14th of the month. This is to create more usefull and bigger link lists. Also a reason why I choose to do this less frequently to create better quality posts.
&lt;/p&gt;
&lt;p&gt;
WyriHaximus&amp;nbsp;
&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;This post (&lt;a href=&quot;http://wyrihaximus.net/blog/message-id-224-n-friday-night-themed-links-stops--for-now-.html&quot;&gt;Friday night Themed Links stops (for now)&lt;/a&gt;) has been posted on the &lt;a href=&quot;http://wyrihaximus.net/&quot;&gt;WyriHaximus.net&lt;/a&gt; &lt;a href=&quot;http://wyrihaximus.net/blog/&quot;&gt;Blog&lt;/a&gt; by WyriHaximus. Tagged with these tags:  &lt;span id=&quot;tags_blog_224_span&quot;&gt;&lt;span&gt;&lt;a class=&quot;tag_cload_lvl3_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-979-n-friday-night-themed-links.html&quot; rel=&quot;tag&quot;&gt;Friday night Themed Links (15)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2424-n-news.html&quot; rel=&quot;tag&quot;&gt;News (3)&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; </description>
<link>http://wyrihaximus.net/blog/message-id-224-n-friday-night-themed-links-stops--for-now-.html</link>
</item>
<item>
<title>Friday night Themed Links week 13: 39 World of Warcraft Sites</title>
<description>&lt;p&gt;
Easy pick for me this week, here is my World of Warcraft site list.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Official Sites&lt;br /&gt;
&lt;a href=&quot;http://eu.wowarmory.com/&quot;&gt;Official site&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://blizzard.co.uk/&quot;&gt;Blizzard their site&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
General&lt;br /&gt;
&lt;a href=&quot;http://www.wowwiki.com/&quot;&gt;WoWWiki&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://justwow.net/&quot;&gt;JustWoW Screenshot upload&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.worldofwar.net/&quot;&gt;worldofwar.net&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.wowblues.com/&quot;&gt;wowblues.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.wowbash.com/&quot;&gt;wowbash.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://mapwow.com/&quot;&gt;mapwow.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.warcraftrealms.com/&quot;&gt;warcraftrealms.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.wowjutsu.com/&quot;&gt;wowjutsu.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://blogazeroth.com/&quot;&gt;blogazeroth.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.warcraftmovies.com/&quot;&gt;warcraftmovies.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://nogold.org/&quot;&gt;nogold.org&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://wow.warcry.com/&quot;&gt;wow @ warcry.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.tentonhammer.com/wow&quot;&gt;wow @ tentonhammer.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://blizzplanet.com/&quot;&gt;BlizzPlanet.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://wcradio.com/&quot;&gt;Warcraft Radio&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Databases&lt;br /&gt;
&lt;a href=&quot;http://thottbot.com/&quot;&gt;thottbot.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.wowdb.com/&quot;&gt;wowdb.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://wowdigger.com/&quot;&gt;wowdigger.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://wow.allakhazam.com/&quot;&gt;wow.allakhazam.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://wowhead.com/&quot;&gt;wowhead.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.wowitemcreator.com/&quot;&gt;wowitemcreator.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.lootables.com/&quot;&gt;lootables.com&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Addons&lt;br /&gt;
&lt;a href=&quot;http://www.wowinterface.com/&quot;&gt;wowinterface.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://wowace.com/&quot;&gt;wowace.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://wowui.worldofwar.net/&quot;&gt;wowui.worldofwar.net&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://wow.curse.com/&quot;&gt;wow.curse.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://warcraft-mods.com/&quot;&gt;warcraft-mods.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.cosmosui.org/&quot;&gt;cosmosui.org&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Comics (Some not directly wow realted)&lt;br /&gt;
&lt;a href=&quot;http://www.e-c-t.ca/dragontouched/&quot;&gt;Dragon Touched&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.beyonderful.com/chi/&quot;&gt;The Chronicles of The Flaming Ruby&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.lfgcomic.com/&quot;&gt;Looking For Group&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.thenoobcomic.com/&quot;&gt;The Noob&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://manic.comicgenesis.com/&quot;&gt;manic.comicgenesis.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.darklegacycomics.com/&quot;&gt;Dark Legacy&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Sigcreators&lt;br /&gt;
&lt;a href=&quot;http://www.dkpsigs.com/&quot;&gt;dkpsigs.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://wowden.com/tools/create_sig.php&quot;&gt;wowden.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.wowsigs.com/&quot;&gt;wowsigs.com&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
For a full list check &lt;a href=&quot;http://www.wowwiki.com/Fansites&quot;&gt;here&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
WyriHaximus&amp;nbsp;
&lt;/p&gt;
&lt;a href=&quot;http://www.wowwiki.com/Fansites&quot;&gt;&lt;/a&gt;
&lt;br /&gt;&lt;br /&gt;This post (&lt;a href=&quot;http://wyrihaximus.net/blog/message-id-223-n-friday-night-themed-links-week-13--39-world-of-warcraft-sites.html&quot;&gt;Friday night Themed Links week 13: 39 World of Warcraft Sites&lt;/a&gt;) has been posted on the &lt;a href=&quot;http://wyrihaximus.net/&quot;&gt;WyriHaximus.net&lt;/a&gt; &lt;a href=&quot;http://wyrihaximus.net/blog/&quot;&gt;Blog&lt;/a&gt; by WyriHaximus. Tagged with these tags:  &lt;span id=&quot;tags_blog_223_span&quot;&gt;&lt;span&gt;&lt;a class=&quot;tag_cload_lvl4_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-800-n-world-of-warcraft.html&quot; rel=&quot;tag&quot;&gt;World of Warcraft (21)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl3_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-979-n-friday-night-themed-links.html&quot; rel=&quot;tag&quot;&gt;Friday night Themed Links (15)&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; </description>
<link>http://wyrihaximus.net/blog/message-id-223-n-friday-night-themed-links-week-13--39-world-of-warcraft-sites.html</link>
</item>
<item>
<title>Monthly Website Tips: Social March</title>
<description>Ok this area of work is kinda new for me. Never dugg into the social
aspect of the web that much as a tech guy. But after some weeks of
trying I booked some interesting results with it.&lt;br /&gt;
&lt;h2&gt;Forums&lt;/h2&gt;When looking into the other things (comments, digg(-clones)), and in particular looking through my access_logs. I found out that alot
of people where checking out the sites I placed in my forum signature.
After setting up a bit more advanced logging on this (phenomena). I
found 2 different groups that where clicking. First the returning
visitors (more then 1 visit) made out about 10 - 20% of the incoming
hits from forums. The other 80 - 90% goes to the new visitor. So
putting links in your forum signature is certainly worth the little
effort.&lt;br /&gt;
&lt;h2&gt;Comments&lt;/h2&gt;Posting comments has the same effect as
a forum signature. When posting a constructive (or just a positive)
comment on a post/article/entry people tend to check out your site.
This will have a positive effect on the number of visitors your
getting.But again make sure to post something useful/constructive. &lt;br /&gt;
&lt;h2&gt;Sites&lt;br /&gt;
&lt;/h2&gt;
&lt;p&gt;
Below are a few sites that, when used properly, can increase your reach.
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;a href=&quot;http://blogsvine.com/&quot; title=&quot;Blogsvine&quot;&gt;&lt;img src=&quot;http://images.wyrihaximus.net/blog/blogsvine-logo.gif&quot; alt=&quot; &quot; border=&quot;0&quot; /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
Blogsvine was the first Digg clone that really gave me the idea could become something big (although you never know :P). Normally I would either ignore sites like this but for some reason (probably
cause it&amp;#39;s focused on bloggers) it interested me to join and submit
some of my posts. After doing so and submitting the first one (bare in
mind they where only open for 3 weeks then) and looking whathappened the vist vote came rather fast. Alot faster then expected. Happy with the fast progress I submitted 3 more posts and 2 of them ended up on their frontpage. This quickly resulted in a hand full of hits in over an hour. Something I had the BlogRush widget on my site for months but not getting one and now I had them within 60 minutes. 
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;a href=&quot;http://entrecard.com/&quot; title=&quot;Entrecard&quot;&gt;&lt;img src=&quot;http://images.wyrihaximus.net/blog/entrecard_logo_and_header.png&quot; alt=&quot; &quot; border=&quot;0&quot; height=&quot;108&quot; width=&quot;261&quot; /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
Entrecard is really new for me it&amp;#39;s. After ready &lt;a href=&quot;http://www.michaelaulia.com/blogs/entrecard-guide/entrecard-basics&quot; title=&quot;Entrecard Basics Guide&quot;&gt;Michael Aulia&amp;#39;s
post&lt;/a&gt; 
on
it I gave it a shot. No regrets this far but didn&amp;#39;t found anythinguse full
yet besides that other users will check out your site to drop their
card. Will get back on this some time later. But wanted to mention it
since it lookspromising. 
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
This time the article is shorter then normal but with these tips you can gain easily as much as with the previous articles. Next month I&amp;#39;ll get to something techie again since I&amp;#39;m alot better at it.&lt;br /&gt;
 
&lt;/p&gt;
&lt;p&gt;
WyriHaximus
&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;This post (&lt;a href=&quot;http://wyrihaximus.net/blog/message-id-222-n-monthly-website-tips--social-march.html&quot;&gt;Monthly Website Tips: Social March&lt;/a&gt;) has been posted on the &lt;a href=&quot;http://wyrihaximus.net/&quot;&gt;WyriHaximus.net&lt;/a&gt; &lt;a href=&quot;http://wyrihaximus.net/blog/&quot;&gt;Blog&lt;/a&gt; by WyriHaximus. Tagged with these tags:  &lt;span id=&quot;tags_blog_222_span&quot;&gt;&lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-983-n-monthly-website-tips.html&quot; rel=&quot;tag&quot;&gt;Monthly Website Tips (3)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_2&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2509-n-blogsvine.html&quot; rel=&quot;tag&quot;&gt;Blogsvine (2)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_3&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2602-n-entrecard.html&quot; rel=&quot;tag&quot;&gt;Entrecard (1)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_0&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2603-n-blogrush.html&quot; rel=&quot;tag&quot;&gt;Blogrush (1)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2604-n-comments.html&quot; rel=&quot;tag&quot;&gt;Comments (1)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_2&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2605-n-forums.html&quot; rel=&quot;tag&quot;&gt;Forums (1)&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; </description>
<link>http://wyrihaximus.net/blog/message-id-222-n-monthly-website-tips--social-march.html</link>
</item>
<item>
<title>Custom Google Map Tiles part 1/2: Creating the map</title>
<description>&lt;p&gt;
This part is optional and only covers creating a map image from the &lt;a href=&quot;http://wow-europe.com/&quot; title=&quot;World of Warcraft&quot;&gt;World of Warcraft&lt;/a&gt;  game files. If you are looking for a how to create a google map custom tiles from a map image please keep an eye on my blogs. I&amp;#39;ll post part 2/2 before the end of next week.
&lt;/p&gt;
&lt;p&gt;
In this tutorial we need the following tools/programs and games:
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.wow-europe.com/shared/wow-com/downloads/files/wow-trial/WoW-enGB-Installer-downloader.exe&quot;&gt;World of Warcraft&lt;/a&gt;  + &lt;a href=&quot;http://www.wow-europe.com/shared/downloads/protected/burningcrusade/pc/WoW-BurningCrusade-enGB-Installer-downloader.exe&quot;&gt;The Burning Crusade&lt;/a&gt;  game installed on your computer&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://tixu.scribe.free.fr/indexen.php#wowmapper&quot; title=&quot;wowmapper&quot;&gt;wowmapper&lt;/a&gt;  The tool to extract the minimap image from the game data&lt;/li&gt;
	&lt;li&gt;Photoshop or &lt;a href=&quot;http://www.gimp.org/&quot; title=&quot;The G.I.M.P.&quot;&gt;The G.I.M.P.&lt;/a&gt;  to put together the map &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
We start with installing World of Wacraft and The Burning Crusade (if you want those maps aswell that is). This is something you have to do you self and goes beyond the scope of this tutorial.
&lt;/p&gt;
&lt;p&gt;
Now we download and fire up wowmapper. Now we are going to follow the instructions on the site:
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;open the &amp;#39;initialisation&amp;#39; tab&lt;/li&gt;
	&lt;li&gt;click &amp;quot;initialiser&amp;#39;&lt;/li&gt;
	&lt;li&gt;the list of available section appears&lt;/li&gt;
	&lt;li&gt;choose one section then click &amp;quot;generer carte&amp;quot;&lt;/li&gt;
	&lt;li&gt;preview panel will open automatically&lt;/li&gt;
	&lt;li&gt;select the zone you want to render with the mouse (highlight it)&lt;/li&gt;
	&lt;li&gt;choose the output size (256 is the 1:1 format)&lt;/li&gt;
	&lt;li&gt;click render&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
These steps will be repeated till you got all the images for on your map. I did all the PvPzones, Easteren Kingdoms, Outland and Kalimdor. Once you exported these maps fireup your image editor. &lt;span style=&quot;font-weight: bold; font-style: italic; text-decoration: underline&quot;&gt;IMPORTEND NOTE: While doing this step I plitted the map in 4 pieces of 16384x16384 pixels this costs about 1GB of RAM per image! Make sure that you have 2GB or more in your PC. (OR try out what happens if you have less.)&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
Now we got our images and our image editor open and create a plain black image and save it. We&amp;#39;ll use this image to put the maps on. Once you placed everything on the map save it and close everything.
&lt;/p&gt;
&lt;p&gt;
There you go, you have created your own map image now. Next week we&amp;#39;ll continue to part 2/2. If something is unclear or if you have any other comment/question/feed back, please don&amp;#39;t hesitate to leave a comment.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
WyriHaximus&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;&lt;a href=&quot;http://wyrihaximus.net/tutorials/custom-google-map-tiles-part-2-of-2--slicing-the-tiles-and-creating-the-html/&quot;&gt;EDIT: Part 2 is online now.&lt;/a&gt;&lt;/b&gt;
&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;This post (&lt;a href=&quot;http://wyrihaximus.net/blog/message-id-221-n-custom-google-map-tiles-part-1-2--creating-the-map.html&quot;&gt;Custom Google Map Tiles part 1/2: Creating the map&lt;/a&gt;) has been posted on the &lt;a href=&quot;http://wyrihaximus.net/&quot;&gt;WyriHaximus.net&lt;/a&gt; &lt;a href=&quot;http://wyrihaximus.net/blog/&quot;&gt;Blog&lt;/a&gt; by WyriHaximus. Tagged with these tags:  &lt;span id=&quot;tags_blog_221_span&quot;&gt;&lt;span&gt;&lt;a class=&quot;tag_cload_lvl4_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-800-n-world-of-warcraft.html&quot; rel=&quot;tag&quot;&gt;World of Warcraft (21)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2597-n-the-g-i-m-p.html&quot; rel=&quot;tag&quot;&gt;The G.I.M.P. (1)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_2&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2598-n-photoshop.html&quot; rel=&quot;tag&quot;&gt;Photoshop (2)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_3&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2599-n-wowmapper.html&quot; rel=&quot;tag&quot;&gt;wowmapper (1)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_0&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2600-n-article.html&quot; rel=&quot;tag&quot;&gt;Article (2)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2601-n-turorial.html&quot; rel=&quot;tag&quot;&gt;Turorial (1)&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; </description>
<link>http://wyrihaximus.net/blog/message-id-221-n-custom-google-map-tiles-part-1-2--creating-the-map.html</link>
</item>
<item>
<title>How to add your visitors to a Google Map</title>
<description>&lt;p&gt;
Ok message 1 of today will be a howto to add your visitors as dots on a world map using &lt;a href=&quot;http://maps.google.com/&quot; title=&quot;Google Maps&quot;&gt;Google Maps&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
First of all we need a API key from Google, you can get it &lt;a href=&quot;http://code.google.com/apis/maps/signup.html&quot; title=&quot;Google Maps API Key Signup&quot;&gt;here&lt;/a&gt;.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Then we start setting up the very basics on the maps. First with a DIV where the map will be placed in:
&lt;/p&gt;
&lt;code&gt;
&amp;lt;div id=&amp;quot;map_canvas&amp;quot; style=&amp;quot;width: 700px; height: 300px&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
&lt;/code&gt;
&lt;p&gt;
Above that we add the javascript include from google, make sure to replace [API_KEY] with your API key:
&lt;/p&gt;
&lt;code&gt;
&amp;lt;script src=&amp;quot;http://maps.google.com/maps?file=api&amp;amp;amp;v=2&amp;amp;amp;key=[API_KEY]&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;nbsp;
&lt;/code&gt;
&lt;p&gt;
Next we create a function named on_load (or any other name you like but I&amp;#39;ll use on_load in this howto):
&lt;/p&gt;
&lt;code&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
function on_load()&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
window.onload = on_load;&lt;br /&gt;
&amp;lt;/script&amp;gt; &lt;br /&gt;
&lt;/code&gt;
&lt;p&gt;
As you can see I also added window.onload and pointed it to the on_load function. This is to make sure it works in all supported browsers. (IE and Safari go nuts if you start executing the map before the page is loaded. FF has no problem with this tho.) Ok now we are going to fill up the function with the initial code to display the map.
&lt;/p&gt;
&lt;p&gt;
First we add an if to the function to check if the used browser is supported:
&lt;/p&gt;
&lt;code&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(GBrowserIsCompatible())&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;/code&gt;
&lt;p&gt;
Within this if we create the map object and display it, the &lt;b&gt;map_canvas&lt;/b&gt; bit is the name of the DIV where the map is rendered in:
&lt;/p&gt;
&lt;code&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var map = new GMap2(document.getElementById(&amp;quot;map_canvas&amp;quot;));
&lt;/code&gt;
&lt;p&gt;
Now we have a working map. Nothing fancy yet tho, that is what we are going to add now.
&lt;/p&gt;
&lt;p&gt;
First we add the daylightmap (by &lt;a href=&quot;http://www.daylightmap.com/&quot; title=&quot;daylightmap&quot;&gt;daylightmap.com&lt;/a&gt;  be sure to check &lt;a href=&quot;http://www.daylightmap.com/services.php#diy&quot; title=&quot;daylightmap pricing&quot;&gt;here&lt;/a&gt;  before you add this bit). We begin by adding their js include directly after google&amp;#39;s include:
&lt;/p&gt;
&lt;code&gt;
&amp;lt;script src=&amp;quot;http://www.daylightmap.com/daylight_packed.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;
&lt;p&gt;
Then we add this in the on_load function directly after where we created the map object:
&lt;/p&gt;
&lt;code&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var daylight = new daylightMap.daylightLayer();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; daylight.addToMap(map);
&lt;/code&gt;
&lt;p&gt;
This will play an extra layer over the map showing the current daylight and night zones. To add more interactivity we add 2 controls and we also set the center of the map:
&lt;/p&gt;
&lt;code&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; map.setCenter(new GLatLng(30, 0), 1);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; map.addControl(new GSmallMapControl());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; map.addControl(new GMapTypeControl());
&lt;/code&gt;
&lt;p&gt;
Now it becomes fun cause we are going to add dots for each online visitor to the map. To keep this guide universal I assume you how basic programming knowledge and that you readed the &lt;a href=&quot;http://www.hostip.info/&quot; title=&quot;HostIP&quot;&gt;HostIP&lt;/a&gt;  &lt;a href=&quot;http://www.hostip.info/use.html&quot; title=&quot;HostIP API&quot;&gt;API&lt;/a&gt;  page. The example will be written in PHP and the IP to display on the map are in an array. This to ensure you can port it to your language of choose. (&lt;u&gt;&lt;i&gt;Feel free to leave a comment with your own version in your language.&lt;/i&gt;&lt;/u&gt;) 
&lt;/p&gt;
&lt;p&gt;
We start with a for loop to walk through to that is placed after adding the interactive bits to the map, note that I fill the array in the example with some random IP&amp;#39;s (I just made them up nothing more nothing less):
&lt;/p&gt;
&lt;code&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $ips = array();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $ips[] = $_SERVER[&amp;#39;REMOTE_ADDR&amp;#39;];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $ips[] = &amp;#39;6.56.89.74&amp;#39;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for($i=0;$i&amp;lt;count($ips);$i++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;gt;
&lt;/code&gt;
&lt;p&gt;
Now we fetch the Latitude and Longitude from hostip.info (you can host the database yourself aswell but that goes beyond the scope of this howto):
&lt;/p&gt;
&lt;code&gt;
$data = @file_get_contents(&amp;#39;http://api.hostip.info/get_html.php?ip=&amp;#39; . $ips[$i] . &amp;#39;&amp;amp;position=true&amp;#39;);
&lt;/code&gt;
&lt;p&gt;
Next we check if the fetch was successful and explode/split the data into an array:
&lt;/p&gt;
&lt;code&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if($data)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $ex = explode(&amp;quot;\n&amp;quot;,str_replace(array(&amp;quot;\r&amp;quot;,&amp;quot;\n\n&amp;quot;,&amp;#39;Latitude: &amp;#39;,&amp;#39;Longitude: &amp;#39;),array(&amp;quot;\n&amp;quot;,&amp;quot;\n&amp;quot;,&amp;#39;&amp;#39;,&amp;#39;&amp;#39;),$data));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/code&gt;
&lt;p&gt;
As you can see I removed the lat and long text from the data bit. This will make checking and using easier. If no lat/long known is the string will be empty.&amp;nbsp; Now we check if the string is empty or not (we add this right after the explode():
&lt;/p&gt;
&lt;code&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!empty($ex[2]) &amp;amp;&amp;amp; !empty($ex[3]))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;
&lt;/code&gt;
&lt;p&gt;
Within this if we add a echo command to add a marker on the map:
&lt;/p&gt;
&lt;code&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo(&amp;#39;var point = new GLatLng(&amp;#39; . $ex[2] . &amp;#39;,&amp;#39; . $ex[3] . &amp;quot;);\r\n&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo(&amp;quot;map.addOverlay(new GMarker(point));\r\n&amp;quot;);
&lt;/code&gt;
&lt;p&gt;
Congratulations you have now a Google Map with a point for every visitor online on your site. You should have this code now:
&lt;/p&gt;
&lt;code&gt;
&amp;lt;script src=&amp;quot;http://maps.google.com/maps?file=api&amp;amp;amp;v=2&amp;amp;amp;key=[API_KEY]&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://www.daylightmap.com/daylight_packed.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;map_canvas&amp;quot; style=&amp;quot;width: 700px; height: 300px&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
function on_load()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(GBrowserIsCompatible())&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var map = new GMap2(document.getElementById(&amp;quot;map_canvas&amp;quot;));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var daylight = new daylightMap.daylightLayer();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; daylight.addToMap(map);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; map.setCenter(new GLatLng(30, 0), 1);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; map.addControl(new GSmallMapControl());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; map.addControl(new GMapTypeControl());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $ips = array();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $ips[] = $_SERVER[&amp;#39;REMOTE_ADDR&amp;#39;];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $ips[] = &amp;#39;6.56.89.74&amp;#39;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for($i=0;$i&amp;lt;count($ips);$i++)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $data = @file_get_contents(&amp;#39;http://api.hostip.info/get_html.php?ip=&amp;#39; . $ips[$i] . &amp;#39;&amp;amp;position=true&amp;#39;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if($data)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $ex = explode(&amp;quot;\n&amp;quot;,str_replace(array(&amp;quot;\r&amp;quot;,&amp;quot;\n\n&amp;quot;,&amp;#39;Latitude: &amp;#39;,&amp;#39;Longitude: &amp;#39;),array(&amp;quot;\n&amp;quot;,&amp;quot;\n&amp;quot;,&amp;#39;&amp;#39;,&amp;#39;&amp;#39;),$data));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(!empty($ex[2]) &amp;amp;&amp;amp; !empty($ex[3]))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo(&amp;#39;var point = new GLatLng(&amp;#39; . $ex[2] . &amp;#39;,&amp;#39; . $ex[3] . &amp;quot;);\r\n&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo(&amp;quot;map.addOverlay(new GMarker(point));\r\n&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;br /&gt;
window.onload = on_load;&lt;br /&gt;
&amp;lt;/script&amp;gt; 
&lt;/code&gt;
&lt;p&gt;
Updated code with SuperRembo's comment:
&lt;/p&gt;
&lt;code&gt;
&amp;lt;?php&lt;br /&gt;
function host_ip($ip)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $data = @file_get_contents(&amp;#39;http://api.hostip.info/get_html.php?ip=&amp;#39; . $ip . &amp;#39;&amp;amp;position=true&amp;#39;);&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; if($data)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $ex = explode(&amp;quot;\\n&amp;quot;,str_replace(array(&amp;quot;\\r&amp;quot;,&amp;quot;\\n\\n&amp;quot;,&amp;#39;Latitude: &amp;#39;,&amp;#39;Longitude: &amp;#39;),array(&amp;quot;\\n&amp;quot;,&amp;quot;\\n&amp;quot;,&amp;#39;&amp;#39;,&amp;#39;&amp;#39;),$data));&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(!empty($ex[2]) &amp;amp;&amp;amp; !empty($ex[3]))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return array($ex[2],$ex[3]);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;br /&gt;
}&lt;br /&gt;
$markers = $ips = array();&lt;br /&gt;
$ips[] = $_SERVER[&amp;#39;REMOTE_ADDR&amp;#39;];&lt;br /&gt;
$ips[] = &amp;#39;6.56.89.74&amp;#39;;&lt;br /&gt;
for($i=0;$i&amp;lt;count($ips);$i++)&lt;br /&gt;
{&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; $marker = host_ip($ips[$i]);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if($marker)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $markers[] = $marker;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; unset($marker);&lt;br /&gt;

}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://maps.google.com/maps?file=api&amp;amp;amp;v=2&amp;amp;amp;key=[API_KEY]&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://www.daylightmap.com/daylight_packed.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;

&amp;lt;div id=&amp;quot;map_canvas&amp;quot; style=&amp;quot;width: 700px; height: 300px&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
function on_load()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var add_marker = function (x) {&lt;br /&gt;

&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; marker_manager.addMarker(new GMarker(new GLatLng(x[0], x[1])), 0);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(GBrowserIsCompatible())&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo(&amp;#39;var markers = &amp;#39; . json_encode($markers) . &amp;quot;;\\r\\n&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var map = new GMap2(document.getElementById(&amp;quot;map_canvas&amp;quot;));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var daylight = new daylightMap.daylightLayer();&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; daylight.addToMap(map);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.setCenter(new GLatLng(30, 0), 1);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.addControl(new GSmallMapControl());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.addControl(new GMapTypeControl());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; marker_manager = new GMarkerManager(map);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; markers.forEach(add_marker);&lt;br /&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;br /&gt;
window.onload = on_load;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;/code&gt;
&lt;p&gt;My &lt;a href=&quot;http://wyrihaximus.net/site-info/online-users/.html&quot;&gt;implantation&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;div id=&quot;map_canvas&quot; style=&quot;width: 700px; height: 300px&quot;&gt;&lt;/div&gt;&lt;script src=&quot;http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;key=ABQIAAAAeyEkFpiQRmAR9DudCWj-iRRD5PBXOz7_zwADS5paxKedzm0SEhSg0yfAdCwQxn77ABOt8U4uLNbXWg&quot;
            type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;http://www.daylightmap.com/daylight_packed.js&quot; 
            type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
    &lt;script type=&quot;text/javascript&quot;&gt;
function on_load_map()
{
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById(&quot;map_canvas&quot;));
    var daylight = new daylightMap.daylightLayer();
    daylight.addToMap(map);
        map.setCenter(new GLatLng(30, 0), 1);
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
	
      }
}
window.onload = on_load_map;
    &lt;/script&gt;&lt;/p&gt;
&lt;p&gt;
Enjoy it and feel free to post your a link to your implentations &lt;img src=&quot;/includes/javascripts/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-cool.gif&quot; alt=&quot;Cool&quot; title=&quot;Cool&quot; border=&quot;0&quot; /&gt;.
&lt;/p&gt;
&lt;p&gt;WyriHaximus&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;This post (&lt;a href=&quot;http://wyrihaximus.net/blog/message-id-220-n-how-to-add-your-visitors-to-a-google-map.html&quot;&gt;How to add your visitors to a Google Map&lt;/a&gt;) has been posted on the &lt;a href=&quot;http://wyrihaximus.net/&quot;&gt;WyriHaximus.net&lt;/a&gt; &lt;a href=&quot;http://wyrihaximus.net/blog/&quot;&gt;Blog&lt;/a&gt; by WyriHaximus. Tagged with these tags:  &lt;span id=&quot;tags_blog_220_span&quot;&gt;&lt;span&gt;&lt;a class=&quot;tag_cload_lvl2_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-557-n-google.html&quot; rel=&quot;tag&quot;&gt;Google (10)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl2_2&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2331-n-google-maps.html&quot; rel=&quot;tag&quot;&gt;Google Maps (6)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2334-n-daylightmap.html&quot; rel=&quot;tag&quot;&gt;Daylightmap (2)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_2&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2592-n-geoip.html&quot; rel=&quot;tag&quot;&gt;GeoIP (1)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_3&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2593-n-ip2location.html&quot; rel=&quot;tag&quot;&gt;IP2Location (1)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_0&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2594-n-hostip.html&quot; rel=&quot;tag&quot;&gt;Hostip (1)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2595-n-howto.html&quot; rel=&quot;tag&quot;&gt;Howto (1)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_2&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2596-n-tutorial.html&quot; rel=&quot;tag&quot;&gt;Tutorial (2)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl1_3&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2600-n-article.html&quot; rel=&quot;tag&quot;&gt;Article (2)&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; </description>
<link>http://wyrihaximus.net/blog/message-id-220-n-how-to-add-your-visitors-to-a-google-map.html</link>
</item>
<item>
<title>Friday night Themed Links week 12: 0 sites</title>
<description>&lt;p&gt;
This week no links instead I spending all my time to give you 3 posts this weekend. 1 in the saterday noon, 1 in the saterday evening and 1 for sunday.
&lt;/p&gt;
&lt;p&gt;
WyriHaximus&amp;nbsp;
&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;This post (&lt;a href=&quot;http://wyrihaximus.net/blog/message-id-219-n-friday-night-themed-links-week-12--0-sites.html&quot;&gt;Friday night Themed Links week 12: 0 sites&lt;/a&gt;) has been posted on the &lt;a href=&quot;http://wyrihaximus.net/&quot;&gt;WyriHaximus.net&lt;/a&gt; &lt;a href=&quot;http://wyrihaximus.net/blog/&quot;&gt;Blog&lt;/a&gt; by WyriHaximus. Tagged with these tags:  &lt;span id=&quot;tags_blog_219_span&quot;&gt;&lt;span&gt;&lt;a class=&quot;tag_cload_lvl3_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-979-n-friday-night-themed-links.html&quot; rel=&quot;tag&quot;&gt;Friday night Themed Links (15)&lt;/a&gt;&lt;/span&gt;, &lt;span&gt;&lt;a class=&quot;tag_cload_lvl2_1&quot; href=&quot;http://wyrihaximus.net/blog/tags-id-2331-n-google-maps.html&quot; rel=&quot;tag&quot;&gt;Google Maps (6)&lt;/a&gt;&lt;/span&gt;&lt;/span&gt; </description>
<link>http://wyrihaximus.net/blog/message-id-219-n-friday-night-themed-links-week-12--0-sites.html</link>
</item>
</channel>
</rss>