diff options
Diffstat (limited to 'templates/archives/map.html')
-rw-r--r-- | templates/archives/map.html | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/templates/archives/map.html b/templates/archives/map.html new file mode 100644 index 0000000..2714861 --- /dev/null +++ b/templates/archives/map.html @@ -0,0 +1,150 @@ +{% extends 'base.html' %} +{% load typogrify %} +{% load truncateletters %} +{% load slugify_under %} + +{% block pagetitle %}Luxagraf | Map and Trips{% endblock %} +{% block metadescription %}Writing Archive, Luxagraf{% endblock %} + +{#============================================== +Google Maps code +==============================================#} +{% block extrahead %} + +<script src="http://maps.google.com/maps?file=api&v=2&key={{map_key}}" type="text/javascript"></script> + + + + +{% endblock %} +{%block bodyid%}id="location"{%endblock%} +{% block bodyevents %}onload="initialize()" onunload="GUnload()"{% endblock %} + + + + + +{% block primary %} + <div id="map-canvas"> + +</div> + {% endblock %} + +{% block titleoverride %} {% endblock %} + +{% block sidebar %} +<div id="sidebar"> + <div class="blok"> + <h4 class="first">Trips</h4> + <ul> + <li><a onclick="addRoute('yi_iAp}mmOlzd@egy@njcCcpOq{hDxyqAai_@kvhSio[b|zVjhNbmZ','BBBBBBB','#FF0000',12.0554, -85.1880, 8);" href="#">Nicaragua (2008)</a></li> + </ul> + <h4>Regions</h4> + <ul> + {%for region in region_list %} + <li><a href="#{{region.slug}}" onclick="focusCountry({{region.lat}}, {{region.lon}}, {{region.zoom_level}});" title="See all writing from {{region.name|title}}">{{region.name}}</a></li> + {% endfor %} + </ul> + + <h4>Countries</h4> + <ul> + <li><a onclick="focusCountry(19.311143,2.460938,2);" href="#">All</a></li> + {%for country in country_list %} + <li><a href="#{{country.slug}}" onclick="focusCountry({{country.lat}}, {{country.lon}}, {{country.zoom_level}});" title="See all writing from {{country.name|title}}">{{country.name}}</a></li> + {% endfor %} + </ul> + + </div> +</div><!-- sidebar --> + +{% endblock %} +{% block js %} + +<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(new GSize(100,100)); + 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="mcanvas"><h4>{{entry.title}}<\/h4><span>{{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 }}" \/>{{entry.dek|escapejs}} <a href="{{entry.get_absolute_url}}">Read it »<\/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> + +{%endblock%}
\ No newline at end of file |