More options to browse GIS data
This commit is contained in:
parent
12038bd0c7
commit
48c707a8e1
@ -593,6 +593,15 @@ function PMA_displayTableHeaders(&$is_display, &$fields_meta, $fields_cnt = 0, $
|
||||
PMA_display_html_checkbox('hide_transformation', __('Hide') . ' ' . __('Browser transformation'), ! empty($_SESSION['tmp_user_values']['hide_transformation']), false);
|
||||
echo '</div>';
|
||||
|
||||
echo '<div class="formelement">';
|
||||
$choices = array(
|
||||
'GEOM' => __('Geometry'),
|
||||
'WKT' => __('Well Known Text'),
|
||||
'WKB' => __('Well Known Binary')
|
||||
);
|
||||
PMA_display_html_radio('geometry_display', $choices, $_SESSION['tmp_user_values']['geometry_display']);
|
||||
echo '</div>';
|
||||
|
||||
echo '<div class="clearfloat"></div>';
|
||||
echo '</fieldset>';
|
||||
|
||||
@ -1386,12 +1395,70 @@ function PMA_displayTableBody(&$dt_result, &$is_display, $map, $analyzed_sql) {
|
||||
}
|
||||
// g e o m e t r y
|
||||
} elseif ($meta->type == 'geometry') {
|
||||
$geometry_text = PMA_handle_non_printable_contents('GEOMETRY', (isset($row[$i]) ? $row[$i] : ''), $transform_function, $transform_options, $default_function, $meta);
|
||||
|
||||
// remove 'inline_edit' from $class as we can't edit geometry data.
|
||||
// Remove 'inline_edit' from $class as we do not allow to inline-edit geometry data.
|
||||
$class = str_replace('inline_edit', '', $class);
|
||||
$vertical_display['data'][$row_no][$i] = PMA_buildValueDisplay($class, $condition_field, $geometry_text);
|
||||
unset($geometry_text);
|
||||
|
||||
// Display as [GEOMETRY - (size)]
|
||||
if ('GEOM' == $_SESSION['tmp_user_values']['geometry_display']) {
|
||||
$geometry_text = PMA_handle_non_printable_contents(
|
||||
'GEOMETRY', (isset($row[$i]) ? $row[$i] : ''), $transform_function,
|
||||
$transform_options, $default_function, $meta
|
||||
);
|
||||
$vertical_display['data'][$row_no][$i] = PMA_buildValueDisplay(
|
||||
$class, $condition_field, $geometry_text
|
||||
);
|
||||
|
||||
// Display in Well Known Text(WKT) format.
|
||||
} elseif ('WKT' == $_SESSION['tmp_user_values']['geometry_display']) {
|
||||
// Convert to WKT format
|
||||
$wktsql = "SELECT ASTEXT (GeomFromWKB(x'" . PMA_substr(bin2hex($row[$i]), 8) . "'))";
|
||||
$wktresult = PMA_DBI_try_query($wktsql, null, PMA_DBI_QUERY_STORE);
|
||||
$wktarr = PMA_DBI_fetch_row($wktresult, 0);
|
||||
$wktval = $wktarr[0];
|
||||
@PMA_DBI_free_result($wktresult);
|
||||
|
||||
if (PMA_strlen($wktval) > $GLOBALS['cfg']['LimitChars']
|
||||
&& $_SESSION['tmp_user_values']['display_text'] == 'P'
|
||||
) {
|
||||
$wktval = PMA_substr($wktval, 0, $GLOBALS['cfg']['LimitChars']) . '...';
|
||||
$is_field_truncated = true;
|
||||
}
|
||||
|
||||
$vertical_display['data'][$row_no][$i] = '<td ' . PMA_prepare_row_data(
|
||||
$class, $condition_field, $analyzed_sql, $meta, $map, $wktval, $transform_function,
|
||||
$default_function, $nowrap, $where_comparison, $transform_options, $is_field_truncated
|
||||
);
|
||||
|
||||
// Display in Well Known Binary(WKB) format.
|
||||
} else {
|
||||
if ($_SESSION['tmp_user_values']['display_binary']) {
|
||||
if ($_SESSION['tmp_user_values']['display_binary_as_hex']
|
||||
&& PMA_contains_nonprintable_ascii($row[$i])
|
||||
) {
|
||||
$wkbval = PMA_substr(bin2hex($row[$i]), 8);
|
||||
} else {
|
||||
$wkbval = htmlspecialchars(PMA_replace_binary_contents($row[$i]));
|
||||
}
|
||||
|
||||
if (PMA_strlen($wkbval) > $GLOBALS['cfg']['LimitChars']
|
||||
&& $_SESSION['tmp_user_values']['display_text'] == 'P'
|
||||
) {
|
||||
$wkbval = PMA_substr($wkbval, 0, $GLOBALS['cfg']['LimitChars']) . '...';
|
||||
$is_field_truncated = true;
|
||||
}
|
||||
|
||||
$vertical_display['data'][$row_no][$i] = '<td ' . PMA_prepare_row_data(
|
||||
$class, $condition_field, $analyzed_sql, $meta, $map, $wkbval, $transform_function,
|
||||
$default_function, $nowrap, $where_comparison, $transform_options, $is_field_truncated
|
||||
);
|
||||
} else {
|
||||
$wkbval = PMA_handle_non_printable_contents(
|
||||
'BINARY', $row[$i], $transform_function, $transform_options, $default_function, $meta, $_url_params
|
||||
);
|
||||
$vertical_display['data'][$row_no][$i] = PMA_buildValueDisplay($class, $condition_field, $wkbval);
|
||||
}
|
||||
}
|
||||
|
||||
// n o t n u m e r i c a n d n o t B L O B
|
||||
} else {
|
||||
@ -1788,6 +1855,13 @@ function PMA_displayTable_checkConfigParams()
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['relational_display'] = 'K';
|
||||
}
|
||||
|
||||
if (PMA_isValid($_REQUEST['geometry_display'], array('WKT', 'WKB', 'GEOM'))) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['geometry_display'] = $_REQUEST['geometry_display'];
|
||||
unset($_REQUEST['geometry_display']);
|
||||
} elseif (empty($_SESSION['tmp_user_values']['query'][$sql_md5]['geometry_display'])) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['geometry_display'] = 'GEOM';
|
||||
}
|
||||
|
||||
if (isset($_REQUEST['display_binary'])) {
|
||||
$_SESSION['tmp_user_values']['query'][$sql_md5]['display_binary'] = true;
|
||||
unset($_REQUEST['display_binary']);
|
||||
@ -1846,6 +1920,7 @@ function PMA_displayTable_checkConfigParams()
|
||||
// populate query configuration
|
||||
$_SESSION['tmp_user_values']['display_text'] = $_SESSION['tmp_user_values']['query'][$sql_md5]['display_text'];
|
||||
$_SESSION['tmp_user_values']['relational_display'] = $_SESSION['tmp_user_values']['query'][$sql_md5]['relational_display'];
|
||||
$_SESSION['tmp_user_values']['geometry_display'] = $_SESSION['tmp_user_values']['query'][$sql_md5]['geometry_display'];
|
||||
$_SESSION['tmp_user_values']['display_binary'] = isset($_SESSION['tmp_user_values']['query'][$sql_md5]['display_binary']) ? true : false;
|
||||
$_SESSION['tmp_user_values']['display_binary_as_hex'] = isset($_SESSION['tmp_user_values']['query'][$sql_md5]['display_binary_as_hex']) ? true : false;
|
||||
$_SESSION['tmp_user_values']['display_blob'] = isset($_SESSION['tmp_user_values']['query'][$sql_md5]['display_blob']) ? true : false;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user