Home  >  Article  >  Backend Development  >  Using Baidu Map API to achieve persistent storage of geographical location information in PHP

Using Baidu Map API to achieve persistent storage of geographical location information in PHP

WBOY
WBOYOriginal
2023-08-01 14:09:081290browse

Using Baidu Map API to achieve persistent storage of geographical location information in PHP

Introduction: Geographical location information plays an important role in many applications, and rich geographical location information can be obtained through Baidu Map API . This article will introduce how to use PHP to achieve persistent storage of geographical location information and obtain geographical location information through Baidu Map API.

1. Introduction to Baidu Map API

Baidu Map API is a set of network application interfaces based on Baidu Map, which provides a wealth of map services. Through this interface, we can obtain the latitude and longitude, geocoding information, reverse geocoding information, etc. of a certain location.

2. Preparation work

Before starting, we need to prepare the following work:

  1. Register a Baidu Map API account and obtain a developer key.
  2. Build a PHP environment locally.

3. Obtaining geographical location information

First, we need to obtain the geographical location information of the user. Here we take obtaining geocoding information (that is, converting addresses into latitude and longitude) as an example.

PHP code example:

<?php
 
// 用户输入的地址
$address = $_POST['address'];

// 百度地图API的请求地址
$url = "http://api.map.baidu.com/geocoding/v3/?address=" . urlencode($address) . "&output=json&ak=YOUR_AK";

// 发送HTTP请求获取地理编码信息
$response = file_get_contents($url);
$result = json_decode($response, true);

// 获取经纬度
$lng = $result['result']['location']['lng'];
$lat = $result['result']['location']['lat'];

// 输出经纬度
echo "经度: " . $lng . "<br/>";
echo "纬度: " . $lat . "<br/>";

?>

In the above code, we first obtain the address entered by the user through the POST method, and splice the request address of the Baidu Map API. Then, send an HTTP request to obtain the geocoding information, and obtain the longitude and latitude information from the returned result.

4. Persistent storage of geographical location information

Next, we will persistently store the obtained geographical location information. Here, we choose to use a MySQL database for storage.

First, we need to create a geographical location information storage table. The table structure is as follows:

CREATE TABLE `locations` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `address` varchar(255) NOT NULL,
  `lng` decimal(10,6) NOT NULL,
  `lat` decimal(10,6) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Next, modify the previous PHP code to store the obtained geographical location information in the database.

PHP code example:

<?php
 
// 用户输入的地址
$address = $_POST['address'];

// 百度地图API的请求地址
$url = "http://api.map.baidu.com/geocoding/v3/?address=" . urlencode($address) . "&output=json&ak=YOUR_AK";

// 发送HTTP请求获取地理编码信息
$response = file_get_contents($url);
$result = json_decode($response, true);

// 获取经纬度
$lng = $result['result']['location']['lng'];
$lat = $result['result']['location']['lat'];

// 将地理位置信息存储到数据库中
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";

// 创建数据库连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接是否成功
if ($conn->connect_error) {
    die("数据库连接失败: " . $conn->connect_error);
}

// 将地理位置信息插入到数据库中
$sql = "INSERT INTO locations (address, lng, lat) VALUES ('$address', '$lng', '$lat')";

if ($conn->query($sql) === TRUE) {
    echo "地理位置信息存储成功";
} else {
    echo "地理位置信息存储失败: " . $conn->error;
}

// 关闭数据库连接
$conn->close();

?>

In the above code, we first create a database connection, and then insert the geographical location information into the locations table of the database. After the insertion is successful, a prompt indicating that the storage is successful will be output.

5. Summary

Through the introduction of this article, we have learned how to use PHP and Baidu Map API to achieve persistent storage of geographical location information. We obtain the address entered by the user, obtain the geocoding information through the Baidu Map API, and finally store the geolocation information in the MySQL database. Through this method, we can easily obtain and store geographical location information, and call and process it when needed.

The above is the detailed content of Using Baidu Map API to achieve persistent storage of geographical location information in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn