<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="content-type" content="text/html;charset=utf-8">
  <link rel="stylesheet" href="theme/default/style.css" type="text/css" />
  <link href='style.css' rel='stylesheet' type='text/css' />

  <style type="text/css">
    #map {
    float: left;
    width: 100%;

    box-sizing:border-box;

    }
    .olPopup p { margin:0px; }
  </style>

  <title>Freifunk Lübeck - Knotenkarte</title>

  <script src="http://maps.burningsilicon.net/OpenLayers-2.8/OpenLayers.js"></script>
  <script src="http://maps.burningsilicon.net/OpenLayers-2.8/OpenStreetMap.js"></script>

  <script type="text/javascript">
    var map;

    OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control);

    function init()
    {
      map = new OpenLayers.Map ("map", {
      controls:[
      new OpenLayers.Control.Navigation(),
      new OpenLayers.Control.PanZoomBar(),
      new OpenLayers.Control.LayerSwitcher(),
      new OpenLayers.Control.Attribution(),
      new OpenLayers.Control.Permalink(),
      new OpenLayers.Control.ScaleLine(),
      new OpenLayers.Control.OverviewMap(),
      new OpenLayers.Control.MousePosition()],
      maxResolution: 156543.0399,
      numZoomLevels: 19,
      units: 'm',
      projection: new OpenLayers.Projection("EPSG:900913"),
      displayProjection: new OpenLayers.Projection("EPSG:4326")
      } );

      var layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik", {opacity: 0.5});
      map.addLayer(layerMapnik);

      var center = new OpenLayers.LonLat(153.02775, -27.47558).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());

      var zoom = 11
      map.setCenter(center, zoom);

      vectorLayer = new OpenLayers.Layer.GML("KML", 'geomap.kml',
      {
        projection: new OpenLayers.Projection("EPSG:4326"),
        eventListeners: { 'loadend': kmlLoaded },
        format: OpenLayers.Format.KML,
        formatOptions: {
          style: {strokeColor: "green", strokeWidth: 5, strokeOpacity: 0.5},
          extractStyles: true,
          maxDepth: 2,
          extractAttributes: true
        }
      });

      map.addLayer(vectorLayer);

      selectControl = new OpenLayers.Control.SelectFeature(map.layers[1],
        {onSelect: onFeatureSelect, onUnselect: onFeatureUnselect});
      map.addControl(selectControl);
      selectControl.activate();

      var click = new OpenLayers.Control.Click();
            map.addControl(click);
            click.activate();
    }

    function onPopupClose(evt)
    {
      selectControl.unselect(selectedFeature);
    }

    function onFeatureSelect(feature)
    {
      selectedFeature = feature;
      popup = new OpenLayers.Popup.FramedCloud("chicken",
      feature.geometry.getBounds().getCenterLonLat(),
      new OpenLayers.Size(100,150),
      "<div style='font-size:.8em'><b>Name:</b>"+feature.attributes.name+"<br><b>Description:</b>"+feature.attributes.description+"</div>",
      null, true, onPopupClose);
      feature.popup = popup;
      map.addPopup(popup);
    }

    function onFeatureUnselect(feature)
      {
      map.removePopup(feature.popup);
      feature.popup.destroy();
      feature.popup = null;
      }

    function kmlLoaded()
      {
      map.zoomToExtent(vectorLayer.getDataExtent());
      }

  </script>
</head>

<body onload="init()">
  <header>
    <h1>luebeck.freifunk.net</h1>
    <ul>
      <li><a href="nodes.html">Knotengraph</a></li>
      <li><a href="geomap.html">Knotenkarte</a></li>
    </ul>
  </header>
	<div id="map"></div>
</body>
</html>