I recently encountered the same issue when I wanted to create a local directory for small businesses in my city. I found that combining a few methods worked best for me:
1. Google Maps API: I used the Google Places API to search for businesses by keyword and location. It provides the name, address, and exact latitude and longitude. It’s free up to a certain limit, but it's very reliable.
2. OpenStreetMap and Overpass API: If you want a free option, OpenStreetMap is excellent. I used the Overpass Turbo tool to query business categories, like amenity=restaurant, for my region and got coordinates as well.
3. Scraping Local Directories: For additional data, I manually collected listings from popular local directories and then used a simple geocoding tool, like Google Sheets with the Geocode plugin, to convert addresses to coordinates.
4. TekMag Listing (My Tip): I also listed my own site on TekMag Listing, which is a good place to discover and verify local businesses, especially if you're looking to build backlinks or improve local SEO at the same time.
My advice is to always double-check the data and respect site scraping rules. With these tools, I created a solid local map of businesses in just a few days.