summaryrefslogtreecommitdiff
path: root/templates/bin/map_entry_list.html
blob: a58de05c8315a5cc40afc9c1e8a8ffe81d61c724 (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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
{% load typogrify %}
{% load truncateletters  %}
{% load slugify_under  %}

    // center on a country
    function focusCountry(latitude, longitude, zoom) {
      map.setZoom(zoom);
      map.panTo(new google.maps.LatLng(latitude, longitude));
    };
  
    {% for route in route_list %}
    var {{route.template_var_name}} = [
    {% for point in route.geometry.coords%}
        new google.maps.LatLng({{point.1}}, {{point.0}}){% if forloop.last%}{%else%},{%endif%}
    {% endfor %}
      ];
    {% endfor %}
    function showRoute(route, zoom, latitude, longitude) {
        var routePath = new google.maps.Polyline({
            path: eval(route),
            strokeColor: "#FF0000",
            strokeOpacity: 1.0,
            strokeWeight: 2
        });
      map.setZoom(zoom);
      map.panTo(new google.maps.LatLng(latitude, longitude));
      routePath.setMap(map);  
      return false;
    };
var map;
function initialize() {

    //custom marker    
    var image = new google.maps.MarkerImage('http://luxagraf.net/media/img/marker-entry.png',
        new google.maps.Size(15, 26),
        new google.maps.Point(0, 0),
        new google.maps.Point(7, 26)
    );
    //custom marker shadow
    var shadow = new google.maps.MarkerImage('http://luxagraf.net/media/img/shadow.png',
        new google.maps.Size(37, 34),
        new google.maps.Point(0,0),
        new google.maps.Point(8, 34)
    );
    
    
    //check for a permalink
    var location = window.location.hash;
    //find a centerpoint
    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]) {
                centerCoord = new google.maps.LatLng(pts[i][1],pts[i][2]);
                zoom = pts[i][3];
                break;
            } else {
                centerCoord = new google.maps.LatLng(19.311143,2.460938);
                zoom = 2;
            }
        }
    } else {
        centerCoord = new google.maps.LatLng(19.311143,2.460938);
        zoom = 2;
    }
    //set up map options
    var mapOptions = {
        zoom: zoom,
        center: centerCoord,
        mapTypeId: google.maps.MapTypeId.TERRAIN,
        disableDefaultUI: true,
        navigationControl: true,
        navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL}
    };
    //create map
    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
   
    
    //loop through and set up markers/info windows

    {% for entry in object_list %}
    var marker_{{entry.title|truncatewords:2|slugify_under}} = new google.maps.Marker({
        position: new google.maps.LatLng({{entry.latitude}}, {{entry.longitude}}),
        map: map,
        shadow: shadow,
        icon: image
    });      
          
    var c_{{entry.title|truncatewords:2|slugify_under}} = '<div class="infowin"><h4>{{entry.title}}<\/h4><span class="date blok">{{entry.pub_date|date:"F j, Y"}} ({% if 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}}){%endif%}<\/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>';
    
    google.maps.event.addListener(marker_{{entry.title|truncatewords:2|slugify_under}}, 'click', function() {
    openWin(c_{{entry.title|truncatewords:2|slugify_under}},marker_{{entry.title|truncatewords:2|slugify_under}});
    });

    {% endfor %}
    // create an empty info window instance, set max width
    var infowindow = new google.maps.InfoWindow({
        content: ' ',
        maxWidth: 400
    }); 
    //function to handle click event and display single info window
    function openWin(content, marker) {
        infowindow.close();
        infowindow.setContent(content);
        infowindow.open(map,marker);
    };
    
    
}