/** * Endpoint AJAX pour récupérer les bâtiments d'autres voies dans les limites actuelles de la carte */ /** * Endpoint AJAX pour récupérer les bâtiments d'autres voies dans les limites actuelles de la carte */ function get_other_buildings_ajax() { // Vérifier Nonce check_ajax_referer('geneve_archi_map_nonce', '_ajax_nonce'); // *** MODIFICATION: Vérifier les nouveaux paramètres *** if (!isset($_POST['code_voie'])) { wp_send_json_error(['message' => 'Code voie manquant pour autres bâtiments']); return; } $min_lat = isset($_POST['min_lat']) ? floatval($_POST['min_lat']) : null; $min_lng = isset($_POST['min_lng']) ? floatval($_POST['min_lng']) : null; $max_lat = isset($_POST['max_lat']) ? floatval($_POST['max_lat']) : null; $max_lng = isset($_POST['max_lng']) ? floatval($_POST['max_lng']) : null; if (is_null($min_lat) || is_null($min_lng) || is_null($max_lat) || is_null($max_lng)) { wp_send_json_error(['message' => 'Limites de carte (bounds) manquantes ou invalides pour autres bâtiments']); return; } // *** FIN MODIFICATION *** $code_voie_current = sanitize_text_field($_POST['code_voie']); $zoom = isset($_POST['zoom']) ? intval($_POST['zoom']) : 0; // Limiter le nombre de bâtiments $limit = 100; if ($zoom > 17) $limit = 250; elseif ($zoom > 15) $limit = 150; global $wpdb; // Récupérer les bâtiments d'autres voies $other_buildings_db = $wpdb->get_results($wpdb->prepare( "SELECT DISTINCT ba.batiment_id, g.id as address_id, g.adresse, g.latitude as lat, g.longitude as lng, p.post_title as building_title FROM {$wpdb->posts} p JOIN {$wpdb->prefix}building_addresses ba ON p.ID = ba.batiment_id JOIN {$wpdb->prefix}geneva g ON ba.adresse_id = g.id WHERE p.post_type = 'batiment' AND p.post_status = 'publish' AND g.latitude IS NOT NULL AND g.longitude IS NOT NULL AND g.latitude BETWEEN %f AND %f AND g.longitude BETWEEN %f AND %f AND ba.code_voie != %s LIMIT %d", $min_lat, $max_lat, $min_lng, $max_lng, $code_voie_current, $limit * 2 // Limite plus large pour filtrage doublons )); if ($wpdb->last_error) { error_log("Erreur SQL get_other_buildings: " . $wpdb->last_error); wp_send_json_error(['message' => 'Erreur base de données lors de la recherche d\'autres bâtiments.']); return; } $result = []; $processed_buildings = []; $count_other = 0; foreach ($other_buildings_db as $b) { if ($count_other >= $limit) break; if (!in_array($b->batiment_id, $processed_buildings)) { $permalink = get_permalink($b->batiment_id); $result[] = [ 'id' => $b->address_id, 'lat' => $b->lat, 'lng' => $b->lng, 'adresse' => $b->adresse, 'building_id' => $b->batiment_id, 'building_title' => $b->building_title, 'building_url' => $permalink ?: '#' ]; $processed_buildings[] = $b->batiment_id; $count_other++; } } wp_send_json_success($result); } // Assurer que l'action est bien enregistrée add_action('wp_ajax_get_other_buildings', 'get_other_buildings_ajax'); add_action('wp_ajax_nopriv_get_other_buildings', 'get_other_buildings_ajax'); Route de Vireloup 45 – Genève-archi

Route de Vireloup 45

Maison individuelle, dont la date de construction est inconnue, mais cadastrée en 1806[1].

Notes et références

  1. Référencé dans le recensement architectural du canton (commune de Collex-Bossy), accessible sur site du RAC[1]

Notes et références

Informations

Adresse(s) :
Route de Vireloup 45TER, 1239 Collex

Voie(s) : Route de Vireloup

Secteur(s) statistique(s) : 1500050 - Collex

Commune(s) : Collex-Bossy

Année(s) : 23.09.21 08:58:51

Source(s) : RAC Collex-Bossy

Photos associées

Aucune photo n'est associée à ce bâtiment pour le moment.

Localisation