Find list position and mapping list

Most directly:

Pick[ii, tt, x_ /; x > 150]
{{46, 154}, {93, 158}, {160, 112}, {271, 128}, {317, 153},
 {503, 139}, {739, 132}, {857, 128}, {904, 171}}

Or slightly more efficiently:

Pick[ii, Thread[tt > 150]]
{{46, 154}, {93, 158}, {160, 112}, {271, 128}, {317, 153},
 {503, 139}, {739, 132}, {857, 128}, {904, 171}}

Some other things to observe:

p1 = Join @@ Position[tt, x_ /; x > 150]
{1, 2, 4, 8, 9, 14, 21, 25, 26}
mask = Boole @ Thread[tt > 150]
{1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1}
ii[[p1]]
{{46, 154}, {93, 158}, {160, 112}, {271, 128}, {317, 153},
 {503, 139}, {739, 132}, {857, 128}, {904, 171}}
Pick[ii, mask, 1]
{{46, 154}, {93, 158}, {160, 112}, {271, 128}, {317, 153},
 {503, 139}, {739, 132}, {857, 128}, {904, 171}}

Also:

ii ~Extract~ Position[tt, x_ /; x > 150]
{{46, 154}, {93, 158}, {160, 112}, {271, 128}, {317, 153},
 {503, 139}, {739, 132}, {857, 128}, {904, 171}}

Do you want something like this?

Pick[ii, # >= 150 & /@ tt]

=> {{46, 154}, {93, 158}, {160, 112}, {271, 128}, {317, 153}, {503, 139}, {739, 132}, {857, 128}, {904, 171}}

or

location = Boole[# >= 150] & /@ tt

=> {1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1}

and

Pick[ii, location, 1]

 ttpos=MapIndexed[If[# >= 150, First@#2, ## &[]] &, tt]

or

 ttpos=Select[Range[Length[tt]], tt[[#]] >= 150 &]
 (* {1, 2, 4, 8, 9, 14, 21, 25, 26} *)

or

 UnitStep[tt - 150]
 (* {1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1}*)

 Range[Length[tt]] UnitStep[tt - 150] /. (0) -> Sequence[]

or

 SparseArray[UnitStep[tt - 150]]["AdjacencyLists"]
 (* {1, 2, 4, 8, 9, 14, 21, 25, 26} *)

For the corresponding elements in ii:

 ii[[ttpos]]
 (* {{46, 154}, {93, 158}, {160, 112}, {271, 128}, {317, 153},
   {503,  139}, {739, 132}, {857, 128}, {904, 171}} *)