cari
RumahPerpustakaan PHPPerpustakaan lainKira jarak antara dua titik pada peta kelas PHP
Kira jarak antara dua titik pada peta kelas PHP
<?php
class GeoHelper
{
    /**
     * @param int $lat1
     * @param int $lon1
     * @param int $lat2
     * @param int $lon2
     * @param string $unit
     * @return
     */
    public static function distance($lat1, $lon1, $lat2, $lon2, $unit = "K")
    {
        $theta = $lon1 - $lon2;
        $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad
          ($lat2)) * cos(deg2rad($theta));
        $dist = acos($dist);
        $dist = rad2deg($dist);
        $miles = $dist * 60 * 1.1515;
        $unit = strtoupper($unit);
        if ($unit == "K") {
            return ($miles * 1.609344);
        } else
            if ($unit == "N") {
                return ($miles * 0.8684);
            } else { //mi
                return $miles;
            }
    }
    /**
     *
     * @param string $address
     * @param string $apikey
     * @return array [1]:lat [0]:lng
     */
    public static function getLatLng($address, $apikey)
    {
        $find = array("\n", "\r", " ");
        $replace = array("", "", "+");
        $address = str_replace($find, $replace, $address);
        $url = 'http://maps.google.com/maps/geo?q=' . $address . '&key=' . $apikey .
          '&sensor=false&output=xml&oe=utf8';
        $response = self::xml2array($url);
        $coordinates = $response['kml']['Response']['Placemark']['Point']['coordinates'];
        if (!empty($coordinates)) {
            $point_array = split(",", $coordinates);
            return $point_array;
        }
    }
}

Kira jarak antara dua titik pada peta, menggunakan Peta Google

Penafian

Semua sumber di laman web ini disumbangkan oleh netizen atau dicetak semula oleh tapak muat turun utama. Sila semak integriti perisian itu sendiri! Semua sumber di laman web ini adalah untuk rujukan pembelajaran sahaja. Tolong jangan gunakannya untuk tujuan komersial. Jika tidak, anda akan bertanggungjawab untuk semua akibat! Jika terdapat sebarang pelanggaran, sila hubungi kami untuk memadamkannya. Maklumat hubungan: admin@php.cn

Artikel Berkaitan

Bagaimana untuk Mengira Jarak Antara Dua Titik pada Peta Google V3?Bagaimana untuk Mengira Jarak Antara Dua Titik pada Peta Google V3?

27Nov2024

Mengira Jarak Antara Titik dalam Peta Google V3Dalam Peta Google V3, jarak antara dua penanda boleh dikira menggunakan Haversine...

Bagaimana untuk Mencipta Perpustakaan Statik daripada Berbilang Perpustakaan Statik Lain?Bagaimana untuk Mencipta Perpustakaan Statik daripada Berbilang Perpustakaan Statik Lain?

17Dec2024

Mencipta Perpustakaan Statik yang Berpaut ke Perpustakaan Statik Lain Apabila membina perpustakaan statik yang bergantung pada kebergantungan daripada berbilang yang lain...

Pengepala Perpustakaan Standard C Manakah yang Termasuk Secara Eksplisit Lain?Pengepala Perpustakaan Standard C Manakah yang Termasuk Secara Eksplisit Lain?

01Nov2024

Pengepala yang manakah dalam Perpustakaan Standard C Termasuk Lain-lain? Secara umumnya, pengaturcara tidak seharusnya menganggap bahawa satu pengepala perpustakaan standard C akan...

Bagaimanakah Saya Memautkan Perpustakaan Statik yang Bergantung pada Perpustakaan Statik Lain?Bagaimanakah Saya Memautkan Perpustakaan Statik yang Bergantung pada Perpustakaan Statik Lain?

13Dec2024

Memautkan Perpustakaan Statik ke Perpustakaan Statik Lain: Pendekatan Komprehensif Perpustakaan statik menyediakan mekanisme yang mudah untuk membungkus yang boleh digunakan semula...

Pengepala yang manakah dalam Perpustakaan Standard C Menjamin Fungsi atau Kemasukan Khusus?Pengepala yang manakah dalam Perpustakaan Standard C Menjamin Fungsi atau Kemasukan Khusus?

02Nov2024

Pengepala dalam Perpustakaan Standard C dengan Kemasukan TerjaminDalam perpustakaan standard C, pengepala boleh menyertakan satu sama lain dalam pelbagai cara yang tidak...

Bagaimanakah jQuery Memudahkan Manipulasi DOM untuk Pembangun Web?Bagaimanakah jQuery Memudahkan Manipulasi DOM untuk Pembangun Web?

03Jan2025

Limpahan: Tersembunyi dan Pengembangan HeightjQuery membezakan dirinya daripada perpustakaan JavaScript lain melalui keserasian merentas platform dan...

See all articles