I'm trying to create a map similar to this one
http://mw1.google.com/mw-earth-vectordb/disaster/gulf_oil_spill/gulf_oil_map.html
that plots a large fusion tables database of historic sites on top of
a large number of kml overlays of satellite images and inundation maps
of the Mississippi River flooding. The original that I'm cloning used
V2 API. I've tried to update to V3 syntax but I can't get the layers
to load. Any help appreciated.
Here's my map:
http://edfitz.com/test/flood_map/flood_map2.html
Here's the code:
<!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"
xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<link rel="StyleSheet" href="disaster_map.css" type="text/css" />
<script type="text/javascript" src="
http://maps.google.com/maps/api/
js?sensor=false" ></script>
<script type="text/javascript">
var map;
var layers;
function initialize() {
var missouri = new google.maps.LatLng(36.87638, -89.58884);
var myOptions = {
center: missouri,
zoom: 6,
mapTypeId: 'satellite'
}
var map = new google.maps.Map(document.getElementById('map'),
myOptions);
loadJson('flood_map_layers.js');
}
//Begin layer menu
function loadJson(url) {
var s = document.createElement('script');
s.setAttribute('text', 'text/javascript');
s.src = url;
document.body.appendChild(s);
}
function PopulateLayers(json) {
if (json.error !== false) {
return;
}
var navBar = document.getElementById('sidebar');
navBar.innerHTML = '<div id="layerHeader">' + json.headerMessage +
'</div>';
var layerList = document.createElement('dl');
navBar.appendChild(layerList);
for (var i = 0; i < json.layers.length; ++i) {
var layer = json.layers[i];
if (layer == undefined) {
continue;
}
var id = 'disaster_layer_' + i;
var input = addLayer(layer, layerList, id);
if (layer.checked) {
input.checked = true;
toggleLayer(input.overlay, true);
}
}
}
function addLayer(layer, parentElem, id) {
if (layer == undefined) {
return;
}
// Create the input checkbox
var dtElem = document.createElement('dt');
parentElem.appendChild(dtElem);
var input = document.createElement('input');
input.type = 'checkbox';
input.id = id;
if (layer.type == 'kml') {
input.overlay = new google.maps.KmlLayer(layer.url);
}
else if (layer.type = 'fusion') {
input.overlay = new google.maps.FusionTablesLayer({
query: {
select: 'geometry',
from: 'layer.url'
},
});
} else {
return null;
}
input.onclick = function () { toggleLayer(this.overlay,
this.checked) };
dtElem.appendChild(input);
// Add the primary layer name
var layerNameElem = document.createTextNode(
layer.name);
var boldElem = document.createElement('b');
boldElem.appendChild(layerNameElem);
dtElem.appendChild(boldElem);
// For KML layers, add a KML href
if (layer.type == 'kml') {
var anchorTag = document.createElement('a');
anchorTag.href = layer.url;
anchorTag.id = 'kml-link';
anchorTag.innerHTML = 'KML';
dtElem.appendChild(anchorTag);
dtElem.appendChild(document.createElement('br'));
}
// Add optional description below the checkbox/layer name
if (layer.desc !== undefined) {
var ddElem = document.createElement('dd');
parentElem.appendChild(ddElem);
var descElem = document.createElement('span');
descElem.className = 'comments';
descElem.innerHTML = layer.desc;
ddElem.appendChild(descElem);
ddElem.appendChild(document.createElement('br'));
}
return input;
}
function toggleLayer(overlay, checked) {
if (checked) {
overlay.setMap(map);
} else {
overlay.setMap(null);
}
}
</script>
</head>
<body onload="initialize()">
<div id="header"><!--Mississippi Flood Map--></div>
<div id="sidebar"></div>
<div id="map"></div>
<div id="more"></div>
</body>
</html>