Chào mừng bạn đến với hướng dẫn về cách tạo hệ thống theo dõi GPS bằng PHP và Javascript. Cần theo dõi nơi một chiếc xe đang ở? Hệ thống theo dõi GPS cơ bản với PHP và Javascript yêu cầu các thành phần sau - Một bảng cơ sở dữ liệu để ghi lại các vị trí đã biết cuối cùng
- Thư viện và điểm cuối PHP để chấp nhận và quản lý cập nhật vị trí
- Một trang web hoặc ứng dụng để gửi vị trí GPS hiện tại của người lái đến máy chủ
- Cuối cùng, một trang quản trị để theo dõi tất cả các tay đua
Hãy để chúng tôi xem qua một ví dụ đơn giản trong hướng dẫn này – Đọc tiếp ⓘ Tôi đã bao gồm một tệp zip chứa tất cả mã nguồn khi bắt đầu hướng dẫn này, vì vậy bạn không cần phải sao chép-dán mọi thứ… Hoặc nếu bạn chỉ muốn đi sâu vào MỤC LỤC TẢI XUỐNG & LƯU ÝĐầu tiên, đây là liên kết tải xuống mã ví dụ như đã hứa GHI CHÚ NHANH- Tạo cơ sở dữ liệu và nhập
<?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 9 - Thay đổi cài đặt cơ sở dữ liệu trong
CREATE TABLE `gps_track` (
`rider_id` bigint(20) NOT NULL,
`track_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`track_lng` decimal(11,7) NOT NULL,
`track_lat` decimal(11,7) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ALTER TABLE `gps_track`
ADD PRIMARY KEY (`rider_id`),
ADD KEY `track_time` (`track_time`); 0 thành cài đặt của riêng bạn - Truy cập
CREATE TABLE `gps_track` (
`rider_id` bigint(20) NOT NULL,
`track_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`track_lng` decimal(11,7) NOT NULL,
`track_lat` decimal(11,7) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ALTER TABLE `gps_track`
ADD PRIMARY KEY (`rider_id`),
ADD KEY `track_time` (`track_time`); 1 cho trang theo dõi khách hàng/người lái và <?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 0 cho trang quản trị demo - Hãy lưu ý thêm rằng vị trí địa lý GPS yêu cầu
<?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 1 để hoạt động bình thường. <?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 2 là một ngoại lệ để thử nghiệm Nếu bạn phát hiện ra một lỗi, hãy bình luận bên dưới. Tôi cũng cố gắng trả lời các câu hỏi ngắn, nhưng đó là một người so với cả thế giới… Nếu bạn cần câu trả lời gấp, vui lòng xem danh sách các trang web của tôi để được trợ giúp về lập trình MÃ VÍ DỤ TẢI XUỐNGNhấp vào đây để tải xuống mã nguồn, tôi đã phát hành nó theo giấy phép MIT, vì vậy hãy thoải mái xây dựng trên mã nguồn hoặc sử dụng nó trong dự án của riêng bạn THEO DÕI GPS MYSQL PHPĐược rồi, bây giờ chúng ta hãy tìm hiểu chi tiết về hệ thống theo dõi GPS với PHP và MYSQL PHẦN 1) CƠ SỞ DỮ LIỆU – VỊ TRÍ ĐƯỢC BIẾT CUỐI CÙNG1-cơ sở dữ liệu. sql CREATE TABLE `gps_track` (
`rider_id` bigint(20) NOT NULL,
`track_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`track_lng` decimal(11,7) NOT NULL,
`track_lat` decimal(11,7) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ALTER TABLE `gps_track`
ADD PRIMARY KEY (`rider_id`),
ADD KEY `track_time` (`track_time`); FieldDescription<?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 3Khóa chính, ID người lái… Hoặc ID của bất kỳ thứ gì bạn muốn theo dõi. <?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 4Thời gian người lái “đăng ký” lần cuối. <?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 5Kinh độ. <?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 6Vĩ độVâng, đó là tất cả những gì chúng ta cần. Chỉ là một bảng để lưu trữ các vị trí đã biết cuối cùng của các tay đua PHẦN 2) THƯ VIỆN PHP THEO DÕI GPS2-lib-theo dõi. php <?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track();
Cái này thoạt nhìn có vẻ đáng sợ, nhưng hãy bình tĩnh và phân tích từ từ - (A, B, G) Khi
<?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 7 được tạo, hàm tạo sẽ tự động kết nối với cơ sở dữ liệu. Hàm hủy đóng kết nối - (C)
<?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 8 là một hàm trợ giúp đơn giản chạy truy vấn SQL - (D & E) Chỉ có 2 chức năng “theo dõi GPS thực tế”
<?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 9 ghi lại tọa độ GPS của người lái<?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 20 trả về tọa độ đã biết cuối cùng của người lái
- (F) Tự giải thích. Hãy nhớ thay đổi cài đặt cơ sở dữ liệu thành của riêng bạn
PHẦN 3) AJAX ENDPOINT3-ajax-theo dõi. php <?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 2Thư viện cốt lõi sẽ không tự hoạt động, vì vậy đây là điểm cuối AJAX. Cách thức hoạt động rất đơn giản – Chỉ cần chuyển vào một <?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 21 để chỉ định yêu cầu, theo sau là các tham số bắt buộcYêu cầuMô tả<?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 22Cập nhật vị trí của người lái đã cho. Thông số<?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 3<?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 24<?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 25
<?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 26Nhận vị trí đã biết cuối cùng của một người lái nhất định. Thông số<?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 3 Tùy chọn, không gửi gì để có được tất cả người đi
PHẦN 4) CÁC TRANG THEO DÕI HTML4A) TRANG THEO DÕI NGƯỜI LÁIđường 4a. html <?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 1Đó là tất cả cho phần hướng dẫn, và đây là một số bổ sung nhỏ và liên kết có thể hữu ích cho bạn Ý TƯỞNG CẢI TIẾN- Tích hợp bản đồ – Có hơn một chục dịch vụ bản đồ tại thời điểm viết bài. Xem các liên kết bên dưới và chọn chất độc của bạn. Tôi cũng có một hướng dẫn sử dụng Mapbox, hãy theo liên kết “Nhận GPS & Tạo bản đồ” bên dưới
- Đăng nhập Người dùng/Quản trị viên/Người lái – Bảo mật điểm cuối AJAX và các trang. Xem các liên kết bên dưới nếu bạn không có hệ thống đăng nhập
- Lịch sử theo dõi – Nếu bạn muốn lưu lại lịch sử hành trình
- Thay đổi cơ sở dữ liệu, đặt
<?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 3 và <?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 4 làm khóa chính tổng hợp. Tốt hơn là thêm một <?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 16 nữa - Thay đổi thư viện PHP
<?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 17, chỉ cần <?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 18 một mục nhập mới thay vì <?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 19 - Tất nhiên,
<?php
class Track {
// (A) CONSTRUCTOR - CONNECT TO DATABASE
public $pdo = null;
public $stmt = null;
public $error = "";
function __construct () { try {
$this->pdo = new PDO(
"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET,
DB_USER, DB_PASSWORD, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
]);
} catch (Exception $ex) { exit($ex->getMessage()); }}
// (B) DESTRUCTOR - CLOSE CONNECTION
function __destruct () {
if ($this->stmt !== null) { $this->stmt = null; }
if ($this->pdo !== null) { $this->pdo = null; }
}
// (C) HELPER FUNCTION - EXECUTE SQL QUERY
function query ($sql, $data=null) {
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($data);
}
// (D) UPDATE RIDER COORDINATES
function update ($id, $lng, $lat) {
$this->query(
"REPLACE INTO `gps_track` (`rider_id`, `track_time`, `track_lng`, `track_lat`) VALUES (?, ?, ?, ?)",
[$id, date("Y-m-d H:i:s"), $lng, $lat]
);
return true;
}
// (E) GET RIDER(S) COORDINATES
function get ($id=null) {
$this->query(
"SELECT * FROM `gps_track`" . ($id==null ? "" : " WHERE `rider_id`=?"),
$id==null ? null : [$id]
);
return $this->stmt->fetchAll();
}
}
// (F) DATABASE SETTINGS - CHANGE THESE TO YOUR OWN!
define("DB_HOST", "localhost");
define("DB_NAME", "test");
define("DB_CHARSET", "utf8");
define("DB_USER", "root");
define("DB_PASSWORD", "");
// (G) START!
$_TRACK = new Track(); 80 cũng cần được cập nhật - Đảm bảo tiết lộ rằng bạn đang lưu giữ lịch sử du lịch trong chính sách/thỏa thuận của công ty. Luật riêng tư có thể là một nỗi đau ở một số khu vực
KHÔNG PHẢI THEO DÕI THỜI GIAN THỰC?Tất nhiên, đây không phải là một hệ thống thời gian thực. Mặc dù có thể làm như vậy, nhưng chúng tôi phải xem xét các giới hạn kỹ thuật và liệu điều đó có đáng làm hay không - Thứ nhất, thời gian thực sẽ làm cạn kiệt pin điện thoại thông minh nhanh chóng
- Thứ hai, bạn sẽ cần một cơ sở hạ tầng mạng mạnh mẽ để hỗ trợ nhiều kết nối ổ cắm “luôn bật”
- Cuối cùng, một hệ thống máy chủ rất mạnh có khả năng xử lý dữ liệu theo thời gian thực
Vì vậy, vâng… Nếu ai đó sẵn sàng bỏ ra số tiền đó và nghĩ rằng nó có lợi cho công việc kinh doanh của họ – Vậy thì tại sao không? KIỂM TRA TÍNH TƯƠNG THÍCH- Chức năng mũi tên – CanIUse
- Định vị địa lý – CanIUse
- Tìm nạp – CanIUse
Ví dụ này hoạt động với hầu hết các trình duyệt hiện đại LIÊN KẾT và THAM KHẢO- API định vị địa lý Javascript – MDN
- Hệ thống đăng nhập người dùng đơn giản với PHP MySQL – Code Boxx
- Hệ thống quản lý vai trò người dùng đơn giản với PHP MySQL – Code Boxx
- Nhận tọa độ GPS & Tạo bản đồ trong Javascript – Code Boxx
- Cần bản đồ?
- bản đồ Google
- Bản đồ TẠI ĐÂY
- Bản đồ Apple
- bản đồ Bing
- Tờ rơi (Mở bản đồ đường phố)
- Bản đồ
- hộp bản đồ
- Lớp mở
- rừng sấm sét
- bản đồ. nhị hoa. com
HƯỚNG DẪN YOUTUBE KẾT THÚCCảm ơn bạn đã đọc, và chúng tôi đã đi đến phần cuối của hướng dẫn này. Tôi hy vọng rằng nó đã giúp bạn với dự án của bạn và nếu bạn muốn chia sẻ bất cứ điều gì với hướng dẫn này, xin vui lòng bình luận bên dưới. Chúc may mắn và mã hóa hạnh phúc
Làm cách nào để triển khai theo dõi trong PHP?
Làm theo các bước bên dưới. Tạo mã theo dõi Analytics. Tạo tập tin PHP. Tải tệp PHP lên máy chủ của bạn. . Nhận mã theo dõi. . Tạo một tệp PHP. . Tải lên tệp PHP trong máy chủ. . Thêm thẻ PHP trong trang web. . Xác minh triển khai PHP của Analytics
Làm cách nào để theo dõi vị trí người dùng trong PHP?
Phương thức getCurrentPosition() được sử dụng để lấy vị trí của khách truy cập và phương thức showLocation() được sử dụng để lấy địa chỉ của khách truy cập từ getLocation. php tập tin sử dụng Ajax. Mã HTML. Sau khi nhận được vị trí của khách truy cập, địa chỉ sẽ được hiển thị trên trang web ( #location span)
Làm cách nào để tạo trình theo dõi GPS của riêng bạn?
Cách tạo Trình theo dõi GPS . Bước 1. Mua bộ chuyển đổi USB 12v sang 5v. . Bước 2. Mua điện thoại Android cũ. . Bước 3. Mua thẻ SIM. . Bước 4. Tải phần mềm theo dõi. . Bước 5. Cung cấp cho thiết bị của bạn một nguồn điện. . Bước 6. Theo dõi xe của bạn
Mô-đun GPS và GSM là gì?
Mô-đun GPS lấy thông tin vị trí từ các vệ tinh ở dạng vĩ độ và kinh độ. Bộ vi điều khiển xử lý thông tin này và gửi đến modem GSM. Modem GSM sau đó gửi thông tin đến điện thoại di động của chủ sở hữu |