''.html_print_image( 'images/list.png', true, [ 'title' => __('GIS Maps connections'), 'class' => 'invert_filter', ] ).'', ]; $action = get_parameter('action', 'create_connection_map'); if (is_ajax()) { } echo '
'; switch ($action) { case 'create_connection_map': // Header. ui_print_standard_header( __('Create new map connection'), '', false, 'map_connection_tab', true, $buttons, [ [ 'link' => '', 'label' => __('Setup'), ], [ 'link' => '', 'label' => __('Setup').' - '.__('Gis'), ], ] ); $mapConnection_name = ''; $mapConnection_group = ''; $mapConnection_numLevelsZoom = '19'; $mapConnection_defaultZoom = '16'; $mapConnection_type = 0; $mapConnection_defaultLatitude = '40.42056'; $mapConnection_defaultLongitude = '-3.708187'; $mapConnection_defaultAltitude = '0'; $mapConnection_centerLatitude = '40.42056'; $mapConnection_centerLongitude = '-3.708187'; $mapConnection_centerAltitude = '0'; $mapConnectionData = null; html_print_input_hidden('action', 'save_map_connection'); break; case 'edit_connection_map': // Header. ui_print_standard_header( __('Edit map connection'), '', false, 'map_connection_tab', true, $buttons, [ [ 'link' => '', 'label' => __('Setup'), ], [ 'link' => '', 'label' => __('Setup').' - '.__('Gis'), ], ] ); $idConnectionMap = get_parameter('id_connection_map'); $mapConnection = db_get_row_sql('SELECT * FROM tgis_map_connection WHERE id_tmap_connection = '.$idConnectionMap); $mapConnection_name = $mapConnection['conection_name']; $mapConnection_group = $mapConnection['group_id']; $mapConnection_numLevelsZoom = $mapConnection['num_zoom_levels']; $mapConnection_defaultZoom = $mapConnection['default_zoom_level']; $mapConnection_type = $mapConnection['connection_type']; $mapConnection_defaultLatitude = $mapConnection['default_latitude']; $mapConnection_defaultLongitude = $mapConnection['default_longitude']; $mapConnection_defaultAltitude = $mapConnection['default_altitude']; $mapConnection_centerLatitude = $mapConnection['initial_latitude']; $mapConnection_centerLongitude = $mapConnection['initial_longitude']; $mapConnection_centerAltitude = $mapConnection['initial_altitude']; $mapConnectionData = json_decode($mapConnection['conection_data'], true); html_print_input_hidden('id_connection_map', $idConnectionMap); html_print_input_hidden('action', 'save_edit_map_connection'); break; case 'save_map_connection': case 'save_edit_map_connection': $mapConnection_name = get_parameter('name'); $mapConnection_group = get_parameter('group'); $mapConnection_numLevelsZoom = get_parameter('num_levels_zoom'); $mapConnection_defaultZoom = get_parameter('initial_zoom'); $mapConnection_type = get_parameter('type'); $mapConnection_defaultLatitude = get_parameter('default_latitude'); $mapConnection_defaultLongitude = get_parameter('default_longitude'); $mapConnection_defaultAltitude = get_parameter('default_altitude'); $mapConnection_centerLatitude = get_parameter('center_latitude'); $mapConnection_centerLongitude = get_parameter('center_longitude'); $mapConnection_centerAltitude = get_parameter('center_altitude'); $idConnectionMap = get_parameter('id_connection_map', null); switch ($mapConnection_type) { case 'OSM': $mapConnection_OSM_url = get_parameter('url'); $mapConnectionData = [ 'type' => 'OSM', 'url' => $mapConnection_OSM_url, ]; break; case 'Gmap': $gmap_type = get_parameter('gmap_type'); $gmap_key = get_parameter('gmap_key'); $mapConnectionData = [ 'type' => 'Gmap', 'gmap_type' => $gmap_type, 'gmap_key' => $gmap_key, ]; break; case 'Static_Image': $mapConnection_Image_url = get_parameter('url'); $bb_left = get_parameter('bb_left'); $bb_right = get_parameter('bb_right'); $bb_top = get_parameter('bb_top'); $bb_bottom = get_parameter('bb_bottom'); $image_height = get_parameter('image_height'); $image_width = get_parameter('image_width'); $mapConnectionData = [ 'type' => 'Static_Image', 'url' => $mapConnection_Image_url, 'bb_left' => $bb_left, 'bb_right' => $bb_right, 'bb_top' => $bb_top, 'bb_bottom' => $bb_bottom, 'image_width' => $image_width, 'image_height' => $image_height, ]; break; case 'WMS': $url = get_parameter('url'); $layers = get_parameter('layers'); $mapConnectionData = [ 'type' => 'WMS', 'url' => $url, 'layers' => $layers, ]; break; default: // Default. break; } // TODO VALIDATE PARAMETERS. if ($mapConnection_name != '' && $mapConnection_type != '') { gis_save_map_connection( $mapConnection_name, $mapConnection_group, $mapConnection_numLevelsZoom, $mapConnection_defaultZoom, $mapConnection_defaultLatitude, $mapConnection_defaultLongitude, $mapConnection_defaultAltitude, $mapConnection_centerLatitude, $mapConnection_centerLongitude, $mapConnection_centerAltitude, $mapConnectionData, $idConnectionMap ); $errorfill = false; } else { $errorfill = true; } include_once 'gis.php'; return; break; default: // Default. break; } $table = new stdClass(); $table->width = '90%'; $table->data = []; $table->data[0][0] = __('Connection Name'); $table->data[0][1] = html_print_input_text('name', $mapConnection_name, '', 30, 60, true); $table->data[1][0] = __('Group'); $table->data[1][1] = html_print_select_groups(false, false, false, 'group', $mapConnection_group, '', __('All'), '0', true); $table->data[2][0] = __('Number of zoom levels'); $table->data[2][1] = html_print_input_text('num_levels_zoom', $mapConnection_numLevelsZoom, '', 4, 10, true); $table->data[3][0] = __('Default zoom level'); $table->data[3][1] = html_print_input_text('initial_zoom', $mapConnection_defaultZoom, '', 4, 10, true); echo '

'.__('Basic configuration').'

'; html_print_table($table); $table->width = '60%'; $table->data = []; $types['OSM'] = __('Open Street Maps'); $types['Gmap'] = __('Google Maps'); $types['Static_Image'] = __('Static Image'); $types['WMS'] = __('WMS Server'); $table->data[0][0] = __('Type'); $table->data[0][1] = html_print_select($types, 'sel_type', $mapConnection_type, 'selMapConnectionType();', __('Please select the connection type'), 0, true); echo '

'.__('Map connection type').'

'; html_print_table($table); $optionsConnectionTypeTable = ''; $mapConnectionDataUrl = ''; $gmap_type = ''; $gmap_key = ''; $bb_left = ''; $bb_right = ''; $bb_bottom = ''; $bb_top = ''; $image_width = ''; $image_height = ''; $layers = ''; if ($mapConnectionData != null) { switch ($mapConnection_type) { case 'OSM': $mapConnectionDataUrl = $mapConnectionData['url']; break; case 'Gmap': $gmap_type = $mapConnectionData['gmap_type']; $gmap_key = $mapConnectionData['gmap_key']; break; case 'Static_Image': $mapConnectionDataUrl = $mapConnectionData['url']; $bb_left = $mapConnectionData['bb_left']; $bb_right = $mapConnectionData['bb_right']; $bb_bottom = $mapConnectionData['bb_bottom']; $bb_top = $mapConnectionData['bb_top']; $image_width = $mapConnectionData['image_width']; $image_height = $mapConnectionData['image_height']; break; case 'WMS': $mapConnectionDataUrl = $mapConnectionData['url']; $layers = $mapConnectionData['layers']; break; default: // Default. break; } } // Open Street Map Connection. $optionsConnectionOSMTable = '
'.htmlentities( __('Tile Server URL'), ENT_QUOTES, 'UTF-8' ).':'.html_print_input_text( 'url', $mapConnectionDataUrl, '', 45, 90, true ).'
'; // Google Maps Connection. $gmaps_types['G_PHYSICAL_MAP'] = __('Google Physical'); $gmaps_types['G_HYBRID_MAP'] = __('Google Hybrid'); $gmaps_types['G_SATELITE_MAP'] = __('Google Satelite'); // TODO: Use label tags for the forms. $optionsConnectionGmapTable = '
'.__('Google Map Type').':'.trim( html_print_select( $gmaps_types, 'gmap_type', $gmap_type, '', '', 0, true, false, true, '', false, false, false, false, false, '', false, false, false, false, false ) ).'
'.__('Google Maps Key').':
'.html_print_input_text( 'gmap_key', $gmap_key, '', 90, 128, true ).'
'; // Image Map Connection. $optionsConnectionImageTable = '
'.__('Image URL').':'.html_print_input_text( 'url', $mapConnectionDataUrl, '', 45, 90, true ).'
'.__('Corners of the area of the image').':
'.__('Left').':'.html_print_input_text( 'bb_left', $bb_left, '', 25, 25, true ).''.__('Bottom').':'.html_print_input_text( 'bb_bottom', $bb_bottom, '', 25, 25, true ).'
'.__('Right').':'.html_print_input_text( 'bb_right', $bb_right, '', 25, 25, true ).''.__('Top').':'.html_print_input_text( 'bb_top', $bb_top, '', 25, 25, true ).'
'.__('Image Size').':
'.__('Width').':'.html_print_input_text( 'image_width', $image_width, '', 25, 25, true ).''.__('Height').':'.html_print_input_text( 'image_height', $image_height, '', 25, 25, true ).'
'; // WMS Server Connection. $optionsConnectionWMSTable = '
'.__('WMS Server URL').''.html_print_input_text( 'url', $mapConnectionDataUrl, '', 90, 255, true ).'
'.__('Layers').''.html_print_input_text( 'layers', $layers, '', 90, 255, true ).'
'; if ($mapConnectionData != null) { switch ($mapConnection_type) { case 'OSM': $optionsConnectionTypeTable = $optionsConnectionOSMTable; break; case 'Gmap': $optionsConnectionTypeTable = $optionsConnectionGmapTable; break; case 'Static_Image': $optionsConnectionTypeTable = $optionsConnectionImageTable; break; case 'WMS': $optionsConnectionTypeTable = $optionsConnectionWMSTable; break; default: // Default. break; } } echo "
".$optionsConnectionTypeTable.'
'; echo '

'.__('Preview to select the center of the map and the default position of an agent without gis data').'


'; html_print_button(__('Load preview map'), 'button_refresh', false, 'refreshMapView();', 'class="sub next"'); echo '

'; echo "
"; $table->width = '60%'; $table->data = []; // $table->colspan[0][3] = 3; $table->data[0][0] = ''; $table->data[0][1] = __('Map Center'); $table->data[0][2] = __('Default position for agents without GIS data'); $table->data[1][0] = __('Change in the map'); $table->data[1][1] = html_print_radio_button_extended( 'radio_button', 1, '', 1, false, 'changeSetManualPosition(true, false)', '', true ); $table->data[1][2] = html_print_radio_button_extended( 'radio_button', 2, '', 0, false, 'changeSetManualPosition(false, true)', '', true ); $table->data[2][0] = __('Latitude'); $table->data[2][1] = html_print_input_text( 'center_latitude', $mapConnection_centerLatitude, '', 10, 10, true ); $table->data[2][2] = html_print_input_text( 'default_latitude', $mapConnection_defaultLatitude, '', 10, 10, true ); $table->data[3][0] = __('Longitude'); $table->data[3][1] = html_print_input_text( 'center_longitude', $mapConnection_centerLongitude, '', 10, 10, true ); $table->data[3][2] = html_print_input_text( 'default_longitude', $mapConnection_defaultLongitude, '', 10, 10, true ); $table->data[4][0] = __('Altitude'); $table->data[4][1] = html_print_input_text( 'center_altitude', $mapConnection_centerAltitude, '', 10, 10, true ); $table->data[4][2] = html_print_input_text( 'default_altitude', $mapConnection_defaultAltitude, '', 10, 10, true ); html_print_table($table); echo '
'; html_print_submit_button(__('Save'), '', false, 'class="sub save wand"'); echo '
'; echo '
'; ui_require_javascript_file('OpenLayers/OpenLayers'); ui_require_javascript_file('openlayers.pandora'); ?>