Maison  >  Article  >  développement back-end  >  Comment créer une application cartographique à l'aide de PHP et de l'API Amap

Comment créer une application cartographique à l'aide de PHP et de l'API Amap

王林
王林original
2023-05-11 09:09:221222parcourir

Avec la popularité des smartphones et de l'Internet mobile, les applications cartographiques deviennent de plus en plus populaires. Si vous souhaitez créer votre propre application cartographique, PHP et l'API Amap sont un bon choix. Dans cet article, nous présenterons comment créer une application cartographique à l'aide de PHP et de l'API Amap.

  1. Préparation

Avant de commencer, vous devez créer un compte développeur Amap et créer une application. Cela peut être fait dans le Centre de développement Amap. Une fois inscrit, vous recevrez une clé API que vous devrez utiliser pour chaque demande.

  1. Découvrez l'API Amap Map

L'API Amap Map est une API RESTful Vous pouvez lancer une requête au serveur via le protocole HTTP et obtenir une réponse du serveur. L'API Amap fournit de nombreuses interfaces, telles que le géocodage, le géocodage inversé, la planification d'itinéraire, etc., que vous pouvez choisir d'utiliser en fonction du scénario d'application.

Ce qui suit est une introduction à certaines interfaces couramment utilisées :

  • Géocodage : analyse les adresses en coordonnées de latitude et de longitude.
  • Géocodage inversé : analysez les coordonnées de latitude et de longitude en informations d'adresse.
  • Planification du chemin : planifiez le chemin optimal entre deux points.
  • Recherche environnante : recherchez des informations sur les POI autour de l'emplacement spécifié.
  1. Intégrez l'API Amap dans l'application PHP

Dans les applications PHP, vous pouvez utiliser la bibliothèque curl pour lancer une requête au serveur API Amap et obtenir le résultat de la réponse au format JSON. Voici un exemple de code :

<?php
//将API密钥替换为您自己的
$apiKey = "your_api_key";
//需要查询的地址
$address = "北京市海淀区中关村南大街27号";
//构建请求URL
$url = "https://restapi.amap.com/v3/geocode/geo?key={$apiKey}&address={$address}";
//发起请求
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
//解析响应
$json = json_decode($result);
$location = $json->geocodes[0]->location;
echo $location;
?>

Le code ci-dessus analyse le numéro 27, rue Zhongguancun Sud, district de Haidian, Pékin en coordonnées de latitude et de longitude, et génère le résultat. Vous pouvez l'encapsuler dans une fonction pour le réutiliser dans votre application.

  1. Afficher la carte

Avant d'afficher les coordonnées de latitude et de longitude sur la carte, vous devez télécharger l'API JavaScript qui introduit Amap et créer un conteneur de carte. Voici un exemple de code :

<!DOCTYPE html>
<html>
<head>
  <script src="//webapi.amap.com/maps?v=1.4.15&key=your_api_key"></script>
  <style type="text/css">
    #map-container {
      width: 100%;
      height: 400px;
    }
  </style>
</head>
<body>
  <div id="map-container"></div>
  <script>
    var map = new AMap.Map('map-container', {
      center: [116.397428, 39.90923],
      zoom: 10
    });
    var marker = new AMap.Marker({
      position: [116.397428, 39.90923],
      map: map
    });
  </script>
</body>
</html>

Le code ci-dessus crée un conteneur de carte et ajoute un marqueur à la carte. Vous pouvez l'encapsuler dans une fonction pour le réutiliser dans votre application.

  1. Combinaison de l'API Amap et PHP

Maintenant, nous combinons les deux exemples de codes ci-dessus pour créer une application cartographique plus complète. Dans cette application, les utilisateurs peuvent saisir l'adresse dans la zone de texte et cliquer sur le bouton Soumettre pour analyser l'adresse en coordonnées de latitude et de longitude et les afficher sur la carte.

Voici le code de l'application :

<!DOCTYPE html>
<html>
<head>
  <script src="//webapi.amap.com/maps?v=1.4.15&key=your_api_key"></script>
  <style type="text/css">
    #map-container {
      width: 100%;
      height: 400px;
    }
  </style>
</head>
<body>
  <form method="post" action="#">
    <input type="text" name="address" />
    <button type="submit" name="submit">提交</button>
  </form>
  <div id="map-container"></div>
  <?php
  if (isset($_POST['submit'])) {
    $address = $_POST['address'];
    $apiKey = "your_api_key";
    $url = "https://restapi.amap.com/v3/geocode/geo?key={$apiKey}&address={$address}";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($ch);
    curl_close($ch);
    $json = json_decode($result);
    $location = $json->geocodes[0]->location;
  ?>
  <script>
    var map = new AMap.Map('map-container', {
      center: [<?php echo $location ?>],
      zoom: 15
    });
    var marker = new AMap.Marker({
      position: [<?php echo $location ?>],
      map: map
    });
  </script>
  <?php
  }
  ?>
</body>
</html>

Le code ci-dessus ajoute une zone de texte et un bouton de soumission à la page. Lorsque l'utilisateur clique sur le bouton Soumettre, la carte se rechargera sur la même page et affichera les coordonnées de latitude et de longitude de l'adresse saisie par l'utilisateur.

Dans cette application, nous n'utilisons qu'une petite partie des fonctions de l'API Amap Map. Vous pouvez choisir l'interface appropriée pour terminer la candidature en fonction du scénario de candidature. Dans le même temps, des applications plus complexes peuvent être implémentées en transmettant des données entre PHP et JavaScript.

Résumé

Dans cet article, nous avons présenté comment créer une application cartographique à l'aide de PHP et de l'API Amap. En étudiant cet article, vous maîtrisez certaines compétences de base sur la façon d'utiliser l'API Amap et de les intégrer dans les applications PHP.

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