get('multi_input_type'); $marpod = $newParams->get('marker_podvprasanje'); //ali dodam podvprasanje v infowindow $naslovpod = $newParams->get('naslov_podvprasanja_map'); //dobi naslov podvprasanja mape /* * tukaj se pogleda, ali ima user nastavljeno na prikaz vseh enot (1) ali samo ustrezne (2) global $global_user_id; SurveyUserSetting :: getInstance()->Init($json['ank_id'], $global_user_id); $currentProfileId = SurveyUserSetting :: getInstance()->getSettings('default_status_profile_'.A_ANALYSIS); error_log(json_encode($currentProfileId)); */ if($row['enota'] == 3){ $sql1 = sisplet_query("SELECT vm.vre_id, vm.lat, vm.lng, vm.address, v.naslov FROM srv_vrednost AS v LEFT JOIN srv_vrednost_map AS vm ON v.id = vm.vre_id WHERE v.spr_id='".$json['spr_id']."'", 'array'); //je vec vrednosti if(!isset($sql1['lat'])) $map_data['data'] = $sql1; //je ena vrednost else $map_data['data'][] = $sql1; //get info shapes $sql2 = sisplet_query("SELECT lat, lng, address, overlay_id FROM srv_vrednost_map WHERE spr_id='".$json['spr_id']."' AND overlay_type='polyline' ORDER BY overlay_id, vrstni_red", 'array'); $map_data_info_shapes = array(); //create json data for info shapes $st_linij=0; $last_id=0; foreach ($sql2 as $line_row) { if($line_row['overlay_id'] != $last_id){ $st_linij++; $last_id = $line_row['overlay_id']; $map_data_info_shapes[$st_linij-1]['overlay_id']=$line_row['overlay_id']; $map_data_info_shapes[$st_linij-1]['address']=$line_row['address']; $map_data_info_shapes[$st_linij-1]['path']= array(); } $path = array(); $path['lat']=floatval($line_row['lat']); $path['lng']=floatval($line_row['lng']); array_push($map_data_info_shapes[$st_linij-1]['path'], $path); } $map_data['info_shapes'] = $map_data_info_shapes; } else{ if($input == 'marker') $str_query = "SELECT REPLACE(REPLACE(REPLACE(sdm.address,'\n',' '),'\r',' '),'|',' ') as address, " . "REPLACE(REPLACE(REPLACE(sdm.text,'\n',' '),'\r',' '),'|',' ') as text, sdm.lat, sdm.lng " . "FROM srv_data_map AS sdm JOIN srv_user AS u ON sdm.usr_id = u.id WHERE u.deleted = '0' AND sdm.spr_id = ". $json['spr_id']; else $str_query = "SELECT sdm.lat, sdm.lng, sdm.usr_id " . "FROM srv_data_map AS sdm JOIN srv_user AS u ON sdm.usr_id = u.id WHERE u.deleted = '0' AND sdm.spr_id = ". $json['spr_id']; if($json['usr_id'] != '-1') $str_query.=" AND usr_id = ". $json['usr_id']; if($json['loop_id'] != '0' && $json['loop_id'] != '-1') $str_query.=" AND loop_id = ". $json['loop_id']; if($input != 'marker'){ $str_query.=" ORDER BY sdm.usr_id, sdm.vrstni_red"; $map_data1 = sisplet_query($str_query, 'array'); //iterate and convert all coordinates to float - needed for JS /*for($i=0; $i 0) ? true : false; if($marpod > 0 && $naslovpod != '') $map_data['podvprasanje_naslov'] = $naslovpod; echo json_encode($map_data); } exit(); } //podatki o markerjih o vseh userjih za to spremenljivko glede na filterje function mapDataAll() { if(isset($_POST['map_data'])) { $json = $_POST['map_data']; //nastavimo podstran, da nam naredi pravilen profileId pri kreiranju filterjev $_POST['podstran'] = A_ANALYSIS; //zazenemo in pridobimo podatke o spremenljivki $a = new SurveyAnalysis(); $a->Init($json['ank_id']); $spremenljivka = $a::$_HEADERS[$json['spr_id']."_".$json['loop_id']]; $_answers = $a->getAnswers($spremenljivka, -1, true); $_valid_answers = $_answers['valid']; //pridobimo predelan json pripravljen za js $map_data = $this->prepareMapDataAll($json['spr_id'], $_valid_answers); echo json_encode($map_data); } exit(); } /** * * @global type $lang * @param int $spid - id spremenljivke * @param array $_valid_answers - array vseh valid answers pridobljen iz SurveyAnalysis->getAnswers() * @return array json predelanih podatkov, pripravljenih za filanje markerjev na mapo v js */ private static function prepareMapDataAll($spid, $_valid_answers){ global $lang; $spremenljivka = Cache::srv_spremenljivka($spid); $newParams = new enkaParameters($spremenljivka['params']); $input = $newParams->get('multi_input_type'); $marpod = $newParams->get('marker_podvprasanje'); //ali dodam podvprasanje v infowindow $naslovpod = $newParams->get('naslov_podvprasanja_map'); //dobi naslov podvprasanja mape $enota = $spremenljivka["enota"]; //tukaj ni choose location, zato locujemo samo med markerji ali shape //ali je shape if($input != 'marker'){ $map_data = array('data' => array()); //gremo cez vsak odgovor foreach ($_valid_answers as $user_id => $row1) { $new_row = array(); //v podatkih so podatki o koordinatah deljena s
, zato je treba to razbit $values = array_values($row1); //dobimo array vseh koordinat za ta odgovor $latlngs = explode('
',$values[0]); //kreiraj array za vsak marker posebej in ga dodaj v parent array for($i = 0; $i < count($latlngs); $i++){ //v podatkih so lat in lng deljena z vejico, razbij $latlng = explode(', ',$latlngs[$i]); $new_row = array("lat" => floatval($latlng[0]), "lng" => floatval($latlng[1])); //filaj koordinate v array if($map_data['data'][$user_id]) array_push($map_data['data'][$user_id], $new_row); else $map_data['data'][$user_id] = array($new_row); } } } //markerji else{ $map_data = array(); //gremo cez vsak odgovor foreach ($_valid_answers as $row1) { $new_row = array(); $values = array_values($row1); //addres je vedno prva, razbij jo $addresses = explode('
',$values[0]); //ce marker nima nastavljene podvprasanja, sta samo address in koordinate if(count($values) == 2){ $latlngs = explode('
',$values[1]); $texts = null; } //verjetno je nastavljeno podvprasanje, zato so 3 kolumne (address, text, koordinate) else{ $latlngs = explode('
',$values[2]); $texts = explode('
',$values[1]); } //kreiraj array za vsak marker posebej in ga dodaj v parent array for($i = 0; $i < count($addresses); $i++){ //v podatkih so lat in lng deljena z vejico, razbij $latlng = explode(', ',$latlngs[$i]); //ce je nastavljeno podvprasanje, dodaj tudi to v array if($texts) $new_row = array("address" => $addresses[$i], "text" => $texts[$i], "lat" => floatval($latlng[0]), "lng" => floatval($latlng[1])); else $new_row = array("address" => $addresses[$i], "lat" => floatval($latlng[0]), "lng" => floatval($latlng[1])); array_push($map_data, $new_row); } } } //dodaj se osnovne info oz. parametre o spremenljivki $map_data['input_type'] = $input; $map_data['enota'] = $enota; $map_data['podvprasanje'] = ($marpod > 0) ? true : false; if($marpod > 0 && $naslovpod != '') $map_data['podvprasanje_naslov'] = $naslovpod; return ($map_data); } }