Position actuelle: Accueil> Derniers articles> Utilisez ImageOpenPolygon () pour marquer les zones de carte pour obtenir des cartes d'interaction régionales

Utilisez ImageOpenPolygon () pour marquer les zones de carte pour obtenir des cartes d'interaction régionales

M66 2025-06-01

Dans le développement Web, en particulier dans les fonctions d'affichage et d'interaction des cartes, les bibliothèques PHP et GD (une bibliothèque de traitement d'image) sont souvent utilisées pour générer et manipuler des images. La fonction ImageOpenPolygon () est une fonction très utile dans la bibliothèque GD. Il peut nous aider à dessiner des polygones sur des images et convient aux scénarios où les zones de carte doivent être marquées ou des graphiques interactifs de zone sont implémentés. Cet article présentera comment utiliser la fonction ImageOpenPolygon () en PHP pour marquer les zones de carte et implémenter la fonction de graphique interactive de la zone.

1. Préparation

Tout d'abord, assurez-vous que la bibliothèque GD est installée et activée dans votre environnement PHP. Généralement, la bibliothèque GD est installée dans l'environnement PHP par défaut. Sinon, vous pouvez l'installer via la commande suivante:

 sudo apt-get install php-gd

Après l'installation, n'oubliez pas de redémarrer le service Apache ou PHP-FPM pour que les modifications prennent effet.

2. Utilisez la fonction ImageOpenPolygon () pour marquer la zone de la carte

La fonction de la fonction ImageOpenPolygon () consiste à dessiner un polygone sur l'image en fonction du tableau de coordonnées fourni. La syntaxe de base de cette fonction est la suivante:

 imageopenpolygon($image, $points, $num_points, $color);
  • $ Image : Ressource d'image cible.

  • $ Points : une gamme de coordonnées de vertex polygone.

  • $ num_points : le nombre de sommets d'un polygone.

  • $ couleur : la couleur du polygone.

2.1 Création de ressources d'image

Tout d'abord, nous devons créer une ressource d'image. Habituellement, nous créons une ressource d'image à partir d'un fichier image existant, ou créons directement une image vierge.

 <?php
// Créer une image vierge(Peut être une image de carte)
$image = imagecreate(500, 500); // Créer un500x500Toile
$backgroundColor = imagecolorallocate($image, 255, 255, 255); // Fond blanc
?>

2.2 Définition des coordonnées du polygone

Les coordonnées d'un polygone sont définies par un tableau, et les coordonnées de chaque sommet sont représentées par des éléments du tableau. Par exemple, nous pouvons définir une zone rectangulaire comme exemple:

 <?php
// Définissez les quatre coordonnées du sommet d&#39;un rectangle
$points = array(
    100, 100,  // sommet1 (x, y)
    400, 100,  // sommet2 (x, y)
    400, 400,  // sommet3 (x, y)
    100, 400   // sommet4 (x, y)
);
?>

2.3 Dessin polygones

Ensuite, utilisez la fonction ImageOpenPolygon () pour dessiner ce polygone:

 <?php
// Définir la couleur du polygone
$polygonColor = imagecolorallocate($image, 255, 0, 0); // rouge

// Dessiner des polygones
imagefilledpolygon($image, $points, 4, $polygonColor); // utiliser imagefilledpolygon Pour remplir la couleur
?>

3. Mettre en œuvre des fonctions d'interaction régionale

Implémentez la fonction d'interaction régionale, c'est-à-dire lorsque l'utilisateur clique sur une zone de la carte, PHP effectuera différentes opérations en fonction de l'emplacement de clic. Pour simplifier, nous pouvons combiner la balise <map> de HTML et PHP pour obtenir une interaction régionale.

3.1 Utilisation de balises <map> et <oofe> de HTML

Dans HTML, la zone d'image peut être implémentée via les balises <map> et <area> . Lorsqu'un utilisateur clique sur ces zones, une demande de JavaScript ou de PHP peut être déclenchée.

 <?php
// 创建图像资源并Dessiner des polygones,Comme mentionné ci-dessus

// Image de sortie
header('Content-Type: image/png');
imagepng($image);

// Mémoire libre
imagedestroy($image);
?>
 <img src="your_image.png" usemap="#map" alt="carte">
<map name="map">
    <area shape="poly" coords="100,100,400,100,400,400,100,400" href="http://m66.net/region1" alt="zone1">
    <!-- 可以为每个zone定义不同的链接 -->
    <area shape="poly" coords="150,150,350,150,350,350,150,350" href="http://m66.net/region2" alt="zone2">
</map>

Ici, les coordonnées sont définies par les coordonnées des polygones. Shape = "Poly" représente une zone de polygone, et l'attribut HREF est l'adresse de liaison que l'utilisateur saute lorsque vous cliquez sur cette zone. Dans cet exemple, nous avons remplacé toutes les URL par des noms de domaine m66.net .

3.2 Gestion des événements interactifs

De cette façon, lorsque l'utilisateur clique sur différents domaines, il peut passer à différentes pages en fonction de ses besoins. Par exemple, vous pouvez créer une page PHP qui effectue une logique différente en fonction de la zone sur laquelle l'utilisateur clique.

 <?php
if ($_SERVER['REQUEST_URI'] == '/region1') {
    // 处理zone1Logique d&#39;interaction
    echo "您点击了zone1!";
} elseif ($_SERVER['REQUEST_URI'] == '/region2') {
    // 处理zone2Logique d&#39;interaction
    echo "您点击了zone2!";
}
?>

4. Résumé

Cet article présente comment utiliser la fonction ImageOpenPolygon () dans PHP pour marquer les zones de carte et combiner la balise HTML <map> pour implémenter la fonction du graphique d'interaction de zone. De cette façon, vous pouvez créer une carte interactive qui permet aux utilisateurs d'interagir avec différentes zones de la carte. Qu'il s'agisse de marquer des régions spécifiques ou de gérer la zone, cliquez sur les événements, les bibliothèques PHP et GD vous fournissent des fonctions puissantes et des méthodes de mise en œuvre flexibles.