source: extensions/rv_gmaps/trunk/map_data.php @ 28598

Last change on this file since 28598 was 28598, checked in by rvelices, 10 years ago

use trigger_change

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Author Date Id Revision
File size: 4.4 KB
Line 
1<?php
2if ( !defined('PHPWG_ROOT_PATH') )
3  define('PHPWG_ROOT_PATH','../../');
4include_once( PHPWG_ROOT_PATH.'include/common.inc.php' );
5
6if (!isset($rvm_dir))
7  access_denied( 'Plugin not installed' );
8
9include_once( dirname(__FILE__) .'/include/functions_map.php');
10include_once( dirname(__FILE__) .'/include/functions.php');
11
12
13//set_make_full_url();
14$page['root_path']=get_absolute_root_url(false);
15
16$rewritten = '';
17foreach (array_keys($_GET) as $key)
18{
19  $rewritten = $key;
20  break;
21}
22// deleting first "/" if displayed
23$tokens = explode(
24  '/',
25  preg_replace('#^/#', '', $rewritten)
26  );
27$next_token = 0;
28$result = rvm_parse_map_data_url($tokens, $next_token);
29$page = array_merge( $page, $result );
30
31$where_sql = rvm_bounds_to_sql( $page['box'] );
32
33$img_fields = ' i.id,i.representative_ext,i.name,i.comment,i.file,i.path,i.latitude AS lat,i.longitude AS lon,i.width,i.height,i.rotation';
34
35$was_flat = @$page['flat'];
36$page['flat']=true;
37rvm_build_section_items($img_fields, $where_sql, RVM_BUILD_HASH);
38if (!$was_flat) unset($page['flat']);
39
40/*header('Cache-Control: public' );
41header('Expires: '.gmdate('D, d M Y H:i:s', time()+600).' GMT');
42header('Pragma:');*/
43header('Content-Type: text/plain; charset='.get_pwg_charset());
44header('X-Robots-Tag: noindex');
45
46$clusters = array();
47$cluster_debug = '';
48if ( !empty($page['items']) )
49{
50  include_once( dirname(__FILE__) .'/include/cluster_maker.php');
51  $cm = new ClusterMaker();
52  $clusters = $cm->make_clusters(
53      $page['items'],
54      isset($_GET['lap']) ? $_GET['lap'] : 0.01,
55      isset($_GET['lop']) ? $_GET['lop'] : 0.01,
56      isset($_GET['n']) ? $_GET['n'] : rvm_get_config_var('nb_markers',40)
57    );
58  $cluster_debug .= ' cluster: '. $cm->debug_str. ';';
59}
60
61function jsgm_position( $position )
62{
63  return 'new google.maps.LatLng(' . $position['lat'] . ',' . $position['lon'] . ')';
64}
65
66function jsgm_bounds( $bounds )
67{
68  return 'new google.maps.LatLngBounds(' . jsgm_position(bounds_sw($bounds)) . ',' . jsgm_position(bounds_ne($bounds)) . ')';
69}
70
71function jsgm_str( $str )
72{
73  return '"'. str_replace(array("\\",'"',"\n","\r","\t"), array("\\\\",'\"',"\\n","\\r","\\t"), $str) .'"';
74}
75
76$start_output = get_moment();
77
78
79echo "{\ntitle:", jsgm_str( strip_tags(trigger_change('render_element_description', $page['title']) ) )
80  , ",\npage_url:", jsgm_str( duplicate_index_url( array('start'=>0) ) )
81  , ",\nblowup_url:", jsgm_str( rvm_duplicate_blowup_url( array('start'=>0) ) )
82  , ",\nkml_url:", jsgm_str( rvm_duplicate_kml_index_url( array('start'=>0, 'flat'=>1) ) )
83  , ",\nnb_items:", count($page['items']);
84
85echo ",\nbounds:";
86if ( isset($cm) )
87  echo jsgm_bounds( $cm->bounds );
88else
89  echo "null";
90
91echo ",\n\nnb_clusters:", count($clusters);
92
93echo ",\nimage_clusters:[\n";
94$i=0;
95$thumb_params = ImageStdParams::get_by_type(IMG_THUMB);
96$page_url_model = duplicate_picture_url(
97                array(
98                        'image_id' => 123456789,
99                        'image_file' => 'dummy_file.txt',
100                        'flat' => 1,
101                ),
102                array('start')
103        );
104
105foreach( $clusters as $c )
106{
107  if ($i) echo ",\n\n" ;
108  echo '{position:', jsgm_position( bounds_center($c->bounds) );
109  echo ",\nbounds:", jsgm_bounds( $c->bounds );
110  echo ",\nnb_items:", count($c->items);
111  echo ",\n";
112
113  echo 'blowup_url:"', rvm_duplicate_blowup_url(array('box'=>$c->bounds), array('start') ), '"';
114
115  $max_per_cluster = rvm_get_config_var('nb_images_per_marker',20);
116  if ( count($c->items) >  $max_per_cluster )
117    $c->items = array_slice($c->items, 0, $max_per_cluster);
118
119  echo ",\nitems:[";
120  for ($j=0; $j<count($c->items); $j++)
121  {
122    $img = $page['items'] [ $c->items[$j] ];
123
124                $page_url = str_replace(array('123456789','dummy_file'), array($img['id'], get_filename_wo_extension($img['file'])), $page_url_model);
125                $thumb = new DerivativeImage($thumb_params, new SrcImage($img));
126                $thsize = $thumb->get_size();
127
128    if ($j) echo( "," );
129    echo "{tn:", jsgm_str( $thumb->get_url() );
130                echo ",w:",$thsize[0],',h:',$thsize[1];
131    echo ",t:", jsgm_str( render_element_name($img) );
132    echo ",d:", jsgm_str( render_element_description($img) );
133    echo ",url:", jsgm_str( $page_url );
134    echo "}";
135  }
136  echo "]\n}";
137  $i++;
138}
139echo "] /*clusters*/\n";
140
141$time = get_elapsed_time($t2, get_moment());
142$page['queries_time'] = number_format($page['queries_time'],3,'.',' ');
143echo "\n,debug:'$time; out:", get_elapsed_time($start_output,get_moment()), ";$cluster_debug queries:", $page['count_queries'], " in ", $page['queries_time'], "s'\n" ;
144
145echo '}';
146?>
Note: See TracBrowser for help on using the repository browser.