Hi everyone,
My map is located here www.weareduckhunters.com/map.php
I'm getting a really odd error all of a sudden, and can't seem to
figure it out.
I have been adding a custom control for users to switch between
layovers. I have been creating this in my js file through DOM.
Everything was running smoothly then all of a sudden i get this error
in the chrome javascript debugger:
Uncaught TypeError: Cannot read property 'firstChild' of null
I know that it's trying to access SOMETHING that turns out to be
null. but what I don't get is I commented out (and even deleted) the
entire section of code that I added today and it is still throwing the
error. Anyone have any ideas?
Here is my script.js file:
function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(38.6469910157719, -90.224967), 4);
map.addControl(new GLargeMapControl3D());
map.addControl(new GMapTypeControl());
map.addControl(new TextualZoomControl());
var legSize = new GScreenSize(157,138);
var legX = new GScreenPoint(800,15);
var legY = new GScreenPoint(0,0);
var legend = new
GScreenOverlay("http://www.weareduckhunters.com/
images/HSR_KEY.png", legX, legY, legSize);
map.addOverlay(legend);
}
//setMarkers(map, beaches);
//setHotSpots(map, spots);
//getWeather(map, places);
}
function setMarkers(map,locations) {
for(var i = 0; i < locations.length; i++) {
var beach = locations[i];
var icons = new GIcon(G_DEFAULT_ICON);
icons.image = "/" + beach[4];
var GMarkerOptions = {
icon: icons,
title: beach[0]};
var myLatLng = new GLatLng(beach[1], beach[2]);
var marker = new GMarker(myLatLng, GMarkerOptions);
map.addOverlay(marker);
}
}
function getWeather(map, locations)
{
for (i = 0; i < locations.length; i++)
{
var place = locations[i];
var weatherIcons = new GIcon(G_DEFAULT_ICON);
weatherIcons.image= place[3];
var weatherIconSize = new GSize(40,40);
var weatherIconTitle = place[0];
var GMarkerOptions = {
icon: weatherIcons,
iconSize: weatherIconSize,
title: weatherIconTitle,
shadowSize: weatherIconSize
};
var myLatLng = new GLatLng(place[1], place[2]);
var marker = new GMarker(myLatLng,GMarkerOptions);
map.addOverlay(marker);
}
}
function setHotSpots(map, locations) {
var latOffset = 2;
var lonOffset = 2;
for (var q = 0; q < locations.length; q++) {
var spot = locations[q];
var lat = spot[0];
var lon = spot[1];
var polygon = new GPolygon([
new GLatLng(lat, lon - lonOffset),
new GLatLng(lat + latOffset, lon),
new GLatLng(lat, lon + lonOffset),
new GLatLng(lat - latOffset, lon),
new GLatLng(lat, lon - lonOffset)], "#CC0000", 0, 1,
"#CC0000", 0.5);
map.addOverlay(polygon);
}
}
function TextualZoomControl() {
}
TextualZoomControl.prototype = new GControl();
TextualZoomControl.prototype.initialize = function(map) {
var container = document.createElement("div");
this.setBoxStyle_(container);
var hsrMarkersLabel = document.createElement("div");
this.setBoxStyle2_(hsrMarkersLabel);
container.appendChild(document.createTextNode("Show HSR Scores"));
var hsrMarkers = document.createElement("input");
this.setBoxStyle2_(hsrMarkers);
hsrMarkers.type = 'checkbox';
container.appendChild(hsrMarkers);
GEvent.addListener(hsrMarkers, "click", function() {
setMarkers(map, beaches);
});
var hotSpotsLabel = document.createElement("div");
this.setBoxStyle2_(hsrMarkersLabel);
container.appendChild(document.createTextNode("Show Hot Spots"));
var hotSpots = document.createElement("input");
this.setBoxStyle2_(hotSpots);
hotSpots.type = 'checkbox';
container.appendChild(hotSpots);
GEvent.addListener(hotSpots, "click", function() {
setHotSpots(map,spots);
});
var currentWeatherLabel = document.createElement("div");
this.setBoxStyle2_(hsrMarkersLabel);
container.appendChild(document.createTextNode("Current Weather"));
var currentWeather = document.createElement("input");
this.setBoxStyle2_(currentWeather);
currentWeather.type = 'checkbox';
container.appendChild(currentWeather);
GEvent.addListener(currentWeather, "click", function() {
getWeather(map,places);
});
map.getContainer().appendChild(container);
return container;
}
TextualZoomControl.prototype.getDefaultPosition = function() {
return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(9, 30));
}
TextualZoomControl.prototype.setBoxStyle_ = function(button) {
button.style.textDecoration = "none";
button.style.backgroundColor = "white";
button.style.font = "small Arial";
button.style.border = "1px solid black";
button.style.padding = "2px";
button.style.marginBottom = "13px";
button.style.width = "10em";
button.style.align = "left";
button.style.cursor = "pointer";
}
TextualZoomControl.prototype.setBoxStyle2_ = function(button) {
button.style.width = "2em";
}
Thanks in advance guys!
--
You received this message because you are subscribed to the Google Groups
"Google Maps API" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-maps-api?hl=en.