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.
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.
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.
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
?>
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'un rectangle
$points = array(
100, 100, // sommet1 (x, y)
400, 100, // sommet2 (x, y)
400, 400, // sommet3 (x, y)
100, 400 // sommet4 (x, y)
);
?>
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
?>
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.
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 .
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'interaction
echo "您点击了zone1!";
} elseif ($_SERVER['REQUEST_URI'] == '/region2') {
// 处理zone2Logique d'interaction
echo "您点击了zone2!";
}
?>
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.