Tower locations are based purely on calculations. The reason that towers will show up over water is due to the fact that water usually doesn't contain any object that can block signals. So, to the algorithm, sitting in a building right beside a cell phone tower will appear to be the same as being 5 km away with direct line of sight. Hence, it will calculate an average of the two spots and display a marker there. The most ideal terrain to calculate a towers is a completely flat ground with tower spaced wide apart. That being said, even that will not guarantee the location is correct if the measurements provided by the phone were not correct. For a tower to be calculated properly, you will need to travel around the tower in at least 1/2 to 3/4 of a circle near the actual location in order to determine the exact location. Currently, LTE is the most accurately mapped technology due to using RSRP instead of RSSI.