Changeset 169 for trunk


Ignore:
Timestamp:
09/04/2006 02:50:13 PM (6 years ago)
Author:
cirrus
Message:

add: XML statistics
change: gmap API v2 used (custom map support is currently broken)

Location:
trunk
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/globals/classes/srtm.php

    r129 r169  
    2929         
    3030        function get_elevation($lat, $lon, $round=TRUE) { 
    31         $y = $lat; 
    32         $x = $lon; 
     31                $y = $lat; 
     32                $x = $lon; 
    3333         
    34         $filename = $this->data_path.'N'.(integer)$lat.'E'.((integer)$lon<100?'0'.(integer)$lon:(integer)$lon).'.hgt'; 
     34                $filename = $this->data_path.'N'.(integer)$lat.'E'.((integer)$lon<100?'0'.(integer)$lon:(integer)$lon).'.hgt'; 
    3535         
    36         if ($lat == '' || $lon == '' || !file_exists($filename)) return FALSE; 
     36                if ($lat == '' || $lon == '' || !file_exists($filename)) 
     37                        return FALSE; 
    3738         
    38         $file = fopen($filename, 'r'); 
    39         $offset = ( (integer)(($x - (integer)$x) * 1200) * 2 + (1200 - (integer)(($y - (integer)$y) * 1200)) * 2402 ); 
    40         fseek($file, $offset); 
    41         $h1 = bytes2int(strrev(fread($file, 2))); 
    42         $h2 = bytes2int(strrev(fread($file, 2))); 
    43         fseek($file, $offset-2402); 
    44         $h3 = bytes2int(strrev(fread($file, 2))); 
    45         $h4 = bytes2int(strrev(fread($file, 2))); 
    46         fclose($file); 
     39                $file = fopen($filename, 'r'); 
     40                $offset = ( (integer)(($x - (integer)$x) * 1200) * 2 + (1200 - (integer)(($y - (integer)$y) * 1200)) * 2402 ); 
     41                fseek($file, $offset); 
     42                $h1 = bytes2int(strrev(fread($file, 2))); 
     43                $h2 = bytes2int(strrev(fread($file, 2))); 
     44                fseek($file, $offset-2402); 
     45                $h3 = bytes2int(strrev(fread($file, 2))); 
     46                $h4 = bytes2int(strrev(fread($file, 2))); 
     47                fclose($file); 
    4748         
    48         $m = max($h1, $h2, $h3, $h4); 
    49         for($i=1;$i<=4;$i++) { 
    50                 $c = 'h'.$i; 
    51                 if ($$c == -32768) $$c = $m; 
     49                $m = max($h1, $h2, $h3, $h4); 
     50                for($i=1;$i<=4;$i++) { 
     51                        $c = 'h'.$i; 
     52                        if ($$c == -32768) 
     53                                $$c = $m; 
     54                } 
     55         
     56                $fx = ($lon - (integer)($lon * 1200) / 1200) * 1200; 
     57                $fy = ($lat - (integer)($lat * 1200) / 1200) * 1200; 
     58         
     59                // normalizing data 
     60                $elevation = ($h1 * (1 - $fx) + $h2 * $fx) * (1 - $fy) + ($h3 * (1 - $fx) + $h4 * $fx) * $fy; 
     61                if ($round) 
     62                        $elevation = round($elevation); 
     63                return $elevation; 
    5264        } 
    53          
    54         $fx = ($lon - (integer)($lon * 1200) / 1200) * 1200; 
    55         $fy = ($lat - (integer)($lat * 1200) / 1200) * 1200; 
    56          
    57         // normalizing data 
    58         $elevation = ($h1 * (1 - $fx) + $h2 * $fx) * (1 - $fy) + ($h3 * (1 - $fx) + $h4 * $fx) * $fy; 
    59         if ($round) $elevation = round($elevation); 
    60         return $elevation; 
    61         } 
    62          
     65 
    6366} 
    6467 
  • trunk/globals/functions.php

    r166 r169  
    9696        global $qs_vars; 
    9797        $o = array(); 
     98        if(get('show_map') == "no") $o = array_merge($o,array("show_map" => "no")); 
    9899        if ($cur_qs == TRUE) { 
    99100                parse_str(get_qs(), $qs); 
     
    344345        if ($gmap_key == '') return FALSE; 
    345346 
    346         $main->html->head->add_script("text/javascript", "http://".$vars['gmap']['server']."/maps?file=api&v=1&key=".$gmap_key); 
     347        $main->html->head->add_script("text/javascript", "http://".$vars['gmap']['server']."/maps?file=api&v=2&key=".$gmap_key); 
    347348        $main->html->head->add_script("text/javascript", $javascript); 
    348349        $main->html->head->add_extra( 
  • trunk/includes/pages/gmap/gmap_js.php

    r159 r169  
    3535                        $this->tpl['center_latitude'] = $node[0]['latitude']; 
    3636                        $this->tpl['center_longitude'] = $node[0]['longitude']; 
    37                         $this->tpl['zoom'] = 3; 
     37                        $this->tpl['zoom'] = 17 - 2; 
    3838                } else { 
    3939                        $t = $db->get('MIN(latitude) AS min_lat, MIN(longitude) AS min_lon, MAX(latitude) AS max_lat, MAX(longitude) AS max_lon', 
  • trunk/includes/pages/gmap/gmap_pickup_js.php

    r55 r169  
    4848                $this->tpl['object_lat'] = stripslashes(get('object_lat')); 
    4949                $this->tpl['object_lon'] = stripslashes(get('object_lon')); 
    50  
     50                 
     51                $this->tpl['maps_available'] = $vars['gmap']['maps_available']; 
     52                 
    5153                echo template($this->tpl, __FILE__); 
    5254                exit; 
  • trunk/templates/basic/includes/pages/gmap/gmap_js.tpl

    r160 r169  
    3636var ch_unlinked; 
    3737 
    38 // Markers Optimization 
    39 GMap.prototype.addOverlays=function(a){  
    40         var b=this;  
    41         for (i=0;i<a.length;i++) {  
    42                 try { 
    43                         this.overlays.push(a[i]);  
    44                         a[i].initialize(this);  
    45                         a[i].redraw(true); 
    46                 } catch(ex) {  
    47                         alert('Drawing error: ' + i + ', ' + ex.toString());  
    48                 }  
    49         }  
    50         this.reOrderOverlays();  
    51 }; 
    5238{/literal} 
    5339 
     
    129115{literal} 
    130116 
    131 function copy_obj(o) { 
    132         var c = new Object(); for (var e in o) { c[e] = o[e]; } return c; 
    133 } 
    134  
    135117function gmap_onload() { 
    136118        ch_p2p = document.getElementsByName("p2p")[0]; 
     
    139121        ch_unlinked = document.getElementsByName("unlinked")[0]; 
    140122        if (GBrowserIsCompatible()) { 
    141 {/literal} 
    142 {foreach from=$maps_available item=map_enabled key=map_name} 
    143         {if $map_enabled===true} 
    144                 {if $map_types != null} 
    145                         {assign var=map_types value="`$map_types`,"} 
    146                 {/if} 
    147                 {assign var=map_types value="`$map_types` G_`$map_name`_TYPE"} 
    148         {/if} 
    149 {/foreach} 
    150 {foreach from=$maps_available.custom_maps item=custom_type} 
    151         {if $custom_type.coordinates_type == "map"} 
    152                 G_CUSTOM_{$custom_type.name|upper}_TYPE = copy_obj(G_MAP_TYPE); 
    153         {elseif $custom_type.coordinates_type == "satellite"} 
    154                 G_CUSTOM_{$custom_type.name|upper}_TYPE = copy_obj(G_SATELLITE_TYPE); 
    155         {/if} 
    156         G_CUSTOM_{$custom_type.name|upper}_TYPE.baseUrls = new Array(); 
    157         G_CUSTOM_{$custom_type.name|upper}_TYPE.baseUrls[0] = "{$custom_type.url}"; 
    158         G_CUSTOM_{$custom_type.name|upper}_TYPE.lowResBaseUrls = new Array(); 
    159         G_CUSTOM_{$custom_type.name|upper}_TYPE.lowResBaseUrls[0] = "{$custom_type.url}"; 
    160         {literal} 
    161                 G_CUSTOM_{/literal}{$custom_type.name|upper}{literal}_TYPE.getLinkText = function() { return '{/literal}{$custom_type.name}{literal}'; } 
    162         {/literal} 
    163         {if $map_types != null} 
    164                         {assign var=map_types value="`$map_types`,"} 
    165          {/if} 
    166          {assign var=map_types value="`$map_types` G_CUSTOM_`$custom_type.name`_TYPE"} 
    167 {/foreach} 
    168 {literal} 
     123                {/literal} 
     124                {foreach from=$maps_available item=map_enabled key=map_name} 
     125                        {if $map_enabled===true} 
     126                                {if $map_types != null} 
     127                                        {assign var=map_types value="`$map_types`,"} 
     128                                {/if} 
     129                                {assign var=map_types value="`$map_types` G_`$map_name`_MAP"} 
     130                        {/if} 
     131                {/foreach} 
     132                {literal} 
    169133                var map_types = [{/literal}{$map_types|upper}{literal}]; 
    170                 map = new GMap(document.getElementById("map"), map_types); 
    171  
     134                map = new GMap2(document.getElementById("map")); 
    172135                if(map_types.length > 1) 
    173                         map.addControl(new GMapTypeControl()); 
    174  
    175                 map.setMapType(G_{/literal}{$maps_available.default|upper}{literal}_TYPE); 
    176  
    177                 var center = new GPoint({/literal}{$center_longitude}{literal},  
    178                                                                 {/literal}{$center_latitude}{literal}); 
    179                 var s_long =    ({/literal}{$max_longitude|default:0}{literal}) - 
    180                                                 ({/literal}{$min_longitude|default:0}{literal}); 
    181                 var s_lat =             ({/literal}{$max_latitude|default:0}{literal}) - 
    182                                                 ({/literal}{$min_latitude|default:0}{literal}); 
    183                 var span = new GSize(s_long, s_lat); 
    184                 var zoom = map.spec.getLowestZoomLevel(center, span, map.viewSize);  
     136                                map.addControl(new GMapTypeControl()); 
     137                map.addControl(new GLargeMapControl()); 
     138                //map.addControl(new GOverviewMapControl()); 
     139                var center = new GLatLng({/literal}{$center_latitude}{literal},{/literal}{$center_longitude}{literal}); 
    185140                if ('{/literal}{$zoom}{literal}' != '') { 
    186                         zoom = {/literal}{$zoom|default:0}{literal}; 
     141                        zoom = {/literal}{$zoom|default:0}{literal}; 
     142                } else { 
     143                        var bound_sw = new GLatLng({/literal}{$min_latitude|default:$center_latitude}{literal},{/literal}{$min_longitude|default:$center_longitude}{literal}); 
     144                        var bound_ne = new GLatLng({/literal}{$max_latitude|default:$center_latitude}{literal},{/literal}{$max_longitude|default:$center_longitude}{literal}); 
     145                        var bounds = new GLatLngBounds(bound_sw, bound_ne); 
     146                        var zoom = map.getBoundsZoomLevel(bounds); 
    187147                } 
    188                 map.centerAndZoom(center, zoom); 
    189                 map.addControl(new GLargeMapControl()); 
     148                map.setCenter(center, zoom, G_{/literal}{$maps_available.default|upper}{literal}_MAP); 
    190149                GEvent.addListener(map, "moveend", gmap_reload); 
    191                 GEvent.addListener(map, "zoom", 
    192                                 function (oldZoomLevel, newZoomLevel) { 
    193                                         if ((oldZoomLevel > 3 && newZoomLevel <= 3) || 
    194                                                 (oldZoomLevel <= 3 && newZoomLevel > 3)) 
    195                                                         map.clearOverlays(); 
    196                                                         markers = Array(); 
    197                                                         polylines = Array(); 
    198                                                         gmap_reload(); 
    199                                 }); 
     150                GEvent.addListener(map, "zoomend", function (oldLevel, newLevel) { 
     151                                        if ((oldLevel <= 17-4 && newLevel > 17-4) || 
     152                                                (oldLevel > 17-4 && newLevel <= 17-4)) { 
     153                                                        map.clearOverlays(); 
     154                                                        markers = Array(); 
     155                                                        polylines = Array(); 
     156                                                } 
     157                                                        gmap_reload(); 
     158                                        }); 
    200159                gmap_refresh(); 
    201160        } 
     
    203162 
    204163function gmap_reload() { 
    205  
    206         if (ch_aps.checked == true && ch_clients.checked == true) makePolylines(links_client, "#00ffff", "#ff0000", 2); 
    207         if (ch_p2p.checked == true) makePolylines(links_p2p, "#00ff00", "#ff0000", 3); 
    208  
    209         if (ch_unlinked.checked == true) makeMarkers(unlinked, icon_red, -1); 
    210         if (ch_clients.checked == true) makeMarkers(clients, icon_blue, -1); 
    211         if (ch_aps.checked == true) makeMarkers(aps, icon_green, 3); 
    212         if (ch_p2p.checked == true) makeMarkers(p2p, icon_orange, 3); 
    213         if (ch_p2p.checked == true || ch_aps.checked == true) makeMarkers(p2p_ap, icon_green, 3); 
    214         makeMarkers(selected, icon_grey, 3); 
    215                  
     164if (ch_aps.checked == true && ch_clients.checked == true) makePolylines(links_client, "#00ffff", "#ff0000", 2); 
     165if (ch_p2p.checked == true) makePolylines(links_p2p, "#00ff00", "#ff0000", 3); 
     166if (ch_unlinked.checked == true) makeMarkers(unlinked, icon_red, 100); 
     167if (ch_clients.checked == true) makeMarkers(clients, icon_blue, 100); 
     168if (ch_aps.checked == true) makeMarkers(aps, icon_green, 17-4); 
     169if (ch_p2p.checked == true) makeMarkers(p2p, icon_orange, 17-4); 
     170if (ch_p2p.checked == true || ch_aps.checked == true) makeMarkers(p2p_ap, icon_green, 17-4); 
     171makeMarkers(selected, icon_grey, 17-4); 
     172 
    216173} 
    217174 
     
    221178        var ch_clients = document.getElementsByName("clients")[0]; 
    222179        var ch_unlinked = document.getElementsByName("unlinked")[0]; 
    223         if (((ch_p2p.checked == true && p2p.length > 0) || ch_p2p.checked == false) &&  
     180        if (((ch_p2p.checked == true && p2p.length > 0) || ch_p2p.checked == false) && 
    224181                ((ch_aps.checked == true && aps.length > 0) || ch_aps.checked == false) && 
    225                 ((ch_clients.checked == true && clients.length > 0) || ch_clients.checked == false) &&  
     182                ((ch_clients.checked == true && clients.length > 0) || ch_clients.checked == false) && 
    226183                ((ch_unlinked.checked == true && unlinked.length > 0) || ch_unlinked.checked == false)) { 
    227184                        map.clearOverlays(); 
     
    233190        var request = GXmlHttp.create(); 
    234191        var xml_url = "{/literal}{$link_xml_page}{literal}" + 
    235                                         (ch_p2p.checked == true && p2p.length == 0?"&show_p2p=1":"") + 
    236                                         (ch_aps.checked == true && aps.length == 0?"&show_aps=1":"") + 
    237                                         (ch_clients.checked == true && clients.length == 0?"&show_clients=1":"") + 
    238                                         (ch_unlinked.checked == true && unlinked.length == 0?"&show_unlinked=1":"") + 
    239                                         (ch_p2p.checked == true && links_p2p.length == 0?"&show_links_p2p=1":"") + 
    240                                         (ch_aps.checked == true && ch_clients.checked == true && links_client.length == 0?"&show_links_client=1":""); 
     192                (ch_p2p.checked == true && p2p.length == 0?"&show_p2p=1":"") + 
     193                (ch_aps.checked == true && aps.length == 0?"&show_aps=1":"") + 
     194                (ch_clients.checked == true && clients.length == 0?"&show_clients=1":"") + 
     195                (ch_unlinked.checked == true && unlinked.length == 0?"&show_unlinked=1":"") + 
     196                (ch_p2p.checked == true && links_p2p.length == 0?"&show_links_p2p=1":"") + 
     197                (ch_aps.checked == true && ch_clients.checked == true && links_client.length == 0?"&show_links_client=1":""); 
    241198        request.open("GET", xml_url, true); 
    242         request.onreadystatechange =  
    243                         function() { 
    244                                 if (request.readyState == 4) { 
    245                                         var xmlDoc = request.responseXML; 
    246                                         selected = xmlDoc.documentElement.getElementsByTagName("selected"); 
    247                                         if ((ch_p2p.checked == true || ch_aps.checked == true) && p2p_ap.length == 0) p2p_ap = xmlDoc.documentElement.getElementsByTagName("p2p-ap"); 
    248                                         if (ch_aps.checked == true && aps.length == 0) aps = xmlDoc.documentElement.getElementsByTagName("ap"); 
    249                                         if (ch_p2p.checked == true && p2p.length == 0) p2p = xmlDoc.documentElement.getElementsByTagName("p2p"); 
    250                                         if (ch_clients.checked == true && clients.length == 0) clients = xmlDoc.documentElement.getElementsByTagName("client"); 
    251                                         if (ch_unlinked.checked == true && unlinked.length == 0) unlinked = xmlDoc.documentElement.getElementsByTagName("unlinked"); 
    252                                         if (ch_p2p.checked == true && links_p2p.length == 0) links_p2p = xmlDoc.documentElement.getElementsByTagName("link_p2p"); 
    253                                         if (ch_aps.checked == true && ch_clients.checked == true && links_client.length == 0) links_client = xmlDoc.documentElement.getElementsByTagName("link_client"); 
    254                                         map.clearOverlays(); 
    255                                         markers = Array(); 
    256                                         polylines = Array(); 
    257                                         gmap_reload(); 
    258                                 } 
    259                         } 
    260         request.send(null); 
     199        request.onreadystatechange = 
     200                        function() { 
     201                                if (request.readyState == 4) { 
     202                                        var xmlDoc = request.responseXML; 
     203                                        selected = xmlDoc.documentElement.getElementsByTagName("selected"); 
     204                                        if ((ch_p2p.checked == true || ch_aps.checked == true) && p2p_ap.length == 0) p2p_ap = xmlDoc.documentElement.getElementsByTagName("p2p-ap"); 
     205                                        if (ch_aps.checked == true && aps.length == 0) aps = xmlDoc.documentElement.getElementsByTagName("ap"); 
     206                                        if (ch_p2p.checked == true && p2p.length == 0) p2p = xmlDoc.documentElement.getElementsByTagName("p2p"); 
     207                                        if (ch_clients.checked == true && clients.length == 0) clients = xmlDoc.documentElement.getElementsByTagName("client"); 
     208                                        if (ch_unlinked.checked == true && unlinked.length == 0) unlinked = xmlDoc.documentElement.getElementsByTagName("unlinked"); 
     209                                        if (ch_p2p.checked == true && links_p2p.length == 0) links_p2p = xmlDoc.documentElement.getElementsByTagName("link_p2p"); 
     210                                        if (ch_aps.checked == true && ch_clients.checked == true && links_client.length == 0) links_client = xmlDoc.documentElement.getElementsByTagName("link_client"); 
     211                                        map.clearOverlays(); 
     212                                        markers = Array(); 
     213                                        polylines = Array(); 
     214                                        gmap_reload(); 
     215                                } 
     216                        } 
     217        request.send(null); 
     218 
     219} 
     220 
     221function makePolylines(links, color_active, color_inactive, size) { 
     222        var polylines_t = Array(); 
     223        var bounds = map.getBounds(); 
     224        for (var i = 0; i < links.length; i++) { 
     225                var link_id = links[i].getAttribute("id"); 
     226                if (polylines[link_id] != undefined) continue; 
     227                var link_lat1 = links[i].getAttribute("lat1"); 
     228                var link_lon1 = links[i].getAttribute("lon1"); 
     229                var link_lat2 = links[i].getAttribute("lat2"); 
     230                var link_lon2 = links[i].getAttribute("lon2"); 
     231                var l_inbound_1 = bounds.contains(new GLatLng(link_lat1,link_lon1)); 
     232                var l_inbound_2 = bounds.contains(new GLatLng(link_lat2,link_lon2)); 
     233 
     234                if (l_inbound_1 || l_inbound_2) { 
     235                        if (links[i].getAttribute("status") == 'active') { 
     236                                var color = color_active; 
     237                        } else { 
     238                                var color = color_inactive; 
     239                        } 
     240                        var point1 = new GLatLng(link_lat1,link_lon1); 
     241                        var point2 = new GLatLng(link_lat2,link_lon2); 
     242                        var polyline = new GPolyline([point1, point2], color, size); 
     243                        polylines_t.push(polyline); 
     244                        polylines[link_id] = true; 
     245                        map.addOverlay(polyline); 
     246                } 
     247    } 
    261248} 
    262249 
    263250function createMarker(point, html, icon) { 
    264         var marker = new GMarker(point, icon); 
    265         GEvent.addListener(marker, "click", 
    266                 function() { 
    267                         marker.openInfoWindowHtml(html); 
    268                 }); 
    269  
    270         return marker; 
    271 } 
     251        var marker = new GMarker(point, icon); 
     252        GEvent.addListener(marker, "click", 
     253                function() { 
     254                        marker.openInfoWindowHtml(html); 
     255                }); 
     256 
     257        return marker; 
     258} 
     259 
    272260 
    273261function makeMarkers(nodes, icon_image, icon_zoom) { 
    274         var markers_t = Array(); 
    275         var bounds = map.getBoundsLatLng(); 
    276         for (var i = 0; i < nodes.length; i++) { 
    277                 var node_id = nodes[i].getAttribute("id"); 
    278                 var node_lat = nodes[i].getAttribute("lat"); 
    279                 var node_lon = nodes[i].getAttribute("lon"); 
    280                  
    281                 if (markers[node_id] != undefined) continue; 
    282  
    283                 var inbounds = node_lat >= bounds.minY && 
    284                                                 node_lat <= bounds.maxY && 
    285                                                 node_lon >= bounds.minX && 
    286                                                 node_lon <= bounds.maxX; 
    287                 if (inbounds) { 
    288                         var node_name = nodes[i].getAttribute("name"); 
    289                         var node_area = nodes[i].getAttribute("area"); 
    290                         var node_p2p = nodes[i].getAttribute("p2p") * 1; 
    291                         var node_aps = nodes[i].getAttribute("aps") * 1; 
    292                         var node_client_on_ap = nodes[i].getAttribute("client_on_ap") * 1; 
    293                         var node_clients = nodes[i].getAttribute("clients") * 1; 
    294                         var node_url = nodes[i].getAttribute("url"); 
    295                  
    296                 var point = new GPoint(node_lon,  
    297                                                                 node_lat); 
    298                         var icon; var icon_s; 
    299                         if (map.getZoomLevel() <= icon_zoom) { 
    300                                 var icon_scale = 1; 
    301                     } else { 
    302                                 var icon_scale = 0; 
    303                     } 
    304                         icon = icon_image[icon_scale]; 
    305                         icon_s = icon_image[0]; 
    306                         var html = "<div style=\"padding-right: 15px; white-space: nowrap; text-align:left; font-size:12px;font-weight:bold;\"><img src=\"" + icon_s.image + "\" alt=\"\" />" + node_name + " (#" + node_id + ")</div><br />" + 
    307                                                 "<div style=\"padding-right: 15px; white-space: nowrap; text-align:left; font-size:10px;\">" + 
    308                                                 node_area + "<br />" + 
    309                                                 "{/literal}{$lang.links}{literal}: " + (parseInt(node_p2p) + parseInt(node_client_on_ap)) + " (+" + node_aps + " {/literal}{$lang.aps}{literal})" + "<br />" + 
    310                                                 "{/literal}{$lang.clients}{literal}: " + node_clients + "<br /><br />" + 
    311                                                 "<a href=\"" + node_url + "\">{/literal}{$lang.node_page}{literal}</a></div>"; 
    312                         var marker = createMarker(point, html, icon); 
    313                         markers_t.push(marker); 
    314                         markers[node_id] = true; 
    315                 } 
    316         } 
    317         map.addOverlays(markers_t); 
    318 } 
    319  
    320 function makePolylines(links, color_active, color_inactive, size) { 
    321         var polylines_t = Array(); 
    322         var bounds = map.getBoundsLatLng(); 
    323         for (var i = 0; i < links.length; i++) { 
    324                 var link_id = links[i].getAttribute("id"); 
    325                 if (polylines[link_id] != undefined) continue; 
    326                 var link_lat1 = links[i].getAttribute("lat1"); 
    327                 var link_lon1 = links[i].getAttribute("lon1"); 
    328                 var link_lat2 = links[i].getAttribute("lat2"); 
    329                 var link_lon2 = links[i].getAttribute("lon2"); 
    330                 var l_inbound_1 = link_lat1 >= bounds.minY && 
    331                                                         link_lat1 <= bounds.maxY && 
    332                                                         link_lon1 >= bounds.minX && 
    333                                                         link_lon1 <= bounds.maxX; 
    334                 var l_inbound_2 = link_lat2 >= bounds.minY && 
    335                                                         link_lat2 <= bounds.maxY && 
    336                                                         link_lon2 >= bounds.minX && 
    337                                                         link_lon2 <= bounds.maxX; 
    338                 if (l_inbound_1 || l_inbound_2) { 
    339                         if (links[i].getAttribute("status") == 'active') { 
    340                                 var color = color_active; 
    341                         } else { 
    342                                 var color = color_inactive; 
    343                         } 
    344                         var point1 = new GPoint(link_lon1, 
    345                                                                         link_lat1); 
    346                         var point2 = new GPoint(link_lon2, 
    347                                                                         link_lat2); 
    348                         var polyline = new GPolyline([point1, point2], color, size); 
    349                         polylines_t.push(polyline); 
    350                         polylines[link_id] = true; 
    351                 } 
    352     } 
    353     map.addOverlays(polylines_t); 
    354 } 
     262        var markers_t = Array(); 
     263        var bounds = map.getBounds(); 
     264        for (var i = 0; i < nodes.length; i++) { 
     265                var node_id = nodes[i].getAttribute("id"); 
     266                var node_lat = nodes[i].getAttribute("lat"); 
     267                var node_lon = nodes[i].getAttribute("lon"); 
     268 
     269                if (markers[node_id] != undefined) continue; 
     270 
     271                var inbounds = bounds.contains(new GLatLng(node_lat,node_lon)); 
     272 
     273                if (inbounds) { 
     274                        var node_name = nodes[i].getAttribute("name"); 
     275                        var node_area = nodes[i].getAttribute("area"); 
     276                        var node_p2p = nodes[i].getAttribute("p2p") * 1; 
     277                        var node_aps = nodes[i].getAttribute("aps") * 1; 
     278                        var node_client_on_ap = nodes[i].getAttribute("client_on_ap") * 1; 
     279                        var node_clients = nodes[i].getAttribute("clients") * 1; 
     280                        var node_url = nodes[i].getAttribute("url"); 
     281 
     282                var point = new GLatLng(node_lat,node_lon); 
     283                        var icon; var icon_s; 
     284                        if (map.getZoom() > icon_zoom) { 
     285                                var icon_scale = 1; 
     286                        } else { 
     287                                var icon_scale = 0; 
     288                        } 
     289                        icon = icon_image[icon_scale]; 
     290                        icon_s = icon_image[0]; 
     291                        var html = "<div style=\"padding-right: 15px; white-space: nowrap; text-align:left; font-size:12px;font-weight:bold;\"><img src=\"" + icon_s.image + "\" alt=\"\" />" + node_name + " (#" + node_id + ")</div><br />" + 
     292                                "<div style=\"padding-right: 15px; white-space: nowrap; text-align:left; font-size:10px;\">" + 
     293                                node_area + "<br />" + 
     294                                "{/literal}{$lang.links}{literal}: " + (parseInt(node_p2p) + parseInt(node_client_on_ap)) + " (+" + node_aps + " {/literal}{$lang.aps}{literal})" + "<br />" + 
     295                                "{/literal}{$lang.clients}{literal}: " + node_clients + "<br /><br />" + 
     296                                "<a href=\"" + node_url + "\">{/literal}{$lang.node_page}{literal}</a></div>"; 
     297                        var marker = createMarker(point, html, icon); 
     298                        markers_t.push(marker); 
     299                        markers[node_id] = true; 
     300                        map.addOverlay(marker); 
     301                } 
     302        } 
     303} 
     304 
    355305{/literal} 
     306 
     307 
  • trunk/templates/basic/includes/pages/gmap/gmap_pickup_js.tpl

    r131 r169  
    2525 
    2626function gmap_onload() { 
    27 if (GBrowserIsCompatible()) { 
    28   map = new GMap(document.getElementById("map")); 
    29   if (window.opener.document.{/literal}{$object_lat}{literal}.value != '' && 
    30                         window.opener.document.{/literal}{$object_lon}{literal}.value != '') { 
    31           var center = new GPoint(window.opener.document.{/literal}{$object_lon}{literal}.value, window.opener.document.{/literal}{$object_lat}{literal}.value); 
    32           var zoom = 0;  
    33           marker = new GMarker(center); 
    34           marker_point = center; 
    35   } else { 
    36           var center = new GPoint({/literal}{$center_longitude}{literal}, {/literal}{$center_latitude}{literal}); 
    37           var span = new GSize((({/literal}{$max_longitude|default:0}{literal})-({/literal}{$min_longitude|default:0}{literal})),(({/literal}{$max_latitude|default:0}{literal})-({/literal}{$min_latitude|default:0}{literal})));  
    38           var zoom = map.spec.getLowestZoomLevel(center, span, map.viewSize);  
    39   } 
    40   map.centerAndZoom(center, zoom); 
    41   map.addControl(new GLargeMapControl()); 
    42   map.setMapType(G_SATELLITE_TYPE); 
    43         GEvent.addListener(map, 'click', function(overlay, point) { 
    44           if (overlay) { 
    45             map.removeOverlay(overlay); 
    46           } else if (point) { 
    47             if (marker) map.removeOverlay(marker); 
    48             marker = new GMarker(point); 
    49             marker_point = point; 
    50                 var html = '<div style="padding-right: 15px; white-space: nowrap; text-align:left; font-size:10px;">{/literal}{$lang.db.nodes__latitude}{literal}: ' + (Math.round(marker_point.y * 100000)/100000) + '<br />' + '{/literal}{$lang.db.nodes__longitude}{literal}: ' + (Math.round(marker_point.x * 100000)/100000) + '<br /><br />' + '<a href="" onclick="window.opener.pickup_value(window.opener.document.{/literal}{$object_lat|escape:"quotes"}{literal}, Math.round(marker_point.y * 100000) / 100000); window.opener.pickup_value(window.opener.document.{/literal}{$object_lon|escape:"quotes"}{literal}, Math.round(marker_point.x * 100000)/100000); window.close(); return false;">{/literal}{$lang.select_the_coordinates}{literal}</a></div>'; 
    51             map.addOverlay(marker); 
    52             marker.openInfoWindowHtml(html); 
    53           } 
    54         }); 
    55   if (marker) map.addOverlay(marker); 
    56 } 
     27        if (GBrowserIsCompatible()) { 
     28                {/literal} 
     29                {foreach from=$maps_available item=map_enabled key=map_name} 
     30                        {if $map_enabled===true} 
     31                                {if $map_types != null} 
     32                                        {assign var=map_types value="`$map_types`,"} 
     33                                {/if} 
     34                                {assign var=map_types value="`$map_types` G_`$map_name`_MAP"} 
     35                        {/if} 
     36                {/foreach} 
     37                {literal} 
     38                var map_types = [{/literal}{$map_types|upper}{literal}]; 
     39                map = new GMap2(document.getElementById("map")); 
     40                if(map_types.length > 1) 
     41                        map.addControl(new GMapTypeControl()); 
     42                map.addControl(new GLargeMapControl()); 
     43                if (window.opener.document.{/literal}{$object_lat}{literal}.value != '' && window.opener.document.{/literal}{$object_lon}{literal}.value != '') { 
     44                        var center = new GLatLng(window.opener.document.{/literal}{$object_lat}{literal}.value, window.opener.document.{/literal}{$object_lon}{literal}.value); 
     45                        var zoom = 16; 
     46                        marker = new GMarker(center); 
     47                        marker_point = center; 
     48                } else { 
     49                        var center = new GLatLng({/literal}{$center_latitude}{literal}, {/literal}{$center_longitude}{literal}); 
     50                        var bound_sw = new GLatLng({/literal}{$min_latitude|default:$center_latitude}{literal},{/literal}{$min_longitude|default:$center_longitude}{literal}); 
     51                        var bound_ne = new GLatLng({/literal}{$max_latitude|default:$center_latitude}{literal},{/literal}{$max_longitude|default:$center_longitude}{literal}); 
     52                        var bounds = new GLatLngBounds(bound_sw, bound_ne); 
     53                        var zoom = map.getBoundsZoomLevel(bounds); 
     54 
     55                } 
     56                map.setCenter(center, zoom, G_{/literal}{$maps_available.default|upper}{literal}_MAP); 
     57                GEvent.addListener(map, 'click', function(overlay, point) { 
     58                        if (overlay) { 
     59                                map.removeOverlay(overlay); 
     60                        } else if (point) { 
     61                                if (marker) map.removeOverlay(marker); 
     62                                marker = new GMarker(point); 
     63                                marker_point = point; 
     64                                var html = '<div style="padding-right: 15px; white-space: nowrap; text-align:left; font-size:10px;">{/literal}{$lang.db.nodes__latitude}{literal}: ' + (Math.round(marker_point.y * 1000000)/1000000) + '<br />' + '{/literal}{$lang.db.nodes__longitude}{literal}: ' + (Math.round(marker_point.x * 1000000)/1000000) + '<br /><br />' + '<a href="" onclick="window.opener.pickup_value(window.opener.document.{/literal}{$object_lat|escape:"quotes"}{literal}, Math.round(marker_point.y * 1000000) / 1000000); window.opener.pickup_value(window.opener.document.{/literal}{$object_lon|escape:"quotes"}{literal}, Math.round(marker_point.x * 1000000)/1000000); window.close(); return false;">{/literal}{$lang.select_the_coordinates}{literal}</a></div>'; 
     65                                map.addOverlay(marker); 
     66                                marker.openInfoWindowHtml(html); 
     67                } 
     68                }); 
     69                if (marker) map.addOverlay(marker); 
     70        } 
    5771} 
    5872 
  • trunk/templates/basic/includes/pages/search/search_suggest_js.tpl

    r157 r169  
    9696                                test2 = test[i].getElementsByTagName('td'); 
    9797                                document.getElementById('q').value = test2[0].innerHTML +' '+ test2[1].innerHTML; 
    98                                 test[i].style.background='blue'; 
     98                                test[i].style.background='orange'; 
    9999                        } else { 
    100100                                test[i].style.background='white'; 
     
    113113                                test2 = test[i].getElementsByTagName('td'); 
    114114                                document.getElementById('q').value = test2[0].innerHTML +' '+ test2[1].innerHTML; 
    115                                 test[i].style.background='blue'; 
     115                                test[i].style.background='orange'; 
    116116                        } else { 
    117117                                test[i].style.background='white'; 
     
    131131                        test[i].style.background='white'; 
    132132                } 
    133                 val.style.background='blue'; 
     133                val.style.background='orange'; 
    134134        } 
    135135        else { 
Note: See TracChangeset for help on using the changeset viewer.