pos = Values[Normal[aqi[All, {"Latitude", "Longitude", "AQI"}]]] /. {lat_, long_, aqi_} :> Thread[GeoPosition[{lat, long}] -> aqi];
GeoSmoothHistogram[Association[pos], ColorFunction -> "Rainbow",
Mesh -> 20, MeshStyle -> Directive[Opacity[0.085], Blue],
GeoBackground -> "StreetMap"]

You need to generate GeoElevationData :
ged= GeoElevationData /@(Values[Normal[aqi[All, {"Latitude", "Longitude"}]]] /. {lat_, long_} :> GeoPosition[{lat, long}])
Check with GeoBackground -> "ReliefMap" option in the above plot. Play with GeoElevationData too.
Have been just throwing quick solutions while commuting...