[Linpha-cvs] SF.net SVN: linpha: [4762] trunk/linpha2
Status: Inactive
Brought to you by:
bzrudi
From: <fan...@us...> - 2007-08-18 16:28:19
|
Revision: 4762 http://linpha.svn.sourceforge.net/linpha/?rev=4762&view=rev Author: fangehrn Date: 2007-08-18 09:28:16 -0700 (Sat, 18 Aug 2007) Log Message: ----------- 2007-08-18 flo * adding google maps support - added gmapper class (http://gmapper.ajax-info.de/) - added basic map at ../linpha2/?&linCat=map Modified Paths: -------------- trunk/linpha2/ChangeLog trunk/linpha2/index.php trunk/linpha2/lib/classes/linpha.class.php trunk/linpha2/lib/include/common.php Added Paths: ----------- trunk/linpha2/lib/plugins/maps/gmapper1/ trunk/linpha2/lib/plugins/maps/gmapper1/143.png trunk/linpha2/lib/plugins/maps/gmapper1/bodyjs.clean.js trunk/linpha2/lib/plugins/maps/gmapper1/bodyjs.js trunk/linpha2/lib/plugins/maps/gmapper1/class.gmapper.php trunk/linpha2/lib/plugins/maps/gmapper1/dash.png trunk/linpha2/lib/plugins/maps/gmapper1/docs/ trunk/linpha2/lib/plugins/maps/gmapper1/docs/gmap.html trunk/linpha2/lib/plugins/maps/gmapper1/docs/stylesheet.css trunk/linpha2/lib/plugins/maps/gmapper1/gelb.png trunk/linpha2/lib/plugins/maps/gmapper1/gruen.png trunk/linpha2/lib/plugins/maps/gmapper1/img/ trunk/linpha2/lib/plugins/maps/gmapper1/img/dir_105.png trunk/linpha2/lib/plugins/maps/gmapper1/img/dir_111.png trunk/linpha2/lib/plugins/maps/gmapper1/img/dir_30.png trunk/linpha2/lib/plugins/maps/gmapper1/img/dir_45.png trunk/linpha2/lib/plugins/maps/gmapper1/img/dir_60.png trunk/linpha2/lib/plugins/maps/gmapper1/img/dir_72.png trunk/linpha2/lib/plugins/maps/gmapper1/img/dir_75.png trunk/linpha2/lib/plugins/maps/gmapper1/img/dir_90.png trunk/linpha2/lib/plugins/maps/gmapper1/img/dir_93.png trunk/linpha2/lib/plugins/maps/gmapper1/rot.png trunk/linpha2/lib/plugins/maps/module.exampleMap.php trunk/linpha2/templates/default/map.head.php Modified: trunk/linpha2/ChangeLog =================================================================== --- trunk/linpha2/ChangeLog 2007-08-09 08:34:51 UTC (rev 4761) +++ trunk/linpha2/ChangeLog 2007-08-18 16:28:16 UTC (rev 4762) @@ -1,3 +1,8 @@ +2007-08-18 flo + * adding google maps support + - added gmapper class (http://gmapper.ajax-info.de/) + - added basic map at ../linpha2/?&linCat=map + 2007-07-13 bzrudi * Major redesign and cleanups in Installer and a lot of eyecandy. Please test and report any issues, errors, warnings, layout quirks! Modified: trunk/linpha2/index.php =================================================================== --- trunk/linpha2/index.php 2007-08-09 08:34:51 UTC (rev 4761) +++ trunk/linpha2/index.php 2007-08-18 16:28:16 UTC (rev 4762) @@ -67,6 +67,9 @@ case 'download': require_once(LINPHA_DIR.'/lib/modules/module.download.php'); break; +case 'map': + require_once(LINPHA_DIR.'/lib/plugins/maps/module.exampleMap.php'); + break; case 'empty': require_once(LINPHA_DIR.'/lib/modules/module.empty.php'); break; Modified: trunk/linpha2/lib/classes/linpha.class.php =================================================================== --- trunk/linpha2/lib/classes/linpha.class.php 2007-08-09 08:34:51 UTC (rev 4761) +++ trunk/linpha2/lib/classes/linpha.class.php 2007-08-18 16:28:16 UTC (rev 4762) @@ -45,6 +45,15 @@ /** * some defines + * + * LINPHA_DIR is used in PHP contex to include other php files + * LINPHA_LINK is used in HTML contex for URLs + * LINPHA_CLIENT is used in HTML context for images and javascript includes + * + * we have to difference LINPHA_LINK and LINPHA_CLIENT because LINPHA_LINK does not + * point always to the linpha directory, e.g. when linpha is included in another + * website + * */ if(!defined('LINPHA_LINK')) { Modified: trunk/linpha2/lib/include/common.php =================================================================== --- trunk/linpha2/lib/include/common.php 2007-08-09 08:34:51 UTC (rev 4761) +++ trunk/linpha2/lib/include/common.php 2007-08-18 16:28:16 UTC (rev 4762) @@ -11,7 +11,7 @@ * - lib/include/calendar.php, lib/lang/language.php, * - install/index.php, install/step* */ - define('LINPHA_VERSION','2.0 alpha 1'); + define('LINPHA_VERSION','2.0 alpha 2'); /** * Magic Quotes stuff Added: trunk/linpha2/lib/plugins/maps/gmapper1/143.png =================================================================== (Binary files differ) Property changes on: trunk/linpha2/lib/plugins/maps/gmapper1/143.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/linpha2/lib/plugins/maps/gmapper1/bodyjs.clean.js =================================================================== --- trunk/linpha2/lib/plugins/maps/gmapper1/bodyjs.clean.js (rev 0) +++ trunk/linpha2/lib/plugins/maps/gmapper1/bodyjs.clean.js 2007-08-18 16:28:16 UTC (rev 4762) @@ -0,0 +1,180 @@ +function createMarker(point, image) +{ + 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} + var marker = new GMarker(point,icon); + return marker; +} + +function createMapMarker(point,image) +{ + 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); + var infoanchor = image[2] / 3; + infoanchor = Math.floor(infoanchor); + icon.infoWindowAnchor = new GPoint(infoanchor, 2); + var marker = new GMarker(point,icon); + GEvent.addListener(marker, "click", function() {map.showMapBlowup(marker.getPoint());}); + return marker; +} + + +function createTabMarker(point, tabs,image) +{ + 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); + var infoanchor = image[2] / 3; + icon.infoWindowAnchor = new GPoint(infoanchor, 2); + var marker = new GMarker(point,icon); + GEvent.addListener(marker, "click", function() { + marker.openInfoWindowTabsHtml(tabs); + }); + return marker; +} + +function createLinkMarker(point, link,image) +{ + 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); + var infoanchor = image[2] / 3; + icon.infoWindowAnchor = new GPoint(infoanchor, 2); + var marker = new GMarker(point,icon); + + GEvent.addListener(marker, "click", function() { + window.location.href = link; + }); + return marker; +} + +function createOtherMarker(point, number,image) +{ + 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); + var infoanchor = image[2] / 3; + infoanchor = Math.floor(infoanchor); + icon.infoWindowAnchor = new GPoint(infoanchor, 2); + var marker = new GMarker(point,icon); + var html = number; + GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(html);}); + return marker; +} + + var arrowIcon = new GIcon(); + arrowIcon.iconSize = new GSize(24,24); + arrowIcon.shadowSize = new GSize(1,1); + arrowIcon.iconAnchor = new GPoint(12,12); + arrowIcon.infoWindowAnchor = new GPoint(0,0); + var degreesPerRadian = 180.0 / Math.PI; + function bearing( from, to ) { + var lat1 = from.latRadians(); + var lon1 = from.lngRadians(); + var lat2 = to.latRadians(); + var lon2 = to.lngRadians(); + + var angle = - Math.atan2( Math.sin( lon1 - lon2 ) * Math.cos( lat2 ), Math.cos( lat1 ) * Math.sin( lat2 ) - Math.sin( lat1 ) * Math.cos( lat2 ) * Math.cos( lon1 - lon2 ) ); + if ( angle < 0.0 ) + angle += Math.PI * 2.0; + + angle = angle * degreesPerRadian; + angle = angle.toFixed(1); + + return angle; + } + + function arrowHead(points) { + var p1=points[points.length-1]; + var p2=points[points.length-2]; + var dir = bearing(p2,p1); + var dir = Math.round(dir/3) * 3; + while (dir >= 120) {dir -= 120;} + arrowIcon.image = "/img/dir_"+dir+".png"; + map.addOverlay(new GMarker(p1, arrowIcon)); + } + + function midArrows(points) { + for (var i=1; i < points.length-1; i++) { + var p1=points[i-1]; + var p2=points[i+1]; + var dir = bearing(p1,p2); + + var dir = Math.round(dir/3) * 3; + while (dir >= 120) {dir -= 120;} + arrowIcon.image = "/img/dir_"+dir+".png"; + map.addOverlay(new GMarker(points[i], arrowIcon)); + } + } + + function geocodeAddress(address,typ,marker,zoom) { + geocoder.getLatLng( + address, + function(point) { + if (!point) { + alert(address + " nicht gefunden"); + } else { + var lat = point.lat(); + var lng = point.lng(); + map.setCenter(point,zoom); + if(typ == "otherMarker") + { + marker = createOtherMarker(point,address,marker); + } + else if(typ == "marker") + { + marker = createMarker(point,marker); + } + else if(typ == "mapMarker") + { + marker = createMapMarker(point,marker); + } + map.addOverlay(marker); + } + } + ); +} + + function getAdress() + { + var adress = document.getElementById('adresse').value; + return adress; + } + + function tilechk() + { + paragraphs = map.getContainer().getElementsByTagName('p').length; + if(paragraphs>4) + { + map.zoomOut(false,true); + } + } + function wheelevent(e) + { + if (!e) e = window.event; + if (e.preventDefault) e.preventDefault(); + e.returnValue = false; + } \ No newline at end of file Added: trunk/linpha2/lib/plugins/maps/gmapper1/bodyjs.js =================================================================== --- trunk/linpha2/lib/plugins/maps/gmapper1/bodyjs.js (rev 0) +++ trunk/linpha2/lib/plugins/maps/gmapper1/bodyjs.js 2007-08-18 16:28:16 UTC (rev 4762) @@ -0,0 +1 @@ +function createMarker(_1,_2){var _3=new GIcon();_3.image=_2[0];_3.iconSize=new GSize(_2[1],_2[2]);subt=_2[2]/100*11;subt=Math.ceil(subt);var _4=_2[2]-subt;_3.iconAnchor=new GPoint(10,_4);var _5=new GMarker(_1,_3);return _5;}function createMapMarker(_6,_7){var _8=new GIcon();_8.image=_7[0];_8.iconSize=new GSize(_7[1],_7[2]);subt=_7[2]/100*11;subt=Math.ceil(subt);var _9=_7[2]-subt;_8.iconAnchor=new GPoint(10,_9);var _a=_7[2]/3;_a=Math.floor(_a);_8.infoWindowAnchor=new GPoint(_a,2);var _b=new GMarker(_6,_8);GEvent.addListener(_b,"click",function(){map.showMapBlowup(_b.getPoint());});return _b;}function createTabMarker(_c,_d,_e){var _f=new GIcon();_f.image=_e[0];_f.iconSize=new GSize(_e[1],_e[2]);subt=_e[2]/100*11;subt=Math.ceil(subt);var _10=_e[2]-subt;_f.iconAnchor=new GPoint(10,_10);var _11=_e[2]/3;_f.infoWindowAnchor=new GPoint(_11,2);var _12=new GMarker(_c,_f);GEvent.addListener(_12,"click",function(){_12.openInfoWindowTabsHtml(_d);});return _12;}function createLinkMarker(_13,_14,_15){var _16=new GIcon();_16.image=_15[0];_16.iconSize=new GSize(_15[1],_15[2]);subt=_15[2]/100*11;subt=Math.ceil(subt);var _17=_15[2]-subt;_16.iconAnchor=new GPoint(10,_17);var _18=_15[2]/3;_16.infoWindowAnchor=new GPoint(_18,2);var _19=new GMarker(_13,_16);GEvent.addListener(_19,"click",function(){window.location.href=_14;});return _19;}function createOtherMarker(_1a,_1b,_1c){var _1d=new GIcon();_1d.image=_1c[0];_1d.iconSize=new GSize(_1c[1],_1c[2]);subt=_1c[2]/100*11;subt=Math.ceil(subt);var _1e=_1c[2]-subt;_1d.iconAnchor=new GPoint(10,_1e);var _1f=_1c[2]/3;_1f=Math.floor(_1f);_1d.infoWindowAnchor=new GPoint(_1f,2);var _20=new GMarker(_1a,_1d);var _21=_1b;GEvent.addListener(_20,"click",function(){_20.openInfoWindowHtml(_21);});return _20;}var arrowIcon=new GIcon();arrowIcon.iconSize=new GSize(24,24);arrowIcon.shadowSize=new GSize(1,1);arrowIcon.iconAnchor=new GPoint(12,12);arrowIcon.infoWindowAnchor=new GPoint(0,0);var degreesPerRadian=180/Math.PI;function bearing(_22,to){var _24=_22.latRadians();var _25=_22.lngRadians();var _26=to.latRadians();var _27=to.lngRadians();var _28=-Math.atan2(Math.sin(_25-_27)*Math.cos(_26),Math.cos(_24)*Math.sin(_26)-Math.sin(_24)*Math.cos(_26)*Math.cos(_25-_27));if(_28<0){_28+=Math.PI*2;}_28=_28*degreesPerRadian;_28=_28.toFixed(1);return _28;}function arrowHead(_29){var p1=_29[_29.length-1];var p2=_29[_29.length-2];var dir=bearing(p2,p1);var dir=Math.round(dir/3)*3;while(dir>=120){dir-=120;}arrowIcon.image="/img/dir_"+dir+".png";map.addOverlay(new GMarker(p1,arrowIcon));}function midArrows(_2e){for(var i=1;i<_2e.length-1;i++){var p1=_2e[i-1];var p2=_2e[i+1];var dir=bearing(p1,p2);var dir=Math.round(dir/3)*3;while(dir>=120){dir-=120;}arrowIcon.image="/img/dir_"+dir+".png";map.addOverlay(new GMarker(_2e[i],arrowIcon));}}function geocodeAddress(_34,typ,_36,_37){geocoder.getLatLng(_34,function(_38){if(!_38){alert(_34+" nicht gefunden");}else{var lat=_38.lat();var lng=_38.lng();map.setCenter(_38,_37);if(typ=="otherMarker"){_36=createOtherMarker(_38,_34,_36);}else{if(typ=="marker"){_36=createMarker(_38,_36);}else{if(typ=="mapMarker"){_36=createMapMarker(_38,_36);}}}map.addOverlay(_36);}});}function getAdress(){var _3b=document.getElementById("adresse").value;return _3b;}function tilechk(){paragraphs=map.getContainer().getElementsByTagName("p").length;if(paragraphs>4){map.zoomOut(false,true);}}function wheelevent(e){if(!e){e=window.event;}if(e.preventDefault){e.preventDefault();}e.returnValue=false;} \ No newline at end of file Added: trunk/linpha2/lib/plugins/maps/gmapper1/class.gmapper.php =================================================================== --- trunk/linpha2/lib/plugins/maps/gmapper1/class.gmapper.php (rev 0) +++ trunk/linpha2/lib/plugins/maps/gmapper1/class.gmapper.php 2007-08-18 16:28:16 UTC (rev 4762) @@ -0,0 +1,745 @@ +<?php +/** + * + * @author Philipp Kiszka <in...@o-...> + * @name Gmapper + * @version 1.0 + * @link http://gmapper.ajax-info.de + * @license http://opensource.org/licenses/gpl-license.php GNU Public License + */ +class gmap { + // Google Maps API Key + var $key; + /** + * Der Konstruktor nimmt den Google Maps API Key als Parameter entgegen. + * Dies ist die empfohlene Methode, den API Key einzubinden. + * + * @param string $mapkey Google Maps API Key + */ + function gmap($mapkey = "") + { + $this->key = $mapkey; + } + /** + * Erzeugt JS Code im HEAD Bereich der Seite. + * DEPRECATED: + * API Key sollte jetzt im Konstruktor der Klasse \xFCbergeben werden. + * Beispiel: + * $karte = new gmap("API KEY"); + * + * @param string $key Google Maps API Key + * @return bool + */ + function headjs($key = "") + { + if (!$key) { + $key = $this->key; + } + echo "<script src=\"http://maps.google.com/maps?file=api&v=2&key=$key\" type=\"text/javascript\" language=\"javascript\"></script>\n + <style type=\"text/css\">\n + v\:* {\n + behavior:url(#default#VML);\n + }\n + </style>"; + if ($key) { + return true; + } else { + return false; + } + } + + /** + * Platziert die Karte + * + * @param int $width Breite der Karte + * @param int $height H\xF6he der Karte + * @return bool + */ + function mapdiv($height, $width) + { + $width = $width . "px"; + $height = $height . "px"; + echo "<div id = \"gmapper_map\" style = \"width:$width;height:$height;\" ></div>"; + if ($height and $width) { + return true; + } else { + return false; + } + } + + /** + * Erzeugt die Kartendarstellung + * + * @param int $zoom Initiale Zoomstufe + * @param int $lat Initialer Breitengrad + * @param int $lng Initialer L\xE4ngengrad + * @param string $typ Kartentyp (normal,satellit,hybrid) Default: normal + * @param int $min_zoom Minimal m\xF6gliche Zoomstufe + * @param int $max_zoom Maximal M\xF6gliche Zoomstufe + * @param string $navcontrol Typ der Kartennavigation (small,large) Default: large + * @param int $overview Schaltet die \xDCbersichtskarte an oder aus. + * @param int $mousezoom Schaltet den Mouserad Zoom an oder aus. + * @param int $tilecheck Schaltet den Check nach Tile-Grafiken beim Zoomen an und aus (Default: an) + * @return bool + */ + function map($zoom, $lat, $lng, $typ = "normal", $min_zoom = 0, $max_zoom = 0, $navcontrol = "large", $overview = 0, $mousezoom = 1, $tilecheck = 1) + { + $width = $width . "px"; + $height = $height . "px"; + $lat2 = $lat - 0.1; + if ($typ == "normal") { + $typstr = "G_NORMAL_MAP"; + } elseif ($typ == "satellit") { + $typstr = "G_SATELLITE_MAP"; + } elseif ($typ == "hybrid") { + $typstr = "G_HYBRID_MAP"; + } + if ($navcontrol == "large") { + $controlstr = "GLargeMapControl()"; + } elseif ($navcontrol == "small") { + $controlstr = "GSmallMapControl()"; + } + echo "<script type=\"text/javascript\">\n + //<![CDATA[\n + var map = new GMap2(document.getElementById(\"gmapper_map\"));\n + var geocoder = new GClientGeocoder();\n"; + if ($mousezoom) { + echo "map.enableScrollWheelZoom();\n + var mapdiv = document.getElementById(\"gmapper_map\");\n + GEvent.addDomListener(mapdiv, \"DOMMouseScroll\", wheelevent);\n + mapdiv.onmousewheel = wheelevent;\n "; + } + if ($overview) { + echo "map.addControl(new GOverviewMapControl());\n"; + } + echo " + map.addControl(new $controlstr);\n + map.addControl(new GMapTypeControl());\n"; + if ($min_zoom > 0 and $max_zoom > 0) { + echo " + var mt = map.getMapTypes(); + for (var i=0; i<mt.length; i++) { + mt[i].getMinimumResolution = function() {return $min_zoom;} + mt[i].getMaximumResolution = function() {return $max_zoom;} + }"; + } + echo " + var mycontrol = new GMapTypeControl(); + map.addControl(mycontrol);\n + map.setCenter(new GLatLng( $lat,$lng),$zoom);\n + new GKeyboardHandler(map);\n + map.enableDoubleClickZoom();\n + map.enableContinuousZoom();\n + map.setMapType($typstr); + + \n"; + if ($tilecheck == 1) { + echo "var interval = setInterval(\"tilechk()\",500);"; + } + echo " + //]]>\n + </script>"; + return true; + } + + /** + * Zeigt den Kartenmasstab an. + * + * @return bool + */ + function showScale() + { + echo "map.addControl(new GScaleControl());\n"; + return true; + } + /** + * Sperrt das Drag / Pan der Karte. Die Karte wird so auf den Viewport fixiert. + * + * @return bool + */ + + function lockMap() + { + echo "map.disableDragging(); map.hideControls();\n"; + return true; + } + /** + * Erzeugt den JS Code im BODY der Seite. + * + * @return bool + */ + function bodyjs() + { + echo " + <script type=\"text/javascript\" src = \"bodyjs.js\"></script>\n"; + return true; + } + + /** + * Erzeugt ben\xF6tigten JS Code im Seitenfuss + * + * @return bool + */ + function footjs() + { + echo "//]]>\n</script>"; + return true; + } + /** + * Ende des Markerbereichs + * + * @return bool + */ + function markend() + { + echo "//]]>\n</script>"; + return true; + } + /** + * Start des Markerbereichs + * + * @return bool + */ + function markstart() + { + echo "<script type=\"text/javascript\">\n + //<![CDATA[\n"; + return true; + } + /** + * Erzeugt einen einfachen Marker. + * + * @param int $lat Breitengrad des Markers + * @param int $lng L\xE4ngengrad des Markers + * @param string $img Steuerung der Grafik + * @return bool + */ + function marker($lat, $lng, $img = "143.png") + { + if ($lat and $lng) { + $dims = getimagesize($img); + echo "var image = new Array(\"$img\",$dims[0],$dims[1]);\n"; + echo "var point = new GLatLng(\"$lat\",\"$lng\");\n"; + echo "var marker = createMarker(point, image);\n"; + echo "var to = point;\n"; + echo "map.addOverlay(marker);\n"; + echo "\n"; + return true; + } else { + return false; + } + } + /** + * Erzeugt einen Marker mit Infopopup und verschiedenen Grafiken + * + * @param int $lat Breitengrad des Markers + * @param int $lng L\xE4ngengrad des Markers + * @param string $html HTML Code f\xFCr das Infopopup + * @param string $img Steuerung der Grafik + * @return bool + */ + function otherMarker($lat, $lng, $html = "", $img = "143.png") + { + $dims = getimagesize($img); + if ($lat and $lng) { + echo "var image = new Array(\"$img\",$dims[0],$dims[1]);\n"; + echo "var point = new GLatLng(\"$lat\",\"$lng\");\n"; + echo "var marker = createOtherMarker(point, '$html',image);\n"; + + echo "map.addOverlay(marker);\n"; + echo "\n"; + return true; + } else { + return false; + } + } + /** + * Erzeugt einen Marker mit mehreren Tabs im Infopopup + * + * @param int $lat Breitengrad des Markers + * @param int $lng L\xE4ngengrad des Markers + * @param array $tabs Merhdimensionales Array mit den einzelnen Tabs + * @param string $img Steuerung der Grafik + * @return bool + */ + function tabMarker($lat, $lng, $tabs, $img = "143.png") + { + if ($lat and $lng) { + $dims = getimagesize($img); + echo "var image = new Array(\"$img\",$dims[0],$dims[1]);\n"; + echo "var infoTabs = [\n"; + foreach($tabs as $tab) { + $str .= " + new GInfoWindowTab(\"$tab[0]\", \"$tab[1]\"),\n"; + } + $str = substr($str, 0, strlen($str)-2); + echo $str; + echo "\n];\n"; + echo "var point = new GLatLng(\"$lat\",\"$lng\");\n"; + echo "var marker = createTabMarker(point, infoTabs,image);\n"; + echo "map.addOverlay(marker);\n"; + echo "\n"; + return true; + } else { + return false; + } + } + /** + * Erzeugt einen Marker der auf den in $link angegeben URL verweist. + * + * @param int $lat Breitengrad des Markers + * @param int $lng L\xE4ngengrad des Markers + * @param string $link Merhdimensionales Array mit den einzelnen Tabs + * @param string $img Steuerung der Grafik + * @return bool + */ + function linkMarker($lat, $lng, $link, $img = "143.png") + { + if ($lat and $lng) { + $dims = getimagesize($img); + echo "var image = new Array(\"$img\",$dims[0],$dims[1]);\n"; + echo "var point = new GLatLng(\"$lat\",\"$lng\");\n"; + echo "var marker = createLinkMarker(point, '$link',image);\n"; + echo "map.addOverlay(marker);\n"; + echo "\n"; + return true; + } else { + return false; + } + } + /** + * Erzeugt einen Marker dessen Infopopup eine Detailkarte enth\xE4lt + * + * @param int $lat Breitengrad des Markers + * @param int $lng L\xE4ngengrad des Markers + * @param string $img Steuerung der Grafik + * @return bool + */ + function mapMarker($lat, $lng, $img = "143.png") + { + if ($lat and $lng) { + $dims = getimagesize($img); + echo "var image = new Array(\"$img\",$dims[0],$dims[1]);\n"; + echo "var point = new GLatLng(\"$lat\",\"$lng\");\n"; + echo "var marker = createMapMarker(point,image);\n"; + echo "map.addOverlay(marker);\n"; + echo "\n"; + return true; + } else { + return false; + } + } + /** + * Erzeugt ein Geocoding Request und gibt eine Polyline, sowie Ortsliste zur\xFCck + * + * @param string $start Startort + * @param string $end Endort + * @param string $startmarker Markergrafik des Startorts + * @param string $endmarker Markergrafik des Endorts + * @param int $zoombounds Zoom und Center so setzen, dass sowohl Start als auch Zielort sichtbar sind. + * @param string $textbox Name des HTML Elements in dem die Wegliste ausgegeben wird (Element ID) + * @return bool + */ + function directions($start, $end, $startmarker = "143.png", $endmarker = "143.png", $zoombounds = 0, $textbox = "") + { + $dims = getimagesize($startmarker); + $dims2 = getimagesize($endmarker); + echo "var dire = new GDirections(); + GEvent.addListener(dire, \"load\", gload); + dire.load(\"from: $start to: $end\",{getPolyline:true,getSteps:true}); + function gload() + { + var distanz = dire.getDistance().meters; + distanz = distanz / 1000; + distanz = Math.round(distanz); + var poly = dire.getPolyline(); + var bounds = dire.getBounds(); + var route = dire.getRoute(0); + var step1 = route.getStep(0).getLatLng(); + var step_last = route.getEndLatLng();"; + if ($zoombounds) { + echo "map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));"; + } + echo " + map.addOverlay(poly); + var image = new Array(\"$startmarker\",\"$dims[0]\",\"$dims[1]\"); + var marker = createMapMarker(step1, image); + map.addOverlay(marker); + var image = new Array(\"$endmarker\",\"$dims2[0]\",\"$dims2[1]\"); + var marker = createMapMarker(step_last, image); + map.addOverlay(marker);"; + if ($textbox != "") { + echo "var steps = route.getNumSteps(); + document.getElementById('$textbox').innerHTML = '<b>Entfernung:</b> ' + distanz + ' Km<br>'; + for(i=0;i<=steps;i++) + { + mystep = route.getStep(i) + if(mystep) + { + o = i + 1; + shtml = mystep.getDescriptionHtml(); + document.getElementById('$textbox').innerHTML += o + '. ' + shtml + '<br>'; + } + }"; + } + echo "}"; + return true; + } + + /** + * Erzeugt ein Bounds Objekt + * + * @return bool + */ + function bounds() + { + echo "var bounds = new GLatLngBounds();\n"; + return true; + } + /** + * Erweitert ein vorhandenes Bounds Objekt um den zuletzt hinzugef\xFCgten Punkt. + * + * @return bool + */ + function boundsExtend() + { + echo "bounds.extend(point)\n"; + return true; + } + /** + * Setzt den Kartenzoom "To bounds". + * + * @return bool + */ + function zoomToBounds() + { + echo "map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));\n"; + return true; + } + + /** + * Erzeugt eine Linie zwischen mehreren Punkten + * + * @param array $punkte Erwartet ein Mehrdimensionales Array mit lat/lng der einzelnen Punkte + * @param string $color Die Farbe der Linie als Hexcode + * @param int $breite Die Breite der Linie + * @param int $transparent Transparenz an / aus + * @param string $arrows Richtungspfeile. "all" = \xFCberall, mid = "nur auf der Wegstrecke" , "end = "nur am "Ende" + * @param int $geodetic Legt fest ob "geod\xE4sische" Polylines gezeichnet werden. Diese ber\xFCcksichtigen die Erdkr\xFCmmung. + * @return bool + */ + function polyline($punkte, $color = "#FF0000", $breite = 1, $transparent = 0, $arrows = "", $geodetic = 0) + { + $polystr = ""; + $pts = "["; + + ?> + var polyline = new GPolyline([ + <?php + foreach($punkte as $punkt) { + $pts .= "new GLatLng($punkt[0],$punkt[1]),"; + $polystr .= "new GLatLng($punkt[0],$punkt[1]),\n"; + } + $polystr = substr($polystr, 0, strlen($polystr)-2); + $pts = substr($pts, 0, strlen($pts)-1); + $pts .= "]"; + + echo " + $polystr],'$color',$breite,$transparent"; + if ($geodetic == 1) { + echo ",{geodesic:true}"; + } + echo ");\n + map.addOverlay(polyline);\n"; + if ($arrows == "end") { + echo "arrowHead($pts);\n"; + } elseif ($arrows == "mid") { + echo "midArrows($pts);\n"; + } elseif ($arrows == "all") { + echo "arrowHead($pts);\n + midArrows($pts);\n"; + } + + return true; + } + + /** + * Ermittelt die L\xE4nge einer Polyline in Metern. + * + * @param array $punkte das Array aus dem die Polyline erstellt wurde. + * @return int $entfernung + */ + function getDistance($koord) + { + if (!is_array($koord)) { + return false; + } + + $ent = 0; + $welt = 6378.137; // Erdradius, ca. Angabe + + foreach($koord as $key => $fetch) { + if (isset($koord[$key + 1])) { + $erste_breite = $koord[$key][0]; // lat + $erste_laenge = $koord[$key][1]; // lon + $erste_breite_rad = deg2rad($erste_breite); + $erste_laenge_rad = deg2rad($erste_laenge); + + $zweite_breite = $koord[$key + 1][0]; // lat + $zweite_laenge = $koord[$key + 1][1]; // lon + $zweite_breite_rad = deg2rad($zweite_breite); + $zweite_laenge_rad = deg2rad($zweite_laenge); + + $dis = acos( + (sin($erste_breite_rad) * sin($zweite_breite_rad)) + + (cos($erste_breite_rad) * cos($zweite_breite_rad) * + cos($zweite_laenge_rad - $erste_laenge_rad))) * $welt; + + $ent = $ent + $dis; + } + } + $entfernung = $ent * 1000; + return round($entfernung, 0); + } + + /** + * Nimmt eine Adresse entgegen und erzeugt einen Marker. + * + * @param string $adress Zu suchende Adresse + * @param string $typ legt den Markertyp fest (marker,otherMarker,mapMarker) + * @param string $img legt die Markergrafik fest + * @param int $zoom legt den Kartenzoom fest (Default: 14) + * @return array + */ + function geocode($adress, $typ = 'marker', $img = "143.png", $zoom = 14) + { + if ($adress) { + $dims = getimagesize($img); + echo "var image = new Array('$img',$dims[0],$dims[1]);\n"; + if ($adress == "getAdress()") { + echo "geocodeAddress($adress,'$typ',image,$zoom);\n"; + } else { + echo "geocodeAddress('$adress','$typ',image,$zoom);\n"; + } + return true; + } else { + return false; + } + } + /** + * F\xFChrt ein Geocoding Request mit dem Google Geocoder aus. + * Die Anfrage sollte so aufgebaut sein: <strasse> <plz> <stadt> <land> + * + * @param string $input Geocoding Anfrage + * @param string $key Google Maps API Key (nur f\xFCr R\xFCckw\xE4rtskompatibilit\xE4t) + * @return array $point + */ + function getGeoPoint($input, $key = "") + { + if (!$key) { + $key = $this->key; + } + $input = urlencode($input); + $address = "http://maps.google.com/maps/geo?q=$input&key=$key&output=csv"; + $point = file_get_contents($address); + $point = explode(",", $point); + $point = array($point[2], $point[3]); + if (!empty($point)) { + return $point; + } else { + return false; + } + } + /** + * Parsed KML Dateien und gibt sie auf der Karte aus + * + * @param string $url Zu parsende Datei (erwartet immer eine URL !) + * @return bool + */ + function parseKml($url) + { + if ($url) { + echo "var geoXml = new GGeoXml(\"$url\");\n + map.addOverlay(geoXml);\n"; + return true; + } else { + return true; + } + } + + /** + * Parsed XML Dateien und gibt Geopunkte als Array zur\xFCck + * + * @param string $file Zu parsende Datei + * @return array + */ + function parseGxml($file) + { + $parser = new XMLParser($file, 'file', 1); + $tree = $parser->getTree(); + $points = array(); + foreach($tree[MARKERS][MARKER] as $marker) { + $lat = $marker[ATTRIBUTES][LAT]; + $lng = $marker[ATTRIBUTES][LNG]; + $arr = array($lat, $lng); + array_push($points, $arr); + } + if (!empty($points)) { + return $points; + } else { + return false; + } + } + /** + * Parsed XML Dateien und gibt Marker als Array zur\xFCck. + * + * @param string $file Zu parsende Datei + * @return array + */ + function xmlMapPoints($file) + { + $parser = new XMLParser($file, 'file', 1); + $tree = $parser->getTree(); + $points = array(); + foreach($tree[MAP][MARKERS][MARKER] as $marker) { + $lat = $marker[ATTRIBUTES][LAT]; + $lng = $marker[ATTRIBUTES][LNG]; + $img = $marker[ATTRIBUTES][IMAGE]; + $link = $marker[ATTRIBUTES][LINK]; + $arr = array($lat, $lng, $link, $img); + array_push($points, $arr); + } + return $points; + } + + /** + * Erzeugt die Kartendarstellung aus einer XML Datei + * + * @param string $file XML Datei + * @return bool + */ + function xmlMap($file) + { + $parser = new XMLParser($file, 'file', 1); + $tree = $parser->getTree(); + $lat = $tree[MAP][STARTLAT][VALUE]; + $lng = $tree[MAP][STARTLONG][VALUE]; + $width = $tree[MAP][WIDTH][VALUE]; + $height = $tree[MAP][HEIGHT][VALUE]; + $min_zoom = $tree[MAP][MINZOOM][VALUE]; + $typ = $tree[MAP][MAPTYPE][VALUE]; + $zoom = $tree[MAP][STARTZOOM][VALUE]; + if (!$min_zoom) { + $min_zoom = 1; + } + $max_zoom = $tree[MAP][MAXZOOM][VALUE]; + if (!$max_zoom) { + $max_zoom = 17; + } + $navcontrol = $tree[MAP][NAVCONTROL][VALUE]; + + $width = $width . "px"; + $height = $height . "px"; + + if ($typ == "normal") { + $typstr = "G_NORMAL_MAP"; + } elseif ($typ == "satellit") { + $typstr = "G_SATELLITE_MAP"; + } elseif ($typ == "hybrid") { + $typstr = "G_HYBRID_MAP"; + } + if ($navcontrol == "large") { + $controlstr = "GLargeMapControl()"; + } elseif ($navcontrol == "small") { + $controlstr = "GSmallMapControl()"; + } + echo " + <script type=\"text/javascript\"> + + var map = new GMap2(document.getElementById(\"gmapper_map\"));\n + map.addControl(new $controlstr);\n + map.addControl(new GMapTypeControl());\n + map.enableDoubleClickZoom();\n + map.enableContinuousZoom();\n + var mt = map.getMapTypes();\n + for (var i=0; i<mt.length; i++) { + mt[i].getMinimumResolution = function() {return $min_zoom;} + mt[i].getMaximumResolution = function() {return $max_zoom;} + } + map.addControl(new GMapTypeControl());\n + map.setCenter(new GLatLng( $lat,$lng),$zoom);\n + + map.setMapType($typstr);\n + </script>"; + return true; + } + // Ende Gmapper +} +// XML Parser Code +class XMLParser { + var $data; + var $vals; + var $collapse_dups; + var $index_numeric; + function XMLParser($data_source, $data_source_type = 'file', $collapse_dups = 0, $index_numeric = 0) + { + $this->collapse_dups = $collapse_dups; + $this->index_numeric = $index_numeric; + $this->data = ''; + if (file_exists($data_source)) + $this->data = implode('', file($data_source)); + else { + $fp = fopen($data_source, 'r'); + while (!feof($fp)) + $this->data .= fread($fp, 1000); + fclose($fp); + } + } + function getTree() + { + $parser = xml_parser_create('ISO-8859-1'); + xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); + xml_parse_into_struct($parser, $this->data, $vals, $index); + xml_parser_free($parser); + $i = -1; + return $this->getchildren($vals, $i); + } + function buildtag($thisvals, $vals, &$i, $type) + { + if (isset($thisvals['attributes'])) + $tag['ATTRIBUTES'] = $thisvals['attributes']; + if ($type === 'complete') + $tag['VALUE'] = $thisvals['value']; + else + $tag = array_merge($tag, $this->getchildren($vals, $i)); + + return $tag; + } + function getchildren($vals, &$i) + { + $children = array(); // Contains node data + if ($i > -1 && isset($vals[$i]['value'])) + $children['VALUE'] = $vals[$i]['value']; + while (++$i < count($vals)) { + $type = $vals[$i]['type']; + if ($type === 'cdata') + $children['VALUE'] .= $vals[$i]['value']; + elseif ($type === 'complete' || $type === 'open') { + $tag = $this->buildtag($vals[$i], $vals, $i, $type); + if ($this->index_numeric) { + $tag['TAG'] = $vals[$i]['tag']; + $children[] = $tag; + } else + $children[$vals[$i]['tag']][] = $tag; + } elseif ($type === 'close') + break; + } + if ($this->collapse_dups) + foreach($children as $key => $value) + if (is_array($value) && (count($value) == 1)) + $children[$key] = $value[0]; + return $children; + } + } + + ?> \ No newline at end of file Added: trunk/linpha2/lib/plugins/maps/gmapper1/dash.png =================================================================== (Binary files differ) Property changes on: trunk/linpha2/lib/plugins/maps/gmapper1/dash.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/linpha2/lib/plugins/maps/gmapper1/docs/gmap.html =================================================================== --- trunk/linpha2/lib/plugins/maps/gmapper1/docs/gmap.html (rev 0) +++ trunk/linpha2/lib/plugins/maps/gmapper1/docs/gmap.html 2007-08-18 16:28:16 UTC (rev 4762) @@ -0,0 +1,1148 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + <html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <!-- template designed by Marco Von Ballmoos --> + <title>Docs For Class gmap</title> + <link rel="stylesheet" href="stylesheet.css" /> + + <script language="javascript" type="text/javascript"> + var imgPlus = new Image(); + var imgMinus = new Image(); + imgPlus.src = "../media/images/plus.png"; + imgMinus.src = "../media/images/minus.png"; + + function showNode(Node){ + switch(navigator.family){ + case 'nn4': + // Nav 4.x code fork... + var oTable = document.layers["span" + Node]; + var oImg = document.layers["img" + Node]; + break; + case 'ie4': + // IE 4/5 code fork... + var oTable = document.all["span" + Node]; + var oImg = document.all["img" + Node]; + break; + case 'gecko': + // Standards Compliant code fork... + var oTable = document.getElementById("span" + Node); + var oImg = document.getElementById("img" + Node); + break; + } + oImg.src = imgMinus.src; + oTable.style.display = "block"; + } + + function hideNode(Node){ + switch(navigator.family){ + case 'nn4': + // Nav 4.x code fork... + var oTable = document.layers["span" + Node]; + var oImg = document.layers["img" + Node]; + break; + case 'ie4': + // IE 4/5 code fork... + var oTable = document.all["span" + Node]; + var oImg = document.all["img" + Node]; + break; + case 'gecko': + // Standards Compliant code fork... + var oTable = document.getElementById("span" + Node); + var oImg = document.getElementById("img" + Node); + break; + } + oImg.src = imgPlus.src; + oTable.style.display = "none"; + } + + function nodeIsVisible(Node){ + switch(navigator.family){ + case 'nn4': + // Nav 4.x code fork... + var oTable = document.layers["span" + Node]; + break; + case 'ie4': + // IE 4/5 code fork... + var oTable = document.all["span" + Node]; + break; + case 'gecko': + // Standards Compliant code fork... + var oTable = document.getElementById("span" + Node); + break; + } + return (oTable && oTable.style.display == "block"); + } + + function toggleNodeVisibility(Node){ + if (nodeIsVisible(Node)){ + hideNode(Node); + }else{ + showNode(Node); + } + } + </script> + </head> + <body> + <div class="page-body"> + +<h2 class="class-name">Class gmap</h2> + +<a name="sec-description"></a> +<div class="info-box"> + <div class="info-box-title">Description</div> + <div class="nav-bar"> + <span class="disabled">Description</span> | + <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>) + | <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>) + + </div> + <div class="info-box-body"> + <!-- ========== Info from phpDoc block ========= --> + <ul class="tags"> + <li><span class="field">author:</span> Philipp Kiszka <<a href="mailto:in...@o-...">in...@o-...</a>></li> + <li><span class="field">version:</span> 1.0</li> + <li><span class="field">link:</span> <a href="http://gmapper.ajax-info.de">http://gmapper.ajax-info.de</a></li> + <li><span class="field">name:</span> Gmapper</li> + <li><span class="field">license:</span> <a href="http://opensource.org/licenses/gpl-license.php">GNU Public License</a></li> + </ul> + <p class="notes"> + Located in <a class="field" href="_class.gmapper.php.html">/class.gmapper.php</a> (line <span class="field">10</span>) + </p> + + + <pre></pre> + + </div> +</div> + + + + <a name="sec-var-summary"></a> + <div class="info-box"> + <div class="info-box-title">Variable Summary</span></div> + <div class="nav-bar"> + <a href="#sec-description">Description</a> | + <span class="disabled">Vars</span> (<a href="#sec-vars">details</a>) + | + <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>) + + </div> + <div class="info-box-body"> + <div class="var-summary"> + <div class="var-title"> + <span class="var-type">mixed</span> + <a href="#$key" title="details" class="var-name">$key</a> + </div> + </div> + </div> + </div> + + <a name="sec-method-summary"></a> + <div class="info-box"> + <div class="info-box-title">Method Summary</span></div> + <div class="nav-bar"> + <a href="#sec-description">Description</a> | + <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>) + + | + <span class="disabled">Methods</span> (<a href="#sec-methods">details</a>) + </div> + <div class="info-box-body"> + <div class="method-summary"> + + <div class="method-definition"> + <span class="method-result">gmap</span> + <a href="#gmap" title="details" class="method-name">gmap</a> + ([<span class="var-type">string</span> <span class="var-name">$mapkey</span> = <span class="var-default">""</span>]) + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#bodyjs" title="details" class="method-name">bodyjs</a> + () + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#bounds" title="details" class="method-name">bounds</a> + () + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#boundsExtend" title="details" class="method-name">boundsExtend</a> + () + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#directions" title="details" class="method-name">directions</a> + (<span class="var-type">string</span> <span class="var-name">$start</span>, <span class="var-type">string</span> <span class="var-name">$end</span>, [<span class="var-type">string</span> <span class="var-name">$startmarker</span> = <span class="var-default">"143.png"</span>], [<span class="var-type">string</span> <span class="var-name">$endmarker</span> = <span class="var-default">"143.png"</span>], [<span class="var-type">int</span> <span class="var-name">$zoombounds</span> = <span class="var-default">0</span>], [<span class="var-type">string</span> <span class="var-name">$textbox</span> = <span class="var-default">""</span>]) + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#footjs" title="details" class="method-name">footjs</a> + () + </div> + + <div class="method-definition"> + <span class="method-result">array</span> + <a href="#geocode" title="details" class="method-name">geocode</a> + (<span class="var-type">string</span> <span class="var-name">$adress</span>, [<span class="var-type">string</span> <span class="var-name">$typ</span> = <span class="var-default">'marker'</span>], [<span class="var-type">string</span> <span class="var-name">$img</span> = <span class="var-default">"143.png"</span>], [<span class="var-type">int</span> <span class="var-name">$zoom</span> = <span class="var-default">14</span>]) + </div> + + <div class="method-definition"> + <span class="method-result">int</span> + <a href="#getDistance" title="details" class="method-name">getDistance</a> + (<span class="var-type"></span> <span class="var-name">$koord</span>, <span class="var-type">array</span> <span class="var-name">$punkte</span>) + </div> + + <div class="method-definition"> + <span class="method-result">array</span> + <a href="#getGeoPoint" title="details" class="method-name">getGeoPoint</a> + (<span class="var-type">string</span> <span class="var-name">$input</span>, [<span class="var-type">string</span> <span class="var-name">$key</span> = <span class="var-default">""</span>]) + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#headjs" title="details" class="method-name">headjs</a> + ([<span class="var-type">string</span> <span class="var-name">$key</span> = <span class="var-default">""</span>]) + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#linkMarker" title="details" class="method-name">linkMarker</a> + (<span class="var-type">int</span> <span class="var-name">$lat</span>, <span class="var-type">int</span> <span class="var-name">$lng</span>, <span class="var-type">string</span> <span class="var-name">$link</span>, [<span class="var-type">string</span> <span class="var-name">$img</span> = <span class="var-default">"143.png"</span>]) + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#lockMap" title="details" class="method-name">lockMap</a> + () + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#map" title="details" class="method-name">map</a> + (<span class="var-type">int</span> <span class="var-name">$zoom</span>, <span class="var-type">int</span> <span class="var-name">$lat</span>, <span class="var-type">int</span> <span class="var-name">$lng</span>, [<span class="var-type">string</span> <span class="var-name">$typ</span> = <span class="var-default">"normal"</span>], [<span class="var-type">int</span> <span class="var-name">$min_zoom</span> = <span class="var-default">0</span>], [<span class="var-type">int</span> <span class="var-name">$max_zoom</span> = <span class="var-default">0</span>], [<span class="var-type">string</span> <span class="var-name">$navcontrol</span> = <span class="var-default">"large"</span>], [<span class="var-type">int</span> <span class="var-name">$overview</span> = <span class="var-default">0</span>], [<span class="var-type">int</span> <span class="var-name">$mousezoom</span> = <span class="var-default">1</span>], [<span class="var-type">int</span> <span class="var-name">$tilecheck</span> = <span class="var-default">1</span>]) + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#mapdiv" title="details" class="method-name">mapdiv</a> + (<span class="var-type">int</span> <span class="var-name">$height</span>, <span class="var-type">int</span> <span class="var-name">$width</span>) + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#mapMarker" title="details" class="method-name">mapMarker</a> + (<span class="var-type">int</span> <span class="var-name">$lat</span>, <span class="var-type">int</span> <span class="var-name">$lng</span>, [<span class="var-type">string</span> <span class="var-name">$img</span> = <span class="var-default">"143.png"</span>]) + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#markend" title="details" class="method-name">markend</a> + () + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#marker" title="details" class="method-name">marker</a> + (<span class="var-type">int</span> <span class="var-name">$lat</span>, <span class="var-type">int</span> <span class="var-name">$lng</span>, [<span class="var-type">string</span> <span class="var-name">$img</span> = <span class="var-default">"143.png"</span>]) + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#markstart" title="details" class="method-name">markstart</a> + () + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#otherMarker" title="details" class="method-name">otherMarker</a> + (<span class="var-type">int</span> <span class="var-name">$lat</span>, <span class="var-type">int</span> <span class="var-name">$lng</span>, [<span class="var-type">string</span> <span class="var-name">$html</span> = <span class="var-default">""</span>], [<span class="var-type">string</span> <span class="var-name">$img</span> = <span class="var-default">"143.png"</span>]) + </div> + + <div class="method-definition"> + <span class="method-result">array</span> + <a href="#parseGxml" title="details" class="method-name">parseGxml</a> + (<span class="var-type">string</span> <span class="var-name">$file</span>) + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#parseKml" title="details" class="method-name">parseKml</a> + (<span class="var-type">string</span> <span class="var-name">$url</span>) + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#polyline" title="details" class="method-name">polyline</a> + (<span class="var-type">array</span> <span class="var-name">$punkte</span>, [<span class="var-type">string</span> <span class="var-name">$color</span> = <span class="var-default">"#FF0000"</span>], [<span class="var-type">int</span> <span class="var-name">$breite</span> = <span class="var-default">1</span>], [<span class="var-type">int</span> <span class="var-name">$transparent</span> = <span class="var-default">0</span>], [<span class="var-type">string</span> <span class="var-name">$arrows</span> = <span class="var-default">""</span>], [<span class="var-type">int</span> <span class="var-name">$geodetic</span> = <span class="var-default">0</span>]) + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#showScale" title="details" class="method-name">showScale</a> + () + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#tabMarker" title="details" class="method-name">tabMarker</a> + (<span class="var-type">int</span> <span class="var-name">$lat</span>, <span class="var-type">int</span> <span class="var-name">$lng</span>, <span class="var-type">array</span> <span class="var-name">$tabs</span>, [<span class="var-type">string</span> <span class="var-name">$img</span> = <span class="var-default">"143.png"</span>]) + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#xmlMap" title="details" class="method-name">xmlMap</a> + (<span class="var-type">string</span> <span class="var-name">$file</span>) + </div> + + <div class="method-definition"> + <span class="method-result">array</span> + <a href="#xmlMapPoints" title="details" class="method-name">xmlMapPoints</a> + (<span class="var-type">string</span> <span class="var-name">$file</span>) + </div> + + <div class="method-definition"> + <span class="method-result">bool</span> + <a href="#zoomToBounds" title="details" class="method-name">zoomToBounds</a> + () + </div> + </div> + </div> + </div> + + <a name="sec-vars"></a> + <div class="info-box"> + <div class="info-box-title">Variables</div> + <div class="nav-bar"> + <a href="#sec-description">Description</a> | + <a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>) + + + | + <a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>) + + </div> + <div class="info-box-body"> + <a name="var$key" id="$key"><!-- --></A> +<div class="evenrow"> + + <div class="var-header"> + <span class="var-title"> + <span class="var-type">mixed</span> + <span class="var-name">$key</span> + (line <span class="line-number">12</span>) + </span> + </div> + + <!-- ========== Info from phpDoc block ========= --> + + + + + +</div> + + </div> + </div> + + <a name="sec-methods"></a> + <div class="info-box"> + <div class="info-box-title">Methods</div> + <div class="nav-bar"> + <a href="#sec-description">Description</a> | + <a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>) + <a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>) + + </div> + <div class="info-box-body"> + <A NAME='method_detail'></A> +<a name="methodgmap" id="gmap"><!-- --></a> +<div class="oddrow"> + + <div class="method-header"> + <span class="method-title">Constructor gmap</span> (line <span class="line-number">19</span>) + </div> + + <!-- ========== Info from phpDoc block ========= --> +<p class="short-description">Der Konstruktor nimmt den Google Maps API Key als Parameter entgegen.</p> +<p class="description"><p>Dies ist die empfohlene Methode, den API Key einzubinden.</p></p> + + <div class="method-signature"> + <span class="method-result">gmap</span> + <span class="method-name"> + gmap + </span> + ([<span class="var-type">string</span> <span class="var-name">$mapkey</span> = <span class="var-default">""</span>]) + </div> + + <ul class="parameters"> + <li> + <span class="var-type">string</span> + <span class="var-name">$mapkey</span><span class="var-description">: Google Maps API Key</span> </li> + </ul> + + + </div> +<a name="methodbodyjs" id="bodyjs"><!-- --></a> +<div class="evenrow"> + + <div class="method-header"> + <span class="method-title">bodyjs</span> (line <span class="line-number">171</span>) + </div> + + <!-- ========== Info from phpDoc block ========= --> +<p class="short-description">Erzeugt den JS Code im BODY der Seite.</p> + + <div class="method-signature"> + <span class="method-result">bool</span> + <span class="method-name"> + bodyjs + </span> + () + </div> + + + + </div> +<a name="methodbounds" id="bounds"><!-- --></a> +<div class="oddrow"> + + <div class="method-header"> + <span class="method-title">bounds</span> (line <span class="line-number">394</span>) + </div> + + <!-- ========== Info from phpDoc block ========= --> +<p class="short-description">Erzeugt ein Bounds Objekt</p> + + <div class="method-signature"> + <span class="method-result">bool</span> + <span class="method-name"> + bounds + </span> + () + </div> + + + + </div> +<a name="methodboundsExtend" id="boundsExtend"><!-- --></a> +<div class="evenrow"> + + <div class="method-header"> + <span class="method-title">boundsExtend</span> (line <span class="line-number">404</span>) + </div> + + <!-- ========== Info from phpDoc block ========= --> +<p class="short-description">Erweitert ein vorhandenes Bounds Objekt um den zuletzt hinzugef\xFCgten Punkt.</p> + + <div class="method-signature"> + <span class="method-result">bool</span> + <span class="method-name"> + boundsExtend + </span> + () + </div> + + + + </div> +<a name="methoddirections" id="directions"><!-- --></a> +<div class="oddrow"> + + <div class="method-header"> + <span class="method-title">directions</span> (line <span class="line-number">343</span>) + </div> + + <!-- ========== Info from phpDoc block ========= --> +<p class="short-description">Erzeugt ein Geocoding Request und gibt eine Polyline, sowie Ortsliste zur\xFCck</p> + + <div class="method-signature"> + <span class="method-result">bool</span> + <span class="method-name"> + directions + </span> + (<span class="var-type">string</span> <span class="var-name">$start</span>, <span class="var-type">string</span> <span class="var-name">$end</span>, [<span class="var-type">string</span> <span class="var-name">$startmarker</span> = <span class="var-default">"143.png"</span>], [<span class="var-type">string</span> <span class="var-name">$endmarker</span> = <span class="var-default">"143.png"</span>], [<span class="var-type">int</span> <span class="var-name">$zoombounds</span> = <span class="var-default">0</span>], [<span class="var-type">string</span> <span class="var-name">$textbox</span> = <span class="var-default">""</span>]) + </div> + + <ul class="parameters"> + <li> + <span class="var-type">string</span> + <span class="var-name">$start</span><span class="var-description">: Startort</span> </li> + <li> + <span class="var-type">string</span> + <span class="var-name">$end</span><span class="var-description">: Endort</span> </li> + <li> + <span class="var-type">string</span> + <span class="var-name">$startmarker</span><span cl... [truncated message content] |