Thanks for the response Jason,
I just gave it a try but the toggle doesn't work. Her's the code did I mess
up setting the variables? Also I'm not sure if I set the toggleLayer code
in the right spot:
function toggleLayer(layer) {
if (layer.getMap()) {
layer.setMap(null);
} else {
layer.setMap(map);
}
}
Here's the code for the page:
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>VIPER Traffic and Hazmat LIVE</title>
<script type="text/javascript" src="
http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript">
var initialLocation;
var statepolice = new google.maps.LatLng(37.502168, -77.542212);
var Hazmat;
var RichmondTraffic;
var StateShelters;
var trafficLayer;
function initialize() {
var myOptions = {
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
var Hazmat = new google.maps.KmlLayer('
https://cop.vdem.virginia.gov/gis_feeds/GeoRSS2.ashx');
Hazmat.setMap(map);
var RichmondTraffic = new google.maps.KmlLayer('
http://map.richmondgov.com/Bing/Traffic/georssfeed.ashx');
RichmondTraffic.setMap(map);
var StateShelters = new google.maps.KmlLayer('
https://cop.vdem.virginia.gov/gis_feeds/ShelterGeoRSS.ashx');
StateShelters.setMap(map);
var trafficLayer = new google.maps.TrafficLayer();
trafficLayer.setMap(map);
// Safari supports the W3C Geolocation method
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
initialLocation = new
google.maps.LatLng(position.coords.latitude,position.coords.longitude);
var placeMarker = new google.maps.Marker({
position: initialLocation,
map: map,
});
map.setCenter(initialLocation);
}, function() {
handleNoGeolocation(browserSupportFlag);
});
} else {
// Browser doesn't support Geolocation
handleNoGeolocation();
}
function handleNoGeolocation() {
initialLocation = statepolice;
map.setCenter(initialLocation);
}
function toggleLayer(layer) {
if (layer.getMap()) {
layer.setMap(null);
} else {
layer.setMap(map);
}
}
}
function toggleLayer(layer) {
if (layer.getMap()) {
layer.setMap(null);
} else {
layer.setMap(map);
}
}
</script>
<style>
DIV.container {
width: 100%;
height: 50px;
align: center;
background-image: url(
http://www.gamecarver.com/img/appimages/DivHeaderBG2.png);
// display: table-cell;
vertical-align: middle;
font-size:medium;
font-family: sans-serif;
color: white;
text-align: center;
font-weight: bold;
}
</style>
</head>
<body style="margin:0px; padding:0px;" onload="initialize()">
<div style="width:100%; height:385px">
<div class="container" ><img src="
http://www.gamecarver.com/img/appimages/Header1.png"</div>
<div id="map_canvas" style="width:100%; height:100%"></div>
<div style="background-image: url(
http://www.gamecarver.com/img/appimages/DivHeaderBG2.png); height: 25px;
width: 100%">
<button onclick="toggleLayer(RichmondTraffic)"> Traffic Incodents
</button>
<button onclick="toggleLayer(Hazmat)"> Hazmat </button>
<button onclick="toggleLayer(trafficLayer)"> Google Traffic </button>
</div>
</div>
</body>
</html>
On Mon, May 10, 2010 at 8:04 PM, Jason Sanford <[email protected]>wrote:
> Declare richmondTraffic (and any other KmlLayer) outside of any functions
> like where you declare initialLocation, statepolice, etc.
>
>
> On Mon, May 10, 2010 at 7:06 PM, Jack Berberette <[email protected]>wrote:
>
>> Thanks ESA for the quick response. The function looks simple enoug but
>> how do I set a variable in global scope...ie RichmondTraffic...based on the
>> code I have? Sorry to be such a newb...but I don't want to break what I
>> have...lol
>>
>> I can't thank you enough for helping me out,
>>
>> Jack
>>
>>
>>
>> Sent from my iPhone
>>
>>
>> On May 10, 2010, at 6:25 PM, Esa <[email protected]> wrote:
>>
>> Construct a toggle function in global scope
>>>
>>> function toggleLayer(layer) {
>>> if (layer.getMap()) {
>>> layer.setMap(null);
>>> } else {
>>> layer.setMap(map);
>>> }
>>> }
>>>
>>> Then you can create buttons like:
>>>
>>> <button onclick="toggleLayer(RichmondTraffic)"> RichmondTraffic </
>>> button>
>>>
>>> Note that also RichmondTraffic must be a global variable when called
>>> by a html button.
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "Google Maps JavaScript API v3" group.
>>> To post to this group, send email to
>>> [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected]<google-maps-js-api-v3%[email protected]>
>>> .
>>> For more options, visit this group at
>>> http://groups.google.com/group/google-maps-js-api-v3?hl=en.
>>>
>>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google Maps JavaScript API v3" group.
>> To post to this group, send email to
>> [email protected].
>> To unsubscribe from this group, send email to
>> [email protected]<google-maps-js-api-v3%[email protected]>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/google-maps-js-api-v3?hl=en.
>>
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Google Maps JavaScript API v3" group.
> To post to this group, send email to
> [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-maps-js-api-v3%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-maps-js-api-v3?hl=en.
>
--
You received this message because you are subscribed to the Google Groups
"Google Maps JavaScript API v3" 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-js-api-v3?hl=en.