有没有办法用 android做到这一点?
我尝试了什么:
>使用Google的Places API,并希望每当用户在林中时,都会获得地点类型“natural_feature”.不幸的是,我大部分时间都得到“ZERO_RESulTS”
>阅读有关显示森林区域并试图将其置于GoogleMap之上的WMS图层.没有得到它的工作,也注意到我很可能只能显示地图不检查用户是否在图层的某个区域…
有没有办法检查当前位置是否在谷歌地图上的绿色区域?如果其他一切都失败,这甚至可能就足够了.
提前致谢!
解决方法 我目前不知道是否有更简单的方法来执行此 *** 作,但您可以尝试以下方法:>从地图中获取快照
>获取快照的平均颜色
>将平均颜色与预定义的森林颜色进行比较
>如果他们的差异低于您接受的公差,那么您就在
地图绿地
如果您没有放大地图并且绿色区域太小,结果可能不准确.在这种情况下,您只能在特定缩放级别上进行计算.
final int forestR = 214; final int forestG = 233; final int forestB = 215; final int tolerance = 60; button button = (button) findVIEwByID(R.ID.check_forest_btn); button.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { GoogleMap.SnapshotReadyCallback callback = new GoogleMap.SnapshotReadyCallback() { @OverrIDe public voID onSnapshotReady(Bitmap snapshot) { int pixelCount = 0; int redcolors = 0; int greencolors = 0; int bluecolors = 0; for (int y = 0; y < snapshot.getHeight(); y++) { for (int x = 0; x < snapshot.getWIDth(); x++) { int c = snapshot.getPixel(x,y); pixelCount++; redcolors += color.red(c); greencolors += color.green(c); bluecolors += color.blue(c); } } // calculate average of bitmap r,g,b values int red = (redcolors / pixelCount); int green = (greencolors / pixelCount); int blue = (bluecolors / pixelCount); int difference = Math.abs(red - forestR) + Math.abs(green - forestG) + Math.abs(blue - forestB); boolean isForest = difference < tolerance;//use this to display your information } }; map.snapshot(callback); } });总结
以上是内存溢出为你收集整理的android – 检查用户是否在使用位置的林中全部内容,希望文章能够帮你解决android – 检查用户是否在使用位置的林中所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)