added global max zoom

- better map center
- default filter same bounds as init map
This commit is contained in:
lenovo
2022-11-12 18:06:51 +01:00
parent 07694a71f0
commit 5497ceea0f
7 changed files with 63 additions and 29 deletions

View File

@@ -14,6 +14,7 @@ function mp_add_to_scripts($to_add) {
global $mp_icon_size_factor; global $mp_icon_size_factor;
global $mp_coordinates_default; global $mp_coordinates_default;
global $mp_icon_stroke_width; global $mp_icon_stroke_width;
global $mp_max_zoom;
wp_add_inline_script('mp_init_map', mp_php_to_js($mp_icon_size, 'icon_size'), 'before'); wp_add_inline_script('mp_init_map', mp_php_to_js($mp_icon_size, 'icon_size'), 'before');
wp_add_inline_script('mp_init_map', mp_php_to_js($mp_icon_color, 'icon_color'), 'before'); wp_add_inline_script('mp_init_map', mp_php_to_js($mp_icon_color, 'icon_color'), 'before');
@@ -21,6 +22,7 @@ function mp_add_to_scripts($to_add) {
wp_add_inline_script('mp_init_map', mp_php_to_js($mp_icon_size_factor, 'icon_size_factor'), 'before'); wp_add_inline_script('mp_init_map', mp_php_to_js($mp_icon_size_factor, 'icon_size_factor'), 'before');
wp_add_inline_script('mp_init_map', mp_php_to_js($mp_coordinates_default, 'coordinates_default'), 'before'); wp_add_inline_script('mp_init_map', mp_php_to_js($mp_coordinates_default, 'coordinates_default'), 'before');
wp_add_inline_script('mp_init_map', mp_php_to_js($mp_icon_stroke_width, 'icon_stroke_width'), 'before'); wp_add_inline_script('mp_init_map', mp_php_to_js($mp_icon_stroke_width, 'icon_stroke_width'), 'before');
wp_add_inline_script('mp_init_map', mp_php_to_js($mp_max_zoom, 'max_zoom'), 'before');
foreach ($to_add as $key => $var) { foreach ($to_add as $key => $var) {
wp_add_inline_script('mp_init_map', mp_php_to_js($var, $key), 'before'); wp_add_inline_script('mp_init_map', mp_php_to_js($var, $key), 'before');

View File

@@ -22,7 +22,7 @@ function mp_create_div(&$filters) {
'; ';
foreach ($filter as $value) { foreach ($filter as $value) {
$mp_map_div .= ' $mp_map_div .= '
<p onclick="filter_show_only_selection('.json_encode($value->indexes).', true)">'.$value->_name.'</p> <p onclick="filter_show_only_selection('.json_encode($value->indexes).', false)">'.$value->_name.'</p>
'; ';
} }
$mp_map_div .= ' $mp_map_div .= '

View File

@@ -45,10 +45,6 @@ function mp_fill_name($fields, $name, &$menu, $index) {
} }
// add location index, if not there already // add location index, if not there already
if (! in_array($index, $menu_item->indexes) ) { if (! in_array($index, $menu_item->indexes) ) {
mp_console_log("add index:");
mp_console_log($index);
mp_console_log("to menu_item:");
mp_console_log($menu_item);
array_push($menu_item->indexes, $index); array_push($menu_item->indexes, $index);
} }
} }
@@ -64,10 +60,6 @@ function mp_fill_name($fields, $name, &$menu, $index) {
array_push($menu_item->$key_field, $value); array_push($menu_item->$key_field, $value);
} }
// add list of location index // add list of location index
mp_console_log("add index:");
mp_console_log($index);
mp_console_log("to menu_item:");
mp_console_log($menu_item);
$menu_item->indexes = [$index]; $menu_item->indexes = [$index];
// and add this item to list of menu // and add this item to list of menu
@@ -85,9 +77,6 @@ function mp_get_filters(&$events) {
"mode" => ($event->irl)? "En présentiel" : "En ligne", "mode" => ($event->irl)? "En présentiel" : "En ligne",
); );
$index = $event->index; $index = $event->index;
mp_console_log(" ");
mp_console_log("EVENT:");
mp_console_log($event);
foreach ($fields as $key => $value) { foreach ($fields as $key => $value) {
if (! isset($filters->$key)) if (! isset($filters->$key))
$filters->$key = []; $filters->$key = [];

View File

@@ -4,11 +4,11 @@
// bounds : https://stackoverflow.com/questions/19304574/center-set-zoom-of-map-to-cover-all-visible-markers/19304625#19304625 // bounds : https://stackoverflow.com/questions/19304574/center-set-zoom-of-map-to-cover-all-visible-markers/19304625#19304625
/** /**
* if show_only is true: * if zoom_in is true:
* erase all other markers from the map, * zoom to new selection,
* else, they stay visible * even if already visible in current view
*/ */
function filter_show_only_selection(indexes, show_only = true) { function filter_show_only_selection(indexes, zoom_in = false) {
console.log("indexes:"); console.log("indexes:");
console.log(indexes); console.log(indexes);
@@ -17,8 +17,7 @@ function filter_show_only_selection(indexes, show_only = true) {
if (indexes_count === 0) if (indexes_count === 0)
return; return;
if (show_only) g_marker_cluster.clearMarkers(true);
g_marker_cluster.clearMarkers(true);
let marker = g_markers[0]; let marker = g_markers[0];
let position = marker.getPosition(); let position = marker.getPosition();
@@ -37,23 +36,23 @@ function filter_show_only_selection(indexes, show_only = true) {
outside_bounds = true; outside_bounds = true;
bounds.extend(position); bounds.extend(position);
if (show_only) g_marker_cluster.addMarker(marker, true);
g_marker_cluster.addMarker(marker, true);
} }
if ( show_only == false || (show_only && outside_bounds) ) { if (zoom_in || outside_bounds) {
if (indexes_count === 1) { if (indexes_count === 1) {
g_map.setCenter(position); g_map.setCenter(position);
g_map.setZoom(5); g_map.setZoom(max_zoom);
} }
else if (indexes_count > 1) else if (indexes_count > 1)
g_map.fitBounds(bounds); g_map.fitBounds(bounds);
} }
if (show_only) g_marker_cluster.render();
g_marker_cluster.render();
} }
function filter_show_all() { function filter_show_all() {
g_marker_cluster.addMarkers(g_markers); g_marker_cluster.addMarkers(g_markers);
g_map.fitBounds(g_init_bounds); //g_map.fitBounds(g_init_bounds);
g_map.setCenter(coordinates_default);
g_map.setZoom(2);
} }

View File

@@ -40,6 +40,7 @@ function mp_init_map() {
* - let icon_color_back = "" * - let icon_color_back = ""
* - let icon_size = [x, y] * - let icon_size = [x, y]
* - let cluster_size_factor = Number * - let cluster_size_factor = Number
* - let max_zoom = x
*/ */
console.log("locations:"); console.log("locations:");

View File

@@ -2,12 +2,15 @@
/** /**
* global variables : * global variables :
*
* DO NOT MODIFY !
* modify mp_optionnals.php or mp_required.php instead
*/ */
$mp_icon_base_url = '/wp-content/plugins/map_prof/images/';
$mp_icon_url = $mp_icon_base_url . $mp_icon_file;
$mp_icon_cluster_url = $mp_icon_base_url . $mp_icon_cluster_file;
/* ICON SIZE
*/
$mp_icon_size = [40, 40]; $mp_icon_size = [40, 40];
if (isset($mp_settings_icon_size)) { if (isset($mp_settings_icon_size)) {
if (is_array($mp_settings_icon_size)) { if (is_array($mp_settings_icon_size)) {
@@ -19,18 +22,30 @@ if (isset($mp_settings_icon_size)) {
} }
} }
/* ICON COLOR
*/
$mp_icon_color = "#ba197a"; $mp_icon_color = "#ba197a";
if (isset($mp_settings_icon_color)) if (isset($mp_settings_icon_color))
$mp_icon_color = $mp_settings_icon_color; $mp_icon_color = $mp_settings_icon_color;
/* ICON FACTOR SIZE
*/
$mp_icon_size_factor = 2.5; $mp_icon_size_factor = 2.5;
if (isset($mp_settings_icon_size_factor)) if (isset($mp_settings_icon_size_factor))
$mp_icon_size_factor = $mp_settings_icon_size_factor; $mp_icon_size_factor = $mp_settings_icon_size_factor;
/* DEFAULT COORDINATES
*/
$mp_coordinates_default = (object)["lat" => 46.227638, "lng" => 2.213749]; // france $mp_coordinates_default = (object)["lat" => 46.227638, "lng" => 2.213749]; // france
if (isset($mp_settings_coordinates_default)) if (isset($mp_settings_coordinates_default))
$mp_coordinates_default = $mp_settings_coordinates_default; $mp_coordinates_default = $mp_settings_coordinates_default;
/* ICON COLOR
*/
$mp_icon_color = "#ba197a"; $mp_icon_color = "#ba197a";
$mp_icon_color_back = "#ffffff99"; $mp_icon_color_back = "#ffffff99";
if (isset($mp_settings_icon_color)) if (isset($mp_settings_icon_color))
@@ -38,8 +53,19 @@ if (isset($mp_settings_icon_color))
if (isset($mp_settings_icon_color_back)) if (isset($mp_settings_icon_color_back))
$mp_icon_color_back = $mp_settings_icon_color_back; $mp_icon_color_back = $mp_settings_icon_color_back;
/* ICON STROKE WIDTH
*/
$mp_icon_stroke_width = 6; $mp_icon_stroke_width = 6;
if (isset($mp_settings_icon_stroke_width)) if (isset($mp_settings_icon_stroke_width))
$mp_icon_stroke_width = $mp_settings_icon_stroke_width; $mp_icon_stroke_width = $mp_settings_icon_stroke_width;
/* MAX ZOOM
*/
$mp_max_zoom = 5;
if (isset($mp_settings_max_zoom))
$mp_max_zoom = $mp_settings_max_zoom;
?> ?>

View File

@@ -11,6 +11,7 @@
/* ************************************ /* ************************************
dimensions de l'icone des marqueurs dimensions de l'icone des marqueurs
_
valeur par defaut [40, 40] valeur par defaut [40, 40]
************************************ */ ************************************ */
//$mp_settings_icon_size = [50, 50]; //$mp_settings_icon_size = [50, 50];
@@ -19,6 +20,7 @@
/* ************************************ /* ************************************
facteur de taille des clusters facteur de taille des clusters
_
valeur par defaut "2.5" valeur par defaut "2.5"
************************************ */ ************************************ */
//$mp_settings_icon_size_factor = 4; //$mp_settings_icon_size_factor = 4;
@@ -29,9 +31,10 @@
coordonnees par defaut coordonnees par defaut
(pour centrer la carte globale, (pour centrer la carte globale,
et en cas de mauvaises adresses) et en cas de mauvaises adresses)
_
valeur par defaut "france" valeur par defaut "france"
************************************ */ ************************************ */
//$mp_settings_coordinates_default = {lat:35.746512, lng:-39.462891}; // oceant atlantique nord $mp_settings_coordinates_default = (object)["lat" => 30.0, "lng" => -1.0]; // carte mieux centree
@@ -39,6 +42,7 @@
couleurs d'icones couleurs d'icones
- couleur de contour - couleur de contour
- couleur de remplissage - couleur de remplissage
_
valeurs par defaut "#ba197a" valeurs par defaut "#ba197a"
"#ffffff99" "#ffffff99"
************************************ */ ************************************ */
@@ -59,9 +63,22 @@
/* ************************************ /* ************************************
epaisseur de trait des icones epaisseur de trait des icones
_
valeurs par defaut "6" valeurs par defaut "6"
************************************ */ ************************************ */
$mp_settings_icon_stroke_width = 8; $mp_settings_icon_stroke_width = 8;
/* ************************************
zoom automatique maximum sur les
marqueurs
_
valeurs par defaut "5"
************************************ */
$mp_settings_max_zoom = 4;
?> ?>