android如何检查一个点是否在我的屏幕内

标签 android google-maps map-projections

我正在获取一个 Point 对象并抛出我的 MapView Projectiion 对象。

我有一个叠加层列表,我想检查每个叠加层是否在我当前的屏幕内(这取决于缩放级别)。

我找不到检查给定点是否在屏幕内的方法。

我发现的是,当我从投影中记录点时,不在屏幕上的点具有负值..

如果一个 Point 的值为负值,它就在我的屏幕之外,这样说对吗?

最佳答案

    GeoPoint yourPoint = null;// w/e point u wanna see is on the screen

    Point newPoint = null; // x/y point

    mapView.getProjection().toPixels(yourPoint, newPoint); //convert to xy Point

    int height = context.getResources().getDisplayMetrics().heightPixels;

    int width = context.getResources().getDisplayMetrics().widthPixels;

    Rect screen = new Rect(0,0,width,height); //rect that represents your Screen

    if(screen.contains(newPoint.x, newPoint.y){
         // your point is on the screen
    }

关于android如何检查一个点是否在我的屏幕内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12450370/

相关文章:

Python最近邻——坐标

unity3d - 将墨卡托投影转换为等距柱状投影的着色器?

android - 为什么 libcore.io.ErrnoException : kill failed: ESRCH (No such process) in android?

android - 我无法从 Android 的 Kitkat 版本的收件箱中删除短信

java - Android Studio 中的编辑器配置

android - 谷歌地图标记信息 WIndow OnClick 事件

python - Flask 动态 Google map 标记(python、postgres、psycopg2)

java - Android--如何在 googlemap-v2 中画一条线

Android onFocusChange 被多次触发

r - 如何在 ggplot2 中正确绘制投影网格数据?