I am making maps of stuff like population density and would like to add labels but GeoLabels makes it awfully busy. Here is an example. I would like to be able to control what gets written, the color, the location. In the following I plot the population density for each county in New Mexico. GeoLabels makes black labels that say stuff like: "Santa Fe County, New Mexico, United States" which is a tad superfluous. I'd prefer it just said "Sante Fe".
Side comment:
I've learned an enormous amount from this site and appreciate it. I'm wondering whether you wizards would've used MapThread the way I did in the call to GeoRegionValue or if you'd have done it some other way. I'm a little slow grocking functional programming.
nmcounties = AdministrativeDivisionData[Entity["AdministrativeDivision", {"NewMexico", "UnitedStates"}], "Subdivisions"];
nmpopdensity = AdministrativeDivisionData[#, "PopulationDensity"] & /@ nmcounties;
GeoRegionValuePlot[MapThread[Rule, {nmcounties, nmpopdensity}], ColorFunction -> ColorData["Rainbow"]]
GeoRegionValuePlot[MapThread[Rule, {nmcounties, nmpopdensity}], ColorFunction -> ColorData["Rainbow"], GeoLabels -> True]