巅云智能建站平台搭建版(创业流派版)火爆上线,毕生受权!新增:文章智能收罗+全站真静态打包+都会分站+智能小法式+不法词过滤+H5自顺应+智能链词等功效功效概况
赞助文档Help

考证坐标在某坐标地区内php代码

一佰互联网站建造(www.taishanly.com) 宣布日期 2020-04-26 09:03:50 阅读数: 117

之前碰着的如许一个须要,要将公司的办事在舆图中显现出来,并将用户天天的拜候坐标停止统计看有几多用户是在所能到达的办事规模半径内。

以下是PHP代码的完成 (仅考证坐标在某片坐标地区内)

<?php
/**
 * 考证坐标点是不是在某地区内
 * @author xiaoliang <1058436713@qq.com>
 * Class validationMap
 */
class validationMap{
 private static $coordArray;
 private static $vertx = [];
 private static $verty = [];
 /**
  * 设置坐标地区
  * @param mixed $coordArray
  */
 public static function setCoordArray(array $coordArray)
 {
  self::$coordArray = $coordArray;
 }
 /**
  * 考证地区规模
  * @param array $coordArray
  * @return bool
  */
 public static function isCityCenter(array $coordArray){
  if(!self::vaildatePoint($coordArray)){
   return false;
  }
  return self::pnpoly(count(self::$coordArray), $coordArray["lng"], $coordArray["lat"]);
 }
 /**
  * 比拟地区坐标
  * @param $nvert
  * @param $testx
  * @param $testy
  * @return bool
  */
 private static function pnpoly($nvert,$testx, $testy)
 {
  $c = false;
  for ($i = 0, $j = $nvert-1; $i < $nvert; $j = $i++) {
   if ( ( (self::$verty[$i]>$testy) != (self::$verty[$j]>$testy) ) && ($testx < (self::$vertx[$j]-self::$vertx[$i]) * ($testy-self::$verty[$i]) / (self::$verty[$j]-self::$verty[$i]) + self::$vertx[$i]) )
    $c = !$c;
  }
  return $c;
 }
 /**
  * 考证坐标
  * @param array $pointArray
  * @return bool
  */
 private static function vaildatePoint(array $pointArray){
  $maxY = $maxX = 0;
  $minY = $minX = 9999;
  foreach (self::$coordArray as $item){
   if($item["lng"]>$maxX) $maxX = $item["lng"];
   if($item["lng"] < $minX) $minX = $item["lng"];
   if($item["lat"]>$maxY) $maxY = $item["lat"];
   if($item["lat"] < $minY) $minY = $item["lat"];
   self::$vertx[] = $item["lng"];
   self::$verty[] = $item["lat"];
  }
  if ($pointArray["lng"] < $minX || $pointArray["lng"] > $maxX || $pointArray["lat"] < $minY || $pointArray["lat"] > $maxY) {
   return false;
  }
  return true;
 }
}
/**************************** test *************************************/
$map = [ //上海
 ["lng" => 121.488286, "lat" => 31.420147],
 ["lng" => 121.702154, "lat" => 31.294828],
 ["lng" => 121.780918, "lat" => 31.141157],
 ["lng" => 121.782068, "lat" => 30.941157],
 ["lng" => 121.492885, "lat" => 30.909931],
 ["lng" => 121.22325, "lat" => 30.890099],
 ["lng" => 121.161482, "lat" => 31.015526],
 ["lng" => 121.076395, "lat" => 31.226239],
 ["lng" => 121.189873, "lat" => 31.339688],
 ["lng" => 121.459509, "lat" => 31.41368],
];
$array = ["lat"=>31.218681,"lng"=>121.08604];//停止考证的地区
validationMap::setCoordArray($map);
var_dump(validationMap::isCityCenter($array));

在舆图中的应用:

以上便是本文的全数内容,但愿对大师的进修有所赞助,也但愿大师多多撑持网页设想。

一佰互联是天下着名建站品牌办事商,咱们有九年、网站建造、网页设想、php开辟和域名注册及假造主机办事经历,供给的办事更是天下着名。最近几年来还整合团队上风自立开辟了可视化多用户”“3.0平台版,拖拽排版网站建造设想,轻松完成pc站、手机微网站、小法式、APP一体化全网营销网站扶植 ,已胜利的为天下上百家收集公司供给自助建站平台搭建办事。

相干消息more

06
05月
企业网站建造办事器带宽有哪些区分?

在采办办事器租用时,办事商会保举你挑选带宽要同享仍是独享的,一百同享几多兆独享几多兆,从字面上意思大师能够晓得,独享比同享的要好,以是价钱相... >>概况

08
07月
假造主机及网站扶植产物进级调剂通知布告

尊重的新老假造主机及网站扶植用户: 连系建站宝盒自助建站体系建站特色,咱们将建站宝盒网站与别的非建站宝盒网站分隔设置装备摆设开设。我司特推出建站宝盒... >>概况

05
04月
“拼团”终究上了付出宝首页,拼多多会哆嗦吗?

简介:8月6日下战书,从差别用户处取得的付出宝截图显现,付出宝首页界面底部栏已上线备受存眷的“拼团”功效。经测试,固然不是全量推的功效,但灰度... >>概况

30
03月
微商干货:微商怎样做?小飞侠微商干货总结!

简介:2015大家都在做微商,每小我最关怀的题目便是,微商工具怎样卖的进来。微商怎样做?大局部人以为是产物。现实上,产物只是一个载体,一个成... >>概况

高端网站扶植

美工统筹SEO,为企业电子商务营销助力!

德律风:

023-85725751
建站

产物

域名注册 假造主机 云办事器 企业邮局
智能建站 APP打包 微站/小法式 创业平台
网站推行 媒体营销 智能收罗 AI机械人
400德律风 短信营销 店销机械人
私家定制 流派网站