First thing to check here is the IP obfuscation, this can be done with the help of Adobe Consultant or Customer Care. If IP obfuscation is enabled, the last byte from the IP address is replaced with "0” and the location is changed to a different location that does not match with rule.
If it is enabled, then we have two options:
Disable IP Obfuscation on Account level.
Enable IP obfuscation for specific countries.
[Both above alternatives will require help from Adobe Consultant or Customer Care]
Sometimes, even after performing above steps traits will not populate and that is what happened with me in my current use case where I had my trait as:
d_lat contains 28.535 AND d_long contains 77.336.
Even when IP obfuscation is not enabled, one should not expect GPS level accuracy on the location information provided by AAM - which is, in the end, inferred from the IP address.
The way this works in AAM is through the following process:
We lookup (based on the IP address) on external dataset (extensively used by this industry)
The location itself contains information like "Country", "Region", "City", "Area code", "Continent", etc
As you imagine, this database is not exhaustive by any means, nor its very precise in the location estimates. Trying to rely on the lat/long for targeting a specific area it's just unfeasible!
Lat/Long would be useful with an additional trait rule expression, that would permit to do geo-spatial queries. Otherwise, one should use city/region/country instead.