PHP Classes

PHP Nearest Neighbor: Find nearest neighbor of a set of location points

Recommend this page to a friend!
  Info   View files Example   Screenshots Screenshots   View files View files (2)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Ratings Unique User Downloads Download Rankings
Not enough user ratingsTotal: 323 This week: 1All time: 7,206 This week: 571Up
Version License PHP version Categories
nearest-neighbor 1.0.4BSD License3.0Algorithms, Graphics, Geography
Description 

Author

This package can find nearest neighbor of a set of location points.

It takes a set of geographic points given their latitude and longitude and it determine the nearest neighbor of another given point.

It can also generate an image that visualizes that renders the points and the areas they form as triangles.

Innovation Award
PHP Programming Innovation award nominee
June 2014
Number 3


Prize: One copy of the Zend Studio
Certain geographic problems need to determine what is the closest point from other locations.

This class can find what is the nearest neighbor point of a set of geographic locations from a given point.

Manuel Lemos
Picture of Chi H.
  Performance   Level  
Name: Chi H. <contact>
Classes: 28 packages by
Country: France France
Age: 39
All time rank: 34222 in France France
Week rank: 103 Up6 in France France Up
Innovation award
Innovation award
Nominee: 22x

Winner: 3x

Recommendations

PHP k-means Algorithm Data Miner
I need to segments all object into appropriate number of cluster

Example

<?php

/***************************************************************
* Copyright notice
*
* (c) 2014 Chi Hoang (info@chihoang.de)
* All rights reserved
*
***************************************************************/
require_once("main.php");
 
 
// Turn off all error reporting
error_reporting(0);

// example 1
$tri=new voronoi();
$set=$tri->main();
list(
$tree,$size)=$tri->buildtree($set);
$nearest=new nearestneighbor();
//$p=new Point(12,322);
$p=new Point(60,60);
//$p=new Point(26,229);
$find=$nearest->main($tri,$tree,$p);
$nearest->show($tri,$find,0,$p);
     
//example2
$set=array();
$tree=array(172,31,238,106,233,397,118,206,58,28,268,382,10,380,342,26,67,371,380,14,382,200,24,200,194,190,10,88,276,331);
for (
$i=0,$end=count($tree);$i<$end;$i+=2)
{
   
$set[]=array($tree[$i],$tree[$i+1]);
}
$tri=new voronoi();
list(
$tree,$size)=$tri->buildtree($set);

$nearest=new nearestneighbor();
//$p=new Point(12,322);
//$p=new Point(160,160);
$p=new Point(326,229);
//$p=new Point(188,298);

$find=$nearest->main($tri,$tree,$p);
$nearest->show($tri,$find,$size-4,$p);

// experimental point-in-polygon
//$find=$nearest->polytest($tri,0,$p);
$find=$nearest->polytest($tri,$size-4,$p);
?>


Screenshots  
  • cluster1
  • cluster2
  • cluster3
  • cluster4
  • cluster5
  • cluster6
  • cluster7
  Files folder image Files  
File Role Description
Accessible without login Plain text file example.php Example example
Plain text file main.php Class main class

 Version Control Unique User Downloads Download Rankings  
 0%
Total:323
This week:1
All time:7,206
This week:571Up