summaryrefslogtreecommitdiff
path: root/templates/includes/map_entry_list_template.html
blob: ed34d111d6f0680d7b911c9094882791302e9919 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
{% load typogrify %}
{% load truncateletters  %}
{% load slugify_under  %}
<script type="text/javascript">
  var map = null;
  function JLngLat(a,b) {
    return new GLatLng(b,a)
    } 
  function initialize() {
    if (GBrowserIsCompatible()) {
      var tinyIcon = new GIcon();
      tinyIcon.image = "http://media.luxagraf.net/img/marker-entry.png";
      tinyIcon.shadow = "http://media.luxagraf.net/img/shadow.png";
      tinyIcon.iconSize = new GSize(12, 20);
      tinyIcon.shadowSize = new GSize(22, 20);
      tinyIcon.iconAnchor = new GPoint(6, 20);
      tinyIcon.infoWindowAnchor = new GPoint(5, 5);

      //var iconOptions = {};
      //iconOptions.primaryColor = "#a53503";
      //iconOptions.strokeColor = "#201a11";
      //var icon = MapIconMaker.createLabeledMarkerIcon(iconOptions);
      
      var location = window.location.hash;
      var pts = new Array();
      {%for c in country_list%}pts[{{forloop.counter0}}] = ["#{{c.slug}}", {{c.lat}},{{c.lon}},{{c.zoom_level}}];{% endfor %}
      {%for c in region_list%}pts[pts.length] = ["#{{c.slug}}", {{c.lat}},{{c.lon}},{{c.zoom_level}}];{% endfor %}
      if (location.length>1) {
          for (i=0;i<pts.length;i++) {
              if (location == pts[i][0]) {
                  point = new GLatLng(pts[i][1],pts[i][2]);
                  zoom = pts[i][3];
                  break;
              } else {
                  point = new GLatLng(19.311143,2.460938);
                  zoom = 2;
              }
          }
      } else {
          point = new GLatLng(19.311143,2.460938);
          zoom = 2;
      }
      
      // create a new map.
      map = new GMap2(document.getElementById("map-canvas"));
      map.enableContinuousZoom()
      map.setCenter(point, zoom, G_PHYSICAL_MAP);
      
      // basic control and overview (closed by default)
      map.addControl(new GSmallZoomControl());
      //var ov = new GOverviewMapControl();
      //map.addControl(ov);
      //ov.hide(true); 
      
      // Add a marker for each project
      
        {% for entry in object_list %}
          point_{{entry.title|truncatewords:2|slugify_under}} = JLngLat{{entry.point.coords}};
          markerOptions = { clickable:true, draggable:false, icon:tinyIcon};
          marker_{{entry.title|truncatewords:2|slugify_under}} = new GMarker(point_{{entry.title|truncatewords:2|slugify_under}}, markerOptions);
          map.addOverlay(marker_{{entry.title|truncatewords:2|slugify_under}});
          marker_{{entry.title|truncatewords:2|slugify_under}}.info_window_content = '<div class="infowin"><h4>{{entry.title}}<\/h4><span class="date blok">{{entry.pub_date|date:"F j, Y"}} ({% ifequal entry.location.state.country.name "United States" %}{{entry.location.name|smartypants|safe}}, {{entry.location.state.name}}){%else%}{{entry.location.name|smartypants|safe}}, {{entry.location.state.country.name}}){%endifequal%}<\/span><p><img src="{{entry.get_thumbnail_url}}" height="100" alt="{{ entry.title }}"  style="float: left; border: #000 10px solid; margin-right: 8px; margin-bottom: 4px; height: 100px;" \/>{{entry.dek|escapejs}} <a href="{{entry.get_absolute_url}}">Read it &raquo;<\/a><\/p><\/div>'
          marker_{{entry|truncatewords:2|slugify_under}}.bindInfoWindowHtml(marker_{{entry|truncatewords:2|slugify_under}}.info_window_content, {maxWidth:400});
          GEvent.addListener(marker_{{entry.title|truncatewords:2|slugify_under}}, "click", function() {
            map.panTo(point_{{entry.title|truncatewords:2|slugify_under}}, 2);
          });

    {% endfor %}
    }
  }
  
  // center on a country
  function focusCountry(latitude, longitude, zoom) {
    map.setZoom(zoom);
    map.panTo(new GLatLng(latitude, longitude))
  }
  function addRoute(line,levels,color,lat,lon,zoom){
    var encodedPolyline = new GPolyline.fromEncoded({
    color: color,
    weight: 5,
    points: line,
    levels: levels,
    zoomFactor: 32,
    numLevels: 4
    });
    focusCountry(lat,lon,zoom);
    map.addOverlay(encodedPolyline);
  }
  </script>