IP Address is all you need to get fairly accurate (town or neighborhood) location for most of North America.

But it is necessary to send it somewhere, otherwise the internet wouldn't work.

Unfortunately it seems to have become accepted for our devices to communicate constantly and often with services we never explicitly started communication with (like Ad networks used in Apps).

Permission systems on devices should care about Network connections just as much as Location. Ideally when installing an app you'd get the list of domains it requests to communicate with, and you could toggle them. Bonus points if the app store made it a requirement to identify which Domains are third parties and the category like an Ad service.