javascript - 服务器端使用 Google Maps API v3 检查多边形区域内点的存在

标签 javascript sql-server html google-maps google-maps-api-3

逻辑是:用户正在编辑现有的多边形区域,其极值点存储在数据库中。修改后的坐标会在数据库中更新。现在我需要找出修改后的多边形内是否存在某个点。为此,我假设我必须进行服务器端检查。客户端检查很容易通过 javaScript 完成,我已经完成了。我遇到的真正问题是在服务器端进行检查。有什么建议吗?

最佳答案

我已经用 PHP 在多边形中实现了服务器端点。

<?php
//Point-In-Polygon Algorithm test parameters
$polySides  = 4; //how many corners the polygon has
$polyX    =  array(4,9,11,2);//horizontal coordinates of corners
$polyY    =  array(10,7,2,2);//vertical coordinates of corners
$x = 3.5;//point
//$y = 13.5;//Outside
$y = 3.5;//Inside

function pointInPolygon($polySides,$polyX,$polyY,$x,$y) {
  $j = $polySides-1 ;
  $oddNodes = 0;
  for ($i=0; $i<$polySides; $i++) {
    if ($polyY[$i]<$y && $polyY[$j]>=$y 
 ||  $polyY[$j]<$y && $polyY[$i]>=$y) {
    if ($polyX[$i]+($y-$polyY[$i])/($polyY[$j]-$polyY[$i])*($polyX[$j]-$polyX[$i])<$x)    {
    $oddNodes=!$oddNodes; }}
   $j=$i; }

  return $oddNodes; }

//Test 
 if (pointInPolygon($polySides,$polyX,$polyY,$x,$y)){
  echo "Is in polygon!";
}
else echo "Is not in polygon";
?>

这可以修改以适应选择的语言,即。 C#

关于javascript - 服务器端使用 Google Maps API v3 检查多边形区域内点的存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14394719/

相关文章:

javascript - 使用 Javascript 和 getElementById 显示 DIV

javascript - 使用 HighCharts 时增加容器相对于 HTML 内部图表的大小

html - <a> 链接根本不起作用/不可点击

javascript - 我想用 Three.js 生成 2D 八边形

javascript - SVG:使用 getComputedTextLength 来换行文本

sql - 替代使用 ROW_NUMBER 以获得更好的性能

sql-server - 使用 case 时如何更改列名? SQL 服务器查询

javascript - <option>标签,显示:none and jquery

javascript - HTML 内容到 Javascript 代码

C# INSERT 与 INSTEAD OF INSERT 触发器