1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        GeokitPHP 地理工具包

        聯(lián)合創(chuàng)作 · 2023-09-28 00:23

        Geokit 是一個(gè) PHP 工具包,用于解決與地理相關(guān)的任務(wù),例如:

        • 距離計(jì)算。
        • 航向、中點(diǎn)和終點(diǎn)計(jì)算。
        • 矩形邊界框計(jì)算。

        安裝

        使用 Composer 安裝最新版本

        composer require geokit/geokit

        檢查 Packagist 頁(yè)面以獲取所有可用版本。

        參考

        距離

        距離實(shí)例允許方便地表示距離測(cè)量單位。

        use Geokit\Distance;
        
        $distance = new Distance(1000); // Defaults to meters
        // or
        $distance = new Distance(1, Distance::UNIT_KILOMETERS);
        
        $meters = $distance->meters();
        $kilometers = $distance->kilometers();
        $miles = $distance->miles();
        $yards = $distance->yards();
        $feet = $distance->feet();
        $inches = $distance->inches();
        $nauticalMiles = $distance->nautical();
         

        距離也可以從帶有可選單位的字符串中創(chuàng)建。

        use Geokit\Distance;
        
        $distance = Distance::fromString('1000'); // Defaults to meters
        $distance = Distance::fromString('1000m');
        $distance = Distance::fromString('1km');
        $distance = Distance::fromString('100 miles');
        $distance = Distance::fromString('100 yards');
        $distance = Distance::fromString('1 foot');
        $distance = Distance::fromString('1 inch');
        $distance = Distance::fromString('234nm');

        位置

        APosition是在x(或longitude)和y(或latitude)坐標(biāo)中表示地理位置的基本結(jié)構(gòu) 。

        • 經(jīng)度范圍在 -180 度和 180 度之間,包括端值。高于 180 或低于 -180 的經(jīng)度被歸一化。例如,480、840 和 1200 都將歸一化為 120 度。
        • 緯度范圍在 -90 度和 90 度之間(含)。高于 90 或低于 -90 的緯度被歸一化。例如,100 將歸一化為 80 度。
        use Geokit\Position;
        
        $position = Position::fromXY(181, 91);
        
        $x = $position->x(); // Returns -179.0, normalized
        $y = $position->y(); // Returns 89.0, normalized

        邊界框

        BoundingBox 實(shí)例表示地理坐標(biāo)中的一個(gè)矩形,包括一個(gè)跨越 180 度縱向子午線的矩形。

        它由左下(西南)和右上(東北)角點(diǎn)構(gòu)成。

        use Geokit\BoundingBox;
        use Geokit\Position;
        
        $southWest = Position::fromXY(2, 1);
        $northEast = Position::fromXY(2, 1);
        
        $boundingBox = BoundingBox::fromCornerPositions($southWest, $northEast);
        
        $southWestPosition = $boundingBox->southWest();
        $northEastPosition = $boundingBox->northEast();
        
        $center = $boundingBox->center();
        
        $span = $boundingBox->span();
        
        $boolean = $boundingBox->contains($position);
        
        $newBoundingBox = $boundingBox->extend($position);
        $newBoundingBox = $boundingBox->union($otherBoundingBox);

        使用expand()shrink()方法,可以按一定距離擴(kuò)展或縮小 BoundingBox 實(shí)例。

        use Geokit\Distance;
        
        $expandedBoundingBox = $boundingBox->expand(
            Distance::fromString('10km')
        );
        
        $shrinkedBoundingBox = $boundingBox->shrink(
            Distance::fromString('10km')
        );

         

         

        瀏覽 22
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            一级A色情大片 | 少妇一级淫片免费 | 精品无码国产污污污在线观看 | 人人爽人人好逼网 | 嬷嬷打开双腿揉花蒂 | 全黄h全肉短篇禁乱np慕浅浅 | 激情图片激情视频 | 日韩黄色电影免费看 | 91在线无码一区二区 | 女局长洗澡被强好爽在线看 |