Changeset 267


Ignore:
Timestamp:
02/16/10 00:54:09 (2 years ago)
Author:
takanori
Message:

add marker and infowindow code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Products.ATGoogleMaps/trunk/Products/ATGoogleMaps/skins/ATGoogleMaps/gmap.py

    r257 r267  
     1site_encoding =  context.plone_utils.getSiteEncoding() 
     2 
     3def add_markers(js, markers): 
     4    #js.extend(('function addMarker()')) 
     5    for marker in markers: 
     6        lat = marker.point['latitude'] 
     7        lng = marker.point['longitude'] 
     8        js.extend(('  var marker_%s = new google.maps.Marker({' % marker.id, 
     9                   '    position: new google.maps.LatLng(%s, %s),' % (lat, lng), 
     10                   '    map: map,', 
     11                   '    title: "%s"' % unicode(marker.Title(), site_encoding), 
     12#                   '    icon: image', 
     13                   '  });', 
     14                   )) 
     15        js.extend(('  var infowindow_%s = new google.maps.InfoWindow({' % marker.id, 
     16                   '    content: "<h2>%s</h2>"' % unicode(marker.Title(), site_encoding), 
     17                   '  });', 
     18                   "  google.maps.event.addListener(marker_%s, 'click', function() {" % marker.id, 
     19                   '    infowindow_%s.open(map, marker_%s)' % (marker.id, marker.id), 
     20                   '  });', 
     21                   )) 
     22#      shape: shape, 
     23#      shadow: shadow, 
     24 
    125# create initialize method 
    226def initialize_func(js): 
     
    731               '    zoom: %s,' % context.zoom, 
    832               '    center: new google.maps.LatLng(%s, %s),' % (lat, lng), 
    9                '    mapTypeId: google.maps.MapTypeId.%s,' % context.mapType 
     33               '    mapTypeId: google.maps.MapTypeId.%s,' % context.mapType, 
    1034               )) 
    1135 
     
    3357               '  var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);', 
    3458               )) 
     59    add_markers(js, context.objectValues(['GMarker'])) 
     60    js.append('}') 
    3561     
    3662js = ['<script type="text/javascript">'] 
    3763initialize_func(js) 
    38 print "\n".join(js) 
     64js.append('google.maps.event.addDomListener(window, "load", initialize);') 
     65js.append('</script>') 
     66 
     67return "\n".join(js) 
    3968 
    4069# custom marker javascript 
    41 print """ 
    42       url = "%s"; 
    43       var image = new google.maps.MarkerImage(url + '/gmap_marker.png', 
    44         new google.maps.Size(20, 34), 
    45         new google.maps.Point(0,0), 
    46         new google.maps.Point(8,34)); 
    47       var shadow = new google.maps.MarkerImage(url + '/gmap_shadow.png', 
    48         new google.maps.Size(37, 34), 
    49         new google.maps.Point(0,0), 
    50         new google.maps.Point(9, 34)); 
    51       var shape = { 
    52         coord: [1, 1, 1, 20, 18, 20, 18 , 1], 
    53         type: 'poly' 
    54       } 
    55         
     70#print """ 
     71#      url = "%s"; 
     72#      var image = new google.maps.MarkerImage(url + '/gmap_marker.png', 
     73#        new google.maps.Size(20, 34), 
     74#        new google.maps.Point(0,0), 
     75#        new google.maps.Point(8,34)); 
     76#      var shadow = new google.maps.MarkerImage(url + '/gmap_shadow.png', 
     77#        new google.maps.Size(37, 34), 
     78#        new google.maps.Point(0,0), 
     79#        new google.maps.Point(9, 34)); 
     80#      var shape = { 
     81#        coord: [1, 1, 1, 20, 18, 20, 18 , 1], 
     82#        type: 'poly' 
     83#      } 
     84#""" % context.absolute_url() 
    5685 
    57 """ % context.absolute_url() 
    5886 
    59 # marker javascript 
    60 for marker in context.objectValues(['GMarker']): 
    61         lat = marker.point['latitude'] 
    62         lng = marker.point['longitude'] 
    63  
    64         print """ 
    65     var infowindow_%s = new google.maps.InfoWindow({ 
    66       content: '<h1>%s</h1>%s' 
    67     }); 
    68  
    69     var marker_%s = new google.maps.Marker({ 
    70       position: new google.maps.LatLng(%s, %s), 
    71       map: map, 
    72       title: "%s", 
    73       icon: image, 
    74       shape: shape, 
    75       shadow: shadow, 
    76     }); 
    77  
    78     google.maps.event.addListener(marker_%s, 'click', function() { 
    79       infowindow_%s.open(map, marker_%s); 
    80     }); 
    81         """ % (marker.id, marker.Title(), marker.Description(), marker.id, lat, lng, marker.Title(), marker.id, marker.id, marker.id) 
    82  
    83 print """ 
    84   } 
    85   window.onload = initialize; 
    86 </script>""" 
    87  
    88 return printed 
Note: See TracChangeset for help on using the changeset viewer.