我正在生成随机纬度和经度。但随机经纬度无法找到土地或水。使用谷歌API检查,我找不到,我在谷歌搜索。但我找不到解决方案,请帮帮我。我使用了这个来源(https://onwater.io/users/sign_up)网址。它每分钟只提供15个请求。我需要50纬度和长度来检查它是土地还是水。
答案 0 :(得分:1)
今天最简单的方法是使用Google Static Map API和Styled Maps:您可以为隐藏所有功能的Lat / Lon坐标创建一个像素地图(尺寸= 1x1)的请求除了water
并将water
颜色设置为例如纯蓝色(0x0000FF
)。像这样的东西
https://maps.googleapis.com/maps/api/staticmap?¢er={YOUR_LAT},{YOUR_LON}&zoom={YOUR_ZOOM}&size=1x1&style=feature:all|visibility:off&style=feature:water|visibility:on&style=feature:water|color:0x0000FF&key={YOUR_API_KEY}
然后下载(例如this的Vivek Khandelwal):
... public static Bitmap getGoogleMapThumbnail(double lati, double longi) { String URL = "http://maps.google.com/maps/api/staticmap?center=" + lati + "," + longi + "&zoom=15&size=200x200&sensor=false"; Bitmap bmp = null; bmp = getBitmapFromURL(URL); return bmp; } public static Bitmap getBitmapFromURL(String src) { try { URL url = new URL(src); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoInput(true); connection.connect(); InputStream input = connection.getInputStream(); Bitmap myBitmap = BitmapFactory.decodeStream(input); return myBitmap; } catch (IOException e) { e.printStackTrace(); return null; } } ...
... int pixel = bitmap.getPixel(x,y); if (pixel == Color.BLUE) { // water! } ...
如果是蓝色(0x0000FF
) - 您的Lat / Lon坐标上有水。
NB!您应该设置适当的缩放级别,并记住整个地球的所有缩放级别都没有地图图块。地图上也可能错过一些水/土。所以,这不是100%正确的解决方案,但希望它有所帮助。