Wednesday 19 March 2014

Get address point is exist in polygon boundary in php

<?php
$pointOnVertex = $pointOnVertex; // or true
// Transform string coordinates into arrays with x and y values
$point = $this->pointStringToCoordinates($point);
$vertices = array();
foreach ($polygon as $vertex) {
$vertices[] = $this->pointStringToCoordinates($vertex);
}
// Check if the point sits exactly on a vertex
if ($this->pointOnVertex == true and $this->pointOnVertex($point, $vertices) == true) {
return “vertex”;
}
// Check if the point is inside the polygon or on the boundary
$intersections = 0;
$vertices_count = count($vertices);
for ($i=1; $i min($vertex1['x'], $vertex2['x']) and $point['x'] min($vertex1['y'], $vertex2['y']) and $point['y'] <= max($vertex1['y'], $vertex2['y']) and $point['x'] <= max($vertex1['x'], $vertex2['x']) and $vertex1['y'] != $vertex2['y']) {
$xinters = ($point['y'] – $vertex1['y']) * ($vertex2['x'] – $vertex1['x']) / ($vertex2['y'] – $vertex1['y']) + $vertex1['x'];
if ($xinters == $point['x']) { // Check if point is on the polygon boundary (other than horizontal)
return “boundary”;
}
if ($vertex1['x'] == $vertex2['x'] || $point['x'] $coordinates[0], “y” => $coordinates[1]);
}
}
/*** Example ***/
$pointLocation = new pointLocation();
$points = array(“18.353135541330925 73.85009765625″); //pune
$polygon_1 = array(“18.988116 75.60791″, “16.279608 75.997925″, “17.008859 73.24585″, “19.514128 73.410645″, “18.988116 75.60791″); //ok
$polygon_2 = array(“19.029665 78.464355″, “16.321787 78.85437″, “17.050877 76.102295″, “19.555543,76.26709″, “19.029665 78.464355″); //ok
$polygon_3 = array(“19.734391 80.595703″, “17.037419 80.985718″, “17.763728 78.233643″, “20.257969 78.398438″, “19.734391 80.595703″);
$polygon_4 = array(“18.447044 77.497558″, “15.730466 77.887573″, “16.461769 75.135498″, “18.974764 75.300293″, “18.447044 77.497558″);
$polygon_5 = array(“17.757842 77.497558″, “15.031344 77.887573″, “15.765162 75.135498″, “18.287671 75.300293″, “17.757842 77.497558″);
$polygon_6 = array(“21.462016 76.179199″, “18.793543 76.569214″, “19.512551 73.817139″, “21.979622 73.981934″, “21.462016 76.179199″);
$polygon_7 = array(“19.920422 75.9375″, “17.226398 76.327515″, “17.951954 73.57544″, “20.44338 73.740235″, “19.920422 75.9375″); // ok
$polygon_8 = array(“19.008892 75.563964″, “15.434156 76.744995″, “17.575303 73.223877″, “19.534837 73.366699″, “19.008892 75.563964″); // ok
$polygon_9 = array(“19.112732 77.849121″, “15.54003 79.030151″, “17.680008 75.509034″, “19.638343 75.651856″, “19.112732 77.849121″); // ok
echo ” polygon_1 ” . $pointLocation->pointInPolygon($points[0], $polygon_1) . “”;
echo ” polygon_2 ” . $pointLocation->pointInPolygon($points[0], $polygon_2) . “”;
echo ” polygon_3 ” . $pointLocation->pointInPolygon($points[0], $polygon_3) . “”;
echo ” polygon_4 ” . $pointLocation->pointInPolygon($points[0], $polygon_4) . “”;
echo ” polygon_5 ” . $pointLocation->pointInPolygon($points[0], $polygon_5) . “”;
echo ” polygon_6 ” . $pointLocation->pointInPolygon($points[0], $polygon_6) . “”;
echo ” polygon_7 ” . $pointLocation->pointInPolygon($points[0], $polygon_7) . “”;
echo ” polygon_8 ” . $pointLocation->pointInPolygon($points[0], $polygon_8) . “”;
echo ” polygon_9 ” . $pointLocation->pointInPolygon($points[0], $polygon_9) . “”;
?>

No comments:

Post a Comment