Maison >développement back-end >tutoriel php >Utilisez PHP et l'API Amap pour créer une planification d'itinéraire sur carte

Utilisez PHP et l'API Amap pour créer une planification d'itinéraire sur carte

PHPz
PHPzoriginal
2023-07-29 19:18:191899parcourir

Utilisez PHP et l'API Amap pour créer une planification d'itinéraire cartographique

Introduction : Avec le développement d'Internet et des appareils mobiles, les applications cartographiques sont devenues un élément indispensable de la vie des gens. En tant que principal fournisseur de services de cartographie en Chine, Amap fournit une interface API riche pour permettre aux développeurs d'intégrer des fonctions cartographiques dans leurs applications. Dans cet article, nous utiliserons PHP comme exemple pour présenter comment utiliser l'API Amap pour créer la fonction de planification d'itinéraire de la carte.

  1. Préparation

Avant de commencer, nous devons préparer les éléments suivants :

  • Un serveur ou une machine locale équipé d'un environnement PHP
  • Compte développeur Amap, vous pouvez en faire la demande sur la plateforme ouverte Amap
  • PHP Des outils de développement, tels que Sublime Text, PHPStorm, etc.
  1. Introduction de l'API

Tout d'abord, au début du fichier PHP, nous devons introduire l'API Amap. Elle peut être introduite des manières suivantes :

<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=您的API_KEY"></script>

Parmi elles, vous devez remplacer « votre API_KEY » par la clé API que vous avez demandée sur la plateforme ouverte Amap.

  1. Créer un conteneur de carte

Ensuite, nous devons créer un conteneur en HTML pour afficher la carte. Un élément DIV peut être créé en tant que conteneur de carte en utilisant le code suivant :

<div id="mapContainer" style="width: 100%; height: 500px;"></div>

En CSS, nous pouvons définir la largeur et la hauteur du conteneur de carte. Ici, la largeur est définie sur 100 % et la hauteur sur 500 px.

  1. Initialiser la carte

En PHP, nous pouvons utiliser le code suivant pour initialiser la carte :

<script type="text/javascript">
    var map = new AMap.Map("mapContainer", {
        zoom: 15, // 地图缩放级别
        center: [116.397428, 39.90923] // 地图中心点坐标
    });
</script>

Dans le code ci-dessus, nous créons une nouvelle instance de carte via la méthode AMap.Map() et la rendons dans In l'élément DIV dont l'identifiant est mapContainer. Le niveau de zoom de cette carte est défini sur 15 et les coordonnées du point central sont [116.397428, 39.90923].

  1. Ajouter des points de départ et d'arrivée

Avant de planifier un itinéraire, nous devons ajouter des marqueurs de points de départ et d'arrivée sur la carte. Voici un exemple de code :

<script type="text/javascript">
    var startPoint = new AMap.Marker({
        position: [116.407394, 39.904211], // 起点坐标
        title: '起点'
    });

    var endPoint = new AMap.Marker({
        position: [116.412416, 39.896366], // 终点坐标
        title: '终点'
    });

    map.add([startPoint, endPoint]);
</script>

Dans le code ci-dessus, nous utilisons la méthode AMap.Marker() pour créer les objets Marker du point de départ et du point final, et définir respectivement leurs informations de position et de titre. Enfin, nous ajoutons les points de début et de fin à la carte à l’aide de la méthode map.add().

  1. Planification d'itinéraire

Enfin, nous utilisons l'API de planification d'itinéraire d'Amap pour obtenir l'itinéraire prévu entre le point de départ et la destination. Voici un exemple de code :

<script type="text/javascript">
    var driving = new AMap.Driving({
        policy: AMap.DrivingPolicy.LEAST_TIME // 规划策略(最短时间)
    });

    driving.search(new AMap.LngLat(116.407394, 39.904211), new AMap.LngLat(116.412416, 39.896366), function(status, result) {
        if (status === 'complete' && result.info === 'OK') {
            var route = result.routes[0];
            var path = [];
            
            // 遍历路线上的每个步骤
            for (var i = 0, l = route.steps.length; i < l; i++) {
                var step = route.steps[i];
                path.push(step.path);
            }

            var polyline = new AMap.Polyline({
                path: path,
                strokeColor: '#00FF00',
                strokeWeight: 4,
                strokeOpacity: 1
            });

            map.add(polyline);
        }
    });
</script>

Dans le code ci-dessus, nous utilisons la méthode AMap.Driving() pour créer une instance de planification d'itinéraire de conduite et définir la stratégie de planification sur le temps le plus court. Ensuite, nous utilisons la méthode Driving.search() pour interroger l'itinéraire prévu entre le point de départ et le point final, et transmettons la fonction de rappel pour traiter les résultats renvoyés. Dans la fonction de rappel, nous pouvons parcourir chaque étape de l'itinéraire et l'ajouter à la carte. Enfin, nous utilisons la méthode AMap.Polyline() pour créer un objet polyligne, définir ses propriétés telles que le chemin, la couleur et la largeur de ligne, puis l'ajouter à la carte via la méthode map.add().

Résumé :

Ce qui précède est un exemple simple de planification d'itinéraire utilisant PHP et l'API Amap pour créer une carte. Grâce à cet exemple, nous pouvons apprendre à introduire l'API, créer un conteneur de carte, initialiser la carte, ajouter un point de départ et un point d'arrivée et effectuer des opérations de base telles que la planification d'itinéraire. Je crois que dans le développement réel, nous pouvons nous développer et nous ajuster en conséquence en fonction des besoins spécifiques et de la logique métier pour obtenir des fonctions cartographiques plus personnalisées. J'espère que cet article vous sera utile, merci d'avoir lu !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn