[Linpha-cvs] SF.net SVN: linpha: [4923] trunk/linpha2/lib/plugins/maps/class.googlemaps. YUI.js
Status: Inactive
Brought to you by:
bzrudi
|
From: <fan...@us...> - 2008-04-26 11:11:00
|
Revision: 4923
http://linpha.svn.sourceforge.net/linpha/?rev=4923&view=rev
Author: fangehrn
Date: 2008-04-26 04:10:52 -0700 (Sat, 26 Apr 2008)
Log Message:
-----------
Added Paths:
-----------
trunk/linpha2/lib/plugins/maps/class.googlemaps.YUI.js
Copied: trunk/linpha2/lib/plugins/maps/class.googlemaps.YUI.js (from rev 4922, trunk/linpha2/lib/plugins/maps/class.googlemaps.js)
===================================================================
--- trunk/linpha2/lib/plugins/maps/class.googlemaps.YUI.js (rev 0)
+++ trunk/linpha2/lib/plugins/maps/class.googlemaps.YUI.js 2008-04-26 11:10:52 UTC (rev 4923)
@@ -0,0 +1,270 @@
+
+var LinMapObject = Class.create();
+var myLinMapObject;
+
+var googlemap = false; // the main google map object
+var geocoder = false; // the main google geocoder object
+
+LinMapObject.prototype =
+{
+ /**
+ * initialize()
+ * Constructor runs on completion of the DOM loading.
+ */
+ initialize: function()
+ {
+ this.bounds = false;
+ },
+
+ createMap: function()
+ {
+ var mapType = 'hybrid'; // 'normal', 'satellite'
+ var mapLargeControl = 1;
+ var mapMouseZoom = 1;
+ var mapOverview = 1;
+ var mapMinZoom = 1;
+ var mapMaxZoom = 23;
+ var mapDefaultZoom = 4;
+ var mapDefaultLat = 49.9801;
+ var mapDefaultLng = 10.8731;
+
+ geocoder = new GClientGeocoder();
+ googlemap = new google.maps.Map2(document.getElementById("linDivMapObject"));
+
+ googlemap.setCenter(new google.maps.LatLng(mapDefaultLat, mapDefaultLng), mapDefaultZoom);
+
+ switch(mapType) {
+ case 'normal':
+ googlemap.setMapType(G_NORMAL_MAP);
+ break;
+ case 'satellite':
+ googlemap.setMapType(G_SATELLITE_MAP);
+ break;
+ case 'hybrid':
+ googlemap.setMapType(G_HYBRID_MAP);
+ break;
+ }
+
+
+ if(mapMouseZoom) {
+ googlemap.enableScrollWheelZoom();
+ var mapdiv = document.getElementById("linDivMapObject");
+ GEvent.addDomListener(mapdiv, "DOMMouseScroll", linMapWheelevent);
+ mapdiv.onmousewheel = linMapWheelevent;
+ }
+ if(mapOverview) {
+ googlemap.addControl(new GOverviewMapControl());
+ }
+
+ if(mapLargeControl) {
+ googlemap.addControl(new GLargeMapControl());
+ } else {
+ googlemap.addControl(new GSmallMapControl());
+ }
+
+ googlemap.addControl(new GMapTypeControl());
+
+ var mycontrol = new GMapTypeControl();
+ googlemap.addControl(mycontrol);
+ new GKeyboardHandler(googlemap);
+ googlemap.enableDoubleClickZoom();
+ googlemap.enableContinuousZoom();
+
+
+ // prevent memory leaks in internet explorer
+ Event.observe(window, 'unload', GUnload, false);
+ GEvent.addListener(googlemap, "zoomend", myLinMaps.updateEditMarker);
+ },
+
+ initBounds: function()
+ {
+ this.bounds = new GLatLngBounds();
+ },
+ updateCenter: function( zoom )
+ {
+ if( zoom == 0 ) {
+ zoom = googlemap.getBoundsZoomLevel(this.bounds);
+ }
+
+ googlemap.setCenter(this.bounds.getCenter(), zoom);
+ },
+
+ createMarker: function( markerNode, markerType, openMarker )
+ {
+ /*var icon = new GIcon();
+ icon.image = image[0];
+ icon.iconSize = new GSize(image[1], image[2]);
+ subt = image[2] / 100 * 11;
+ subt = Math.ceil(subt);
+ var anchor = image[2] - subt;
+ icon.iconAnchor= new GPoint(10, anchor);
+ //{icon: icon, draggable: true}*/
+
+ /**
+ *
+ http://www.google.com/intl/de_ALL/mapfiles/marker.png
+ http://www.google.com/intl/de_ALL/mapfiles/shadow50.png
+
+ http://maps.google.com/mapfiles/ms/micons/red.png
+ http://maps.google.com/mapfiles/ms/micons/blue.png
+ http://maps.google.com/mapfiles/ms/micons/green.png
+ http://maps.google.com/mapfiles/ms/micons/lightblue.png
+ http://maps.google.com/mapfiles/ms/micons/yellow.png
+ http://maps.google.com/mapfiles/ms/micons/purple.png
+ http://maps.google.com/mapfiles/ms/micons/pink.png
+
+ http://maps.google.com/mapfiles/ms/micons/red-dot.png
+ http://maps.google.com/mapfiles/ms/micons/blue-dot.png
+ http://maps.google.com/mapfiles/ms/micons/green-dot.png
+ http://maps.google.com/mapfiles/ms/micons/ltblue-dot.png
+ http://maps.google.com/mapfiles/ms/micons/yellow-dot.png
+ http://maps.google.com/mapfiles/ms/micons/purple-dot.png
+ http://maps.google.com/mapfiles/ms/micons/pink-dot.png
+
+ http://maps.google.com/mapfiles/ms/micons/pushpin_shadow.png
+ http://maps.google.com/mapfiles/ms/micons/blue-pushpin.png
+ http://maps.google.com/mapfiles/ms/micons/red-pushpin.png
+ http://maps.google.com/mapfiles/ms/micons/grn-pushpin.png
+ http://maps.google.com/mapfiles/ms/micons/ltblu-pushpin.png
+ http://maps.google.com/mapfiles/ms/micons/ylw-pushpin.png
+ http://maps.google.com/mapfiles/ms/micons/purple-pushpin.png
+ http://maps.google.com/mapfiles/ms/micons/pink-pushpin.png
+ *
+ */
+
+ //alert( markerNode.id + ' ' + markerNode.name + ' ' + markerNode.lat + ' ' + markerNode.lon);
+
+ var point = new GLatLng( markerNode.lat, markerNode.lon);
+
+ switch(markerNode.type) {
+ case 'album':
+ var icon = new GIcon(G_DEFAULT_ICON, "http://maps.google.com/mapfiles/ms/micons/blue-dot.png")
+ break;
+ case 'marker':
+ var icon = new GIcon(G_DEFAULT_ICON, "http://maps.google.com/mapfiles/ms/micons/purple-dot.png")
+ break;
+ case 'albumWithImg':
+ var icon = new GIcon(G_DEFAULT_ICON, "http://maps.google.com/mapfiles/ms/micons/green-dot.png")
+ break;
+ case 'images':
+ var icon = new GIcon(G_DEFAULT_ICON, "http://maps.google.com/mapfiles/ms/micons/yellow-dot.png")
+ break;
+ default:
+ var icon = new GIcon(G_DEFAULT_ICON, "http://maps.google.com/mapfiles/ms/micons/blue-dot.png")
+ break;
+ }
+ icon.iconSize = new GSize(32, 32);
+ var marker = new GMarker(point, icon);
+
+ GEvent.addListener(marker, "click", function() {
+ marker.openInfoWindowHtml( linGetMarkerHtml(markerNode) );
+ });
+
+ googlemap.addOverlay( marker );
+
+ this.bounds.extend(point);
+
+ if( openMarker ) {
+ GEvent.trigger(marker, 'click');
+ }
+
+ return marker;
+ },
+
+ createEditMarker: function( center )
+ {
+ myLinMaps.editMarker = new GMarker(center, {draggable: true});
+
+ var inputForm = document.createElement("form");
+ inputForm.setAttribute("action","");
+ inputForm.setAttribute("method","POST");
+ inputForm.setAttribute("id","linFormEditMarker");
+ inputForm.onsubmit = function() {myLinGlobal.AjaxPost(myLinMaps.ajaxUrl, Form.serialize(this),myLinMaps.saveMarker); return false;};
+ inputForm.innerHTML = $('linDivEditMarker').innerHTML;
+
+ myLinMaps.editMarker.bindInfoWindow( inputForm ); // The marker.bindInfoWindow*() methods create GEvent listeners that perform the corresponding marker.openInfoWindow*() calls when the marker is clicked.
+
+ GEvent.addListener(myLinMaps.editMarker, "drag", function() {
+ myLinMaps.updateEditMarker();
+ });
+
+ /*GEvent.addListener(marker, "dragstart", function() {
+ map.closeInfoWindow();
+ });*/
+
+ GEvent.addListener(myLinMaps.editMarker, "dragend", function() {
+ GEvent.trigger(myLinMaps.editMarker, 'click');
+ });
+
+ googlemap.addOverlay( myLinMaps.editMarker );
+ GEvent.trigger(myLinMaps.editMarker, 'click');
+ myLinMaps.updateEditMarker();
+ },
+
+ closeMarkerWindows: function() {
+ googlemap.closeInfoWindow();
+ },
+
+ removeMarker: function( marker)
+ {
+ googlemap.removeOverlay( marker );
+ },
+
+ openImage: function(imgIndex)
+ {
+ GEvent.trigger(myLinMaps.imagesObj[imgIndex], 'click');
+ },
+
+ checkResize: function()
+ {
+ //alert("typeof googlemap.checkResize: " + typeof googlemap.checkResize );
+ if( typeof googlemap.checkResize != "undefined" ) {
+ googlemap.checkResize();
+ }
+ },
+
+ geocodeAddress: function(address)
+ {
+ if( myLinMaps.editMarker )
+ {
+ googlemap.removeOverlay( myLinMaps.editMarker );
+ }
+
+ if( address == '' )
+ {
+ this.createEditMarker( googlemap.getCenter() );
+ }
+ else
+ {
+ geocoder.getLatLng(
+ address,
+ function(point)
+ {
+ if(!point) {
+ alert(address + " not found");
+ } else {
+ googlemap.setCenter(point, myLinMaps.defaultMarkerZoom);
+ myLinMapObject.createEditMarker( point );
+ $('linInputMarkerName').value = address;
+ }
+ }
+ );
+ }
+ }
+}
+
+
+function linMapWheelevent(e)
+{
+ if (!e) e = window.event;
+ if (e.preventDefault) e.preventDefault();
+ e.returnValue = false;
+}
+
+function linMapObjectInit()
+{
+ myLinMapObject = new LinMapObject();
+
+ google.load("maps", "2.x");
+ google.setOnLoadCallback(myLinMapObject.createMap);
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|