I suspect your antenna has too much gain. Imagine an omnidirectional antenna like a rubber donut. It covers 360 degrees around you, but there's a hole in the middle that doesn't have great coverage. So there's problem #1.
Problem #2 is that the rubber donut "squishes" down when the gain is increased. Increase it too high and you have more of a disc than a donut. So the 360 degree coverage is always there, but it likely doesn't cover below or above the antenna very much at all.
These two problems combined are likely what's whacking your signal. A 1km area should probably be covered by a lot more than a single access point. Those high-gain omni antennas are meant to connect point-to-multipoint bridges, not connect to clients. They're great for that since you don't want or need to cover the ground with a bridge. But for client connectivity, it's not so great.
The only thing you could try to do is to reduce the AP power to try to offset the omni antenna gain. Of course, this causes its own problems, and you'll definitely not reach 1km with low power. I guess the other option is to try bringing the AP closer to the ground. But really, the best fix would be more APs and smaller-gain antennas.
I hope that helps, sorry I don't have an easier fix.