According to MaxMind for GeoIP:
The latitude and longitude are near the center of the most granular
location value returned: postal code, city, region, or country
Therefore, latitude and longitude won't be any more precise than city or postal code, and could correspond to the region or country if those are not available. Since it appears that your service is broken down by city, that seems like the better choice.
Note however that in the U.S., accuracy on the city level is 83% per 40 kilometer (~25 mile) radius. For other countries it may be lower, as can be viewed here: GeoIP City Accuracy for Selected Countries.
You should also be aware that sending visitors to different locations based on their IP address may create confusion and a high bounce rate. Visitors could be using cellular or other Internet connections that do not resolve precisely.
Instead of directing them automatically, you might consider displaying a message like, "View our site for __ city? Or select your city from the list below" (whatever works best for your site). That way the user has some control over where they are directed to. An option to change their location and/or go to the main site might also be wise.