The calculated distance (air line) between Villanueva and General Santos is approximately 173 miles respectively 279 kilometers.
By car or train, the actual journey to General Santos is certainly longer, as only the direct route (as the crow flies) between Villanueva and General Santos has been calculated here.
Air line (approximately)
279 kilometers
150 nautical miles