Google Street View Macro

Examples: NodeAmnesia
Howto: NodeMap
Download: GoogleStreetView.py

   1 # -*- coding: iso-8859-1 -*-
   2 """
   3     MoinMoin - StreetView Macro
   4 """
   5 from MoinMoin import wikiutil
   6 import re, time
   7 _arg_lat = r'(,\s*lat=(?P<lat>\d+))?'
   8 _arg_lng = r'(,\s*lng=(?P<lng>\d+))?'
   9 _arg_yaw = r'(,\s*yaw=(?P<yaw>\d+))?'
  10 _arg_pitch = r'(,\s*pitch=(?P<pitch>\d+))?'
  11 _arg_zoom = r'(,\s*zoom=(?P<zoom>\d+))?'
  12 _args_re_pattern = r'^(%s)?(%s)?(%s)?(%s)?(%s)?$' % (_arg_lat, _arg_lng, _arg_yaw, _arg_pitch, _arg_zoom)
  13 
  14 def execute(macro, text):
  15     request = macro.request
  16     formatter = macro.formatter
  17     _ = request.getText
  18     args_re = re.compile(_args_re_pattern)
  19     gkey = 'ABQIAAAA7rwZfsyEYZknlS0QWmZI4RQUexDMtc4eREioiWSpX_Y7fpoKghQhUCefr4eJwudYofs3YH9eyyZ3_g'
  20     gkey2 = 'ABQIAAAA7rwZfsyEYZknlS0QWmZI4RRyEbBFkcIcf1l0xXknIhElMWaAuBQ_2YFGNyOJB1ziI9lSzlpCIilgNw'
  21     #gkey = 'ABQIAAAA7rwZfsyEYZknlS0QWmZI4RQb5vo-4Bph0C_4e_e9IEgkaF03hxSX2F6kxStG0StGHPlKCc7vTMZJQQ'
  22     #gkey2 = 'ABQIAAAA7rwZfsyEYZknlS0QWmZI4RQb5vo-4Bph0C_4e_e9IEgkaF03hxSX2F6kxStG0StGHPlKCc7vTMZJQQ'
  23 
  24     if text is None:
  25         lat, lng, yaw, pitch, zoom =\
            45.5495012187901, -122.675131559372, 270, -10, 1
  26     else:
  27         #args = args_re.match(text)
  28         if not text:
  29              return ('<p><strong class="error">%s</strong></p>' % _('Invalid StreetView arguments "%s"!')) % (text,)
  30         else:
  31             macro_args = text.split(",")
  32             try:
  33                 if macro_args[0].strip() != "":
  34                         lat = macro_args[0]
  35                 else:
  36                         lat = '45.5495012187901'
  37             except:
  38                 lat = '45.5495012187901'
  39             try:
  40                 if macro_args[1].strip() != "":
  41                         lng = macro_args[1]
  42                 else:
  43                         lng = '-122.675131559372'
  44             except:
  45                 lng = '-122.675131559372'
  46             try:
  47                 if macro_args[2].strip() != "":
  48                         yaw = macro_args[2]
  49                 else:
  50                         yaw = '0'
  51             except:
  52                 yaw = '0'
  53             try:
  54                 if macro_args[3]:
  55                         pitch = macro_args[3]
  56                 else:
  57                         pitch = '0'
  58             except:
  59                 pitch = '0'
  60             try:
  61                 if macro_args[4].strip() != "":
  62                         zoom = macro_args[4]
  63                 else:
  64                         zoom = '0'
  65             except:
  66                 zoom = '0'
  67             html = '''
  68 <script type="text/javascript">                                                                                                
  69     if( (window.location.href).indexOf("www.") == -1 ) {                                                                           
  70         writeScript("%s");                         
  71     } else {                                                                                                                       
  72         writeScript("%s");}                        
  73 function writeScript(key) {var ret='<'+'script src="http://maps.google.com/maps?file=api&v=2&key='+key+'"'+'type="text/javascript"><'+'/script>';document.write(ret);}
  74 </script>
  75     
  76 <script type="text/javascript">
  77 function addLoadEvent(func) {
  78       var oldonload = window.onload;
  79       if (typeof window.onload != 'function') {
  80         window.onload = func;
  81       }
  82       else {                     
  83         window.onload = function() {
  84             if (oldonload) {
  85                 oldonload();
  86                 }
  87             func();
  88             }
  89         }
  90       }
  91 addLoadEvent(function() {    
  92     var rand = Math.floor(Math.random()*101)
  93     document.getElementById("pano").id="pano" + rand;
  94     var myPano = new GStreetviewPanorama(document.getElementById("pano" + rand));
  95     coords = new GLatLng(%s,%s);
  96     myPOV = {yaw:%s,pitch:%s,zoom:%s};
  97     myPano.setLocationAndPOV(coords, myPOV);
  98 })    
  99 </script>
 100     <div name="pano" id="pano" style="width: 500px; height: 400px;">
 101     </div>
 102     ''' % (gkey, gkey2, lat, lng, yaw, pitch, zoom)
 103     return html
GoogleStreetView.py

Macros/GoogleStreetView (last edited 2008-11-12 05:00:50 by JasonMcArthur)