Thanks for taking your time in this Brad :)  I have implemented the changes
but I must something wrong because the map area is just grey now.  Here's
the link to the page: http://www.gamecarver.com/viperapp3.html

Here's the link to a page that has the maps on:
http://www.gamecarver.com/viperapp2.html (this was my first attempt)

Here's the code after the changes....I'm really sorry to be a burden:

<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;
var map;

function toggleLayer(layer) {
   if (layer.getMap()) {
     layer.setMap(null);
   } else {
     layer.setMap(map);
   }
 }


function initialize() {
  var myOptions = {
    zoom: 14,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  var map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
  var map = new google.maps.KmlLayer('
https://cop.vdem.virginia.gov/gis_feeds/GeoRSS2.ashx');
  Hazmat.setMap(map);
  var map = new google.maps.KmlLayer('
http://map.richmondgov.com/Bing/Traffic/georssfeed.ashx');
  RichmondTraffic.setMap(map);
  var map = new google.maps.KmlLayer('
https://cop.vdem.virginia.gov/gis_feeds/ShelterGeoRSS.ashx');
  StateShelters.setMap(map);
  var map = 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);
  }

}





</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="javascript: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:31 PM, Brad <[email protected]> wrote:

> #1) Remove the function toggleLayer definition that you have inside of
> initialize function, you only need it defined once, outside of the
> init function.
> #2)remove references to "var" inside of the init function.  Even
> though you did the right thing by defining those variables outside of
> the function, when you put "var" in the function again, it is
> redefining a locally scoped variable with the same name.  By removing
> "var" inside of the init function on variables that were already
> defined, you are keeping them in "global" scope.
> #3)Add "var map;" to where you are initting the other variables, you
> will need the map in global scope in order for the toggleLayer
> function to work correctly.
>
>
>
>
> On May 10, 6:16 pm, Jack Berberette <[email protected]> wrote:
> > 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]>
> <google-maps-js-api-v3%[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]>
> <google-maps-js-api-v3%[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]>
> <google-maps-js-api-v3%[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 athttp://
> 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.

Reply via email to