Changeset 452


Ignore:
Timestamp:
05/25/10 16:57:09 (21 months ago)
Author:
aarkerio
Message:

Update Google markers

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/controllers/markers_controller.php

    r451 r452  
    3030  $this->layout = 'admin'; 
    3131  $this->Marker->recursive = 0; 
     32  $this->paginate['conditions'] = array('user_id'=>$this->Auth->user('id')); 
    3233  $this->set('markers', $this->paginate()); 
    3334 } 
  • trunk/models/marker.php

    r451 r452  
    1111 
    1212class Marker extends AppModel { 
    13   public $name = 'Marker'; 
     13 
     14 public $name = 'Marker'; 
     15 
     16/** 
     17 *  CakePHP belongsTo relation 
     18 *  @access public 
     19 *  @var array 
     20 */    
     21  public $belongsTo  = array( 
     22             'User' => array( 
     23                         'className'  => 'User', 
     24                         'foreignkey' => 'user_id', 
     25                         'fields'     => 'username' 
     26                         )); 
     27 
    1428  public $displayField = 'name'; 
     29 
     30 
    1531  public $validate = array( 
    1632                'name' => array('rule'       => array('minLength', 4), 
  • trunk/views/layouts/gmap.ctp

    r451 r452  
    66<title>Google Maps</title> 
    77<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
    8 <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> 
     8<script type="text/javascript" src="http://www.google.com/jsapi"></script>  
    99 
    10  <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjPKkDYTVDZGDWlW2yrngQRS683khtCNerCX0A8OGSN-Hv50GHRRSNxYQrB8Gx4ciUuqyy6DNkow08g" 
    11             type="text/javascript"></script> 
     10 <!-- script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjPKkDYTVDZGDWlW2yrngQRS683khtCNerCX0A8OGSN-Hv50GHRRSNxYQrB8Gx4ciUuqyy6DNkow08g" 
     11            type="text/javascript"></script --> 
    1212 
    1313<script type="text/javascript"> 
    14  //<![CDATA[ 
    15  
    16   function initialize() { 
    17      var latlng = new google.maps.LatLng(19.43430, -99.13264); 
    18      var myOptions = { 
    19      zoom: 8, 
    20      center: latlng, 
    21      mapTypeId: google.maps.MapTypeId.ROADMAP 
    22      }; 
    23      var map = new google.maps.Map(document.getElementById("map"), myOptions); 
     14//<![CDATA[ 
     15google.load("maps", "3",  {other_params:"sensor=false"}); 
     16google.load("jquery", "1.3.2"); 
     17  
     18function initialize() { 
     19    var myLatlng = new google.maps.LatLng(19.43576, -99.14466); 
     20    var myOptions = { 
     21    zoom: 10, 
     22    center: myLatlng, 
     23    mapTypeId: google.maps.MapTypeId.ROADMAP 
     24    } 
     25    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
     26  
     27    // For more information on doing XMLHR with jQuery, see these resources: 
     28    // http://net.tutsplus.com/tutorials/javascript-ajax/use-jquery-to-retrieve-data-from-an-xml-file/ 
     29    // http://marcgrabanski.com/article/jquery-makes-parsing-xml-easy 
     30    jQuery.get("/markers/display", {}, function(data) { 
     31            jQuery(data).find("marker").each(function() { 
     32                    var marker  = jQuery(this); 
     33                    var latlng  = new google.maps.LatLng(parseFloat(marker.attr("lat")), 
     34                                                        parseFloat(marker.attr("lng"))); 
     35                    var name    = marker.attr('name'); 
     36                    var address = marker.attr('address'); 
     37                    var user    = marker.attr('user'); 
     38                    //alert(name); 
     39                    var marker  = new google.maps.Marker({position: latlng, map: map}); 
     40                     
     41                    // create the tooltip and its text 
     42                    var infoWindow = new google.maps.InfoWindow(); 
     43                    var html='<b>'+name+'</b><br />'+address+' <br />Recommended by:<b>'+ user+'</b>'; 
     44                    // add a listener to open the tooltip when a user clicks on one of the markers 
     45                    google.maps.event.addListener(marker, 'click', function() { 
     46                            infoWindow.setContent(html); 
     47                            infoWindow.open(map, marker); 
     48                        }); 
     49                }); 
     50        }); 
    2451 } 
    2552 
    26 var iconBlue = new GIcon();  
    27 iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png'; 
    28 iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png'; 
    29 iconBlue.iconSize = new GSize(12, 20); 
    30 iconBlue.shadowSize = new GSize(22, 20); 
    31 iconBlue.iconAnchor = new GPoint(6, 20); 
    32 iconBlue.infoWindowAnchor = new GPoint(5, 1); 
     53google.setOnLoadCallback(initialize); 
    3354 
    34 var iconRed = new GIcon();  
    35 iconRed.image = 'http://labs.google.com/ridefinder/images/mm_20_red.png'; 
    36 iconRed.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png'; 
    37 iconRed.iconSize = new GSize(12, 20); 
    38 iconRed.shadowSize = new GSize(22, 20); 
    39 iconRed.iconAnchor = new GPoint(6, 20); 
    40 iconRed.infoWindowAnchor = new GPoint(5, 1); 
    41  
    42 var customIcons = []; 
    43 customIcons["restaurant"] = iconBlue; 
    44 customIcons["bar"] = iconRed; 
    45  
    46 function load() { 
    47     if (GBrowserIsCompatible()) { 
    48         var map = new GMap2(document.getElementById("map")); 
    49         map.addControl(new GSmallMapControl()); 
    50         map.addControl(new GMapTypeControl()); 
    51         map.setCenter(new GLatLng(19.43430, -99.13264), 10); 
    52         
    53         GDownloadUrl("/markers/display", function(data) { 
    54                 var xml = GXml.parse(data); 
    55                 var markers = xml.documentElement.getElementsByTagName("marker"); 
    56                 for (var i = 0; i < markers.length; i++) { 
    57                     var name = markers[i].getAttribute("name"); 
    58                     var address = markers[i].getAttribute("address"); 
    59                     var type = markers[i].getAttribute("type"); 
    60                     var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), 
    61                                             parseFloat(markers[i].getAttribute("lng"))); 
    62                     var marker = createMarker(point, name, address, type); 
    63                     map.addOverlay(marker); 
    64                 } 
    65             }); 
    66     } 
    67 } 
    68  
    69 function createMarker(point, name, address, type) { 
    70     var marker = new GMarker(point, customIcons[type]); 
    71     var html = "<b>" + name + "</b> <br/>" + address; 
    72     GEvent.addListener(marker, 'click', function() { 
    73             marker.openInfoWindowHtml(html); 
    74         }); 
    75     return marker; 
    76 } 
    77 //]]> 
    7855</script> 
    79 </head> 
    80 <body onload="initialize()" onunload="GUnload()"> 
    81     <div>Mononeurona::My Places::Google maps API</div> 
    82     <div id="map" style="width: 900px; height: 800px;margin:auto;"></div> 
     56<body><h3>MonoNeurona::Google Maps</h3> 
     57    <div id="map_canvas" style="border: 1px solid black; margin:auto;width:900px; height:800px"></div>  
    8358 </body> 
    8459</html> 
  • trunk/views/markers/admin_index.ctp

    r451 r452  
    33<?php  
    44 echo $this->Html->link(sprintf(__('New %s', true), __('Marker', true)), array('action' => 'edit'));  
    5  echo $this->Html->link('View all markers', array('action' => 'view')); 
     5echo $this->Html->link('View all markers', array('controller'=>'','action' => 'view')); 
    66?> 
    77</div> 
  • trunk/views/markers/display.ctp

    r449 r452  
    1515    $newnode->setAttribute("lat", $row['Marker']['lat']); 
    1616    $newnode->setAttribute("lng", $row['Marker']['lng']); 
     17    $newnode->setAttribute("user", $row['User']['username']); 
    1718    $newnode->setAttribute("type", $row['Marker']['type']); 
    1819endforeach; 
Note: See TracChangeset for help on using the changeset viewer.