private static boolean doesDetectedPolygonMatchesWithRoads(ArrayList<Position> detectedPolygon, ArrayList<Road> roads)
	{
		ArrayList<Road>[] roadListByNode = new ArrayList[detectedPolygon.size()];
		for (int i = 0; i < detectedPolygon.size(); i++)
			roadListByNode[i] = new ArrayList<Road>();

		for (int i = 0; i < detectedPolygon.size(); i++)
		{
			for (int j = 0; j < roads.size(); j++)
			{
				Road currentRoad = roads.get(j);
				if (currentRoad.isOnRoad(detectedPolygon.get(i)))
					roadListByNode[i].add(currentRoad);
			}
		}
		
		for (int i = 0; i < detectedPolygon.size(); i++)
		{
			if (i == detectedPolygon.size()-1)
				// Traitement du dernier point
				return isThereACommonRoad(roadListByNode[i], roadListByNode[0]);
			else
			{
				// On abandonne si le point courrant et le suivant n'ont pas de routes en commun
				if (!(isThereACommonRoad(roadListByNode[i], roadListByNode[i+1])))
					return false;
			}
		} 
		return false;
	}