Changeset 452
- Timestamp:
- 05/25/10 16:57:09 (21 months ago)
- Location:
- trunk
- Files:
-
- 5 edited
-
controllers/markers_controller.php (modified) (1 diff)
-
models/marker.php (modified) (1 diff)
-
views/layouts/gmap.ctp (modified) (1 diff)
-
views/markers/admin_index.ctp (modified) (1 diff)
-
views/markers/display.ctp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/controllers/markers_controller.php
r451 r452 30 30 $this->layout = 'admin'; 31 31 $this->Marker->recursive = 0; 32 $this->paginate['conditions'] = array('user_id'=>$this->Auth->user('id')); 32 33 $this->set('markers', $this->paginate()); 33 34 } -
trunk/models/marker.php
r451 r452 11 11 12 12 class 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 14 28 public $displayField = 'name'; 29 30 15 31 public $validate = array( 16 32 'name' => array('rule' => array('minLength', 4), -
trunk/views/layouts/gmap.ctp
r451 r452 6 6 <title>Google Maps</title> 7 7 <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> 9 9 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 --> 12 12 13 13 <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[ 15 google.load("maps", "3", {other_params:"sensor=false"}); 16 google.load("jquery", "1.3.2"); 17 18 function 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 }); 24 51 } 25 52 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); 53 google.setOnLoadCallback(initialize); 33 54 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 //]]>78 55 </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> 83 58 </body> 84 59 </html> -
trunk/views/markers/admin_index.ctp
r451 r452 3 3 <?php 4 4 echo $this->Html->link(sprintf(__('New %s', true), __('Marker', true)), array('action' => 'edit')); 5 echo $this->Html->link('View all markers', array('action' => 'view'));5 echo $this->Html->link('View all markers', array('controller'=>'','action' => 'view')); 6 6 ?> 7 7 </div> -
trunk/views/markers/display.ctp
r449 r452 15 15 $newnode->setAttribute("lat", $row['Marker']['lat']); 16 16 $newnode->setAttribute("lng", $row['Marker']['lng']); 17 $newnode->setAttribute("user", $row['User']['username']); 17 18 $newnode->setAttribute("type", $row['Marker']['type']); 18 19 endforeach;
Note: See TracChangeset
for help on using the changeset viewer.
