2

ロジックは次のとおりです。ユーザーは、極値がデータベースに保存されている既存の多角形領域を編集しています。編集後、変更された座標はデータベースで更新されます。ここで、変更されたポリゴン内に特定のポイントが存在するかどうかを確認する必要があります。そのためには、サーバー側のチェックを行う必要があると想定しています。クライアント側のチェックは、JavaScript で簡単に実行できます。これは既に実行済みです。私が抱えている本当の問題は、サーバー側でこれをチェックすることです。助言がありますか?

4

1 に答える 1

0

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#

于 2013-01-18T13:27:09.740 に答える