title: Random geographic coordinates (on land, avoid ocean)
body: <p>Any clever ideas on how to generate random coordinates (latitude / longitude) of places on Earth?  Latitude / Longitude.  Precision to 5 points and avoid bodies of water.  </p>
  
  <pre><code>    double minLat = -90.00;
      double maxLat = 90.00;      
      double latitude = minLat + (double)(Math.random() * ((maxLat - minLat) + 1));
      double minLon = 0.00;
      double maxLon = 180.00;     
      double longitude = minLon + (double)(Math.random() * ((maxLon - minLon) + 1));
      DecimalFormat df = new DecimalFormat("#.#####");        
      log.info("latitude:longitude --&gt; " + df.format(latitude) + "," + df.format(longitude));
  </code></pre>
  
  <p>Maybe i'm living in a dream world and the water topic is unavoidable ... but hopefully there's a nicer, cleaner and more efficient way to do this?</p>
  
  <p><strong>EDIT</strong></p>
  
  <p>Some fantastic answers/ideas -- however, at scale, let's say I need to generate 25,000 coordinates.  Going to an external service provider may not be the best option due to latency, cost and a few other factors.  </p>