Hello,
I work for a non-profit in San Diego as a GIS Specialist. I have had to teach myself about some scripting to create some dynamic maps, but I am still very limited in my skills, so I have had to explore the internet in order to discover various tutorials and examples that have led me on a positive path.
Right now I am working on a Google Mash-Up that will incorporate over 14,000 records, which will appear as separate markers that will have pop-up info bubbles with additional info inside (using html), once the marker is clicked.
Here is the XML script example that is used in the tutorial I am following:
<markers>
<marker lat="43.65654" lng="-79.90138" html="Some stuff to display in the<br>Fi rst Info Window"
label="Marker One" />
<marker lat="43.91892" lng="-78.89231" html="Some stuff to display in the<br>Se cond Info Window"
label="Marker Two" />
<marker lat="43.82589" lng="-79.10040" html="Some stuff to display in the<br>Th ird Info Window"
label="Marker Three" />
</markers>
...and this is how it looks when the file is retrieved by the java script and mapped: http://econym.googlepa ges.com/example_map3.ht m
This is the java script that creates the Google Map. I have emboldened the section of the script that retrieves the data and parses it to create the markers:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Google Maps</title>
<script src="http://maps.google.com/maps?file=api&a mp;v=2&key= ABQIAAAA6GoL8P5 zqjQlG5A5uM1ETB SUPozAscB0cY3RG 8xEGnZyeom4axRy Sak889rVpvHYRsV 4f9OZZzbboA"
type="text/javascript"></script>
</head>
<body onunload="GUnlo ad()">
<!-- you can use tables or divs for the overall layout -->
<table border=1>
<tr>
<td>
<div id="map" style="width: 800px; height: 1200px"></div>
</td>
<td width = 200 valign="top" style="text-decoration: underline; color: #4444ff;">
<div id="side_bar"> </div>
</td>
</tr>
</table>
<noscript><b>Ja vaScript must be enabled in order for you to use Google Maps.</b>
However, it seems JavaScript is either disabled or not supported by your browser.
To view Google Maps, enable JavaScript by changing your browser options, and then
try again.
</noscript>
<script type="text/javascript">
//<![CDATA[
if (GBrowserIsComp atible()) {
// this variable will collect the html which will eventualkly be placed in the side_bar
var side_bar_html = "";
// arrays to hold copies of the markers used by the side_bar
// because the function closure trick doesnt work there
var gmarkers = [];
var i = 0;
// A function to create the marker and set up the event window
function createMarker(po int,name,html) {
var marker = new GMarker(point);
GEvent.addListe ner(marker, "click", function() {
marker.openInfo WindowHtml(html );
});
// save the info we need to use later for the side_bar
gmarkers[i] = marker;
// add a line to the side_bar html
side_bar_html += '<a href="javascrip t:myclick(' + i + ')">' + name + '</a><br>';
i++;
return marker;
}
// This function picks up the click and opens the corresponding info window
function myclick(i) {
GEvent.trigger( gmarkers[i], "click");
}
// create the map
var map = new GMap2(document. getElementById( "map"));
map.addControl( new GLargeMapContro l());
map.addControl( new GMapTypeControl ());
map.setCenter(n ew GLatLng( 37.251699,-119.604315), 7);
*// Read the data from testXML2blackpo olformat.xml*
*var request = GXmlHttp.create ();*
*request.open(" GET", "testXML2blackp oolformat.xml", true);*
*request.onread ystatechange = function() {*
*if (request.readyS tate == 4) {*
*var xmlDoc = GXml.parse(requ est.responseTex t);*
*// obtain the array of markers and loop through it*
*var markers = xmlDoc.document Element.getElem entsByTagName(" ConnectoryRecor d");*
for (var i = 0; i < markers.length; i++) {
// obtain the attribues of each marker
var lat = parseFloat(mark ers[i].getAttribute(" lat"));
var lng = parseFloat(mark ers[i].getAttribute(" lng"));
var point = new GLatLng(lat,lng );
var html = markers[i].getAttribute(" html");
var label = markers[i].getAttribute(" label");
// create the marker
var marker = createMarker(po int,label,html) ;
map.addOverlay( marker);
}
// put the assembled side_bar_html contents into the side_bar div
document.getEle mentById("side_ bar").innerHTM L = side_bar_html;
}
}
request.send(nu ll);
}
else {
alert("Sorry, the Google Maps API is not compatible with this browser");
}
// This Javascript is based on code provided by the
// Blackpool Community Church Javascript Team
// http://www.commchurch. freeserve.co.uk/
// http://econym.googlepa ges.com/index.htm
//]]>
</script>
</body>
</html>
Here is my delima--
This is the xml format that I need to use because it can accept the rest of my excel file and loop it through the 14,000+ records to create a functioning xml file. This is just a sample (2 records) of the larger file:
<?xml version="1.0" encoding="UTF-8" standalone="yes " ?>
<ConnectoryAug2 008>
<ConnectoryReco rd>
<lng>-117.03683</lng>
<lat>32.94450 5</lat>
<ConnectoryID>1 </ConnectoryID>
<Name>$2.95 Guys</Name>
<StreetAddress> 13750 Stowe Drive</StreetAddress>
<City>Poway</City>
<State>CA</State>
<Zip>92064</Zip>
<Marker>White </Marker>
<IndustryGroup> Technical Services</IndustryGroup>
<ConnectoryProf ileLink>http://connectory.com/search/profile_view.as px?connectoryId =1</ConnectoryProfi leLink>
</ConnectoryRecor d>
<ConnectoryReco rd>
<lng>-117.272843</lng>
<lat>33.13337 </lat>
<ConnectoryID>2 </ConnectoryID>
<Name>(GLDS) Great Lakes Data Systems</Name>
<StreetAddress> 5954 Priestly Drive</StreetAddress>
<City>Carlsba d</City>
<State>CA</State>
<Zip>92008</Zip>
<Marker>Orang e</Marker>
<IndustryGroup> Technology</IndustryGroup>
<ConnectoryProf ileLink>http://connectory.com/search/profile_view.as px?connectoryId =2</ConnectoryProfi leLink>
</ConnectoryRecor d>
</ConnectoryAug20 08>
This is the tutorial where I found the formatting techniques to successfully create the large xml file that will format/convert my excel file properly: http://www.mrexcel.com/tip064.shtml
These variables should appear as html in the info bubble:
<ConnectoryID>2 </ConnectoryID>
<Name>(GLDS) Great Lakes Data Systems</Name>
<StreetAddress> 5954 Priestly Drive</StreetAddress>
<City>Carlsba d</City>
<State>CA</State>
<Zip>92008</Zip>
<IndustryGroup> Technology</IndustryGroup>
<ConnectoryProf ileLink>http://connectory.com/search/profile_view.as px?connectoryId =2</ConnectoryProfi leLink>
The "Marker" variable instructs Google Maps to label the marker with a particular color. I will be so grateful to the person(s) that helps me get through this wall that I have been hitting for a long time. It's very difficult without having the luxury of peers who know about these types of issues.
Thank you!!