php判断坐标是否在指定的多边形中「建议收藏」

php判断坐标是否在指定的多边形中

大家好,又见面了,我是全栈君。

点击上方“码农编程进阶笔记”,选择“关注公众号”

技术文章第一时间送达!

如何判断一个坐标点是否在一个多边形中,具体的应用场景就是,外卖派送,用户提供的坐标是否是在外卖的派送范围之内。用户的坐标可以通过手机设备获取到,派送范围就是通过在地图上,进行多边形的绘制,获取多个坐标点连接起来的配送范围。下面来看看代码上是如何简单判断的。

mjaschen/phpgeo是一个php的geo的库,提供了一些关于地理经纬度相关的功能,例如地理围栏、距离计算等。

坐标点参考腾讯地图的demo:

https://lbs.qq.com/javascript_v2/case-run.html#sample-overlay-polygon-contains

首先composer安装此包: PHP要求至少大于7

composer require mjaschen/phpgeo

然后编写测试代码:

<?php
require './vendor/autoload.php';
 
//引入两个类
use Location\Coordinate;
use Location\Polygon;
 
//绘制一个多边形
$geo = new Polygon();
 
$geo->addPoint(new Coordinate(39.930131, 116.417301));
$geo->addPoint(new Coordinate(39.930131, 116.377476));
$geo->addPoint(new Coordinate(39.911305, 116.377476));
$geo->addPoint(new Coordinate(39.911305, 116.417301));
 
//两个坐标做测试
$a = new Coordinate(39.916527, 116.397128);
$b = new Coordinate(39.901305, 116.397128);
 
//判断是否在执行的多边形中
if ($geo->contains($a)) {
    echo "a点在多边形的范围内";
} else {
    echo "a点不在多边形的范围内";
}
 
echo "<br/>";
 
if ($geo->contains($b)) {
    echo "b点在多边形的范围内";
} else {
    echo "b点不在多边形的范围内";
}

结果:

php判断坐标是否在指定的多边形中「建议收藏」

php开发中常用的Composer包

php判断坐标是否在指定的多边形中「建议收藏」

php判断坐标是否在指定的多边形中「建议收藏」

相关视频教程:PHP高级实战教程全集(43集)

获取方式:进入公众号回复关键字:【 PHP高级实战 】

关注公众号,回复「进群」即可进入PHP高级技术交流群。

php判断坐标是否在指定的多边形中「建议收藏」

(扫码关注,获取更多知识讲解)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112053.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vector的find用法[通俗易懂]

    vector的find用法[通俗易懂]一.find函数存在于算法中其头文件为#include&lt;algorithm&gt;二.代码示例:#include&lt;vector&gt;#include&lt;algorithm&gt;#include&lt;iostream&gt;usingnamespacestd;intmain(){vector&lt;int&gt;L;L.pu…

    2022年10月10日
    3
  • stm32的sdio接口_STM32F411

    stm32的sdio接口_STM32F411一、SDIO接口简介SDIO,全称:SecureDigitalInputandOutput,即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、照相机等。SDIO和SD卡规范间的一个重要区别是增加了低速标准。低速卡的目标应用是以最小的硬件开支支持低速I/O能力。低速卡支持类似调制解调器、条码扫描仪和GPS接收器等应用。STM32的SDIO控制器支持多媒体卡(MMC卡)、SD存储卡、SDI/O卡和CE-ATA

    2022年10月3日
    4
  • webstorm 19 激活码【2021最新】

    (webstorm 19 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月27日
    70
  • idea安装mybatis插件_maven 插件

    idea安装mybatis插件_maven 插件MyBatis允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis允许使用插件来拦截的方法调用包括:Executor(update,query,flushStatements,commit,rollback,getTransaction,close,isClosed)ParameterHandler(getParameterObject,setP

    2022年9月26日
    4
  • 什么是PCM?它和.wav文件是什么关系?[通俗易懂]

    什么是PCM?它和.wav文件是什么关系?[通俗易懂]什么是PCM?它和.wav文件是什么关系?

    2022年4月20日
    53
  • SpringMVC-手写一个SpringMVC框架

    SpringMVC-手写一个SpringMVC框架

    2021年8月3日
    62

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号