MapView Projectiion オブジェクトをスローする Point オブジェクトを取得しています。
オーバーレイのリストがあり、各オーバーレイが現在の画面内にあるかどうかを確認したい (これはズーム レベルによって異なります)。
特定のポイントが画面内にあるかどうかを確認する方法が見つかりませんでした。
私が見つけたのは、投影からポイントをログに記録しているときに、画面にないポイントが負の値を持つことです..
Point が負の値の場合、画面の外にあるというのは本当ですか?
MapView Projectiion オブジェクトをスローする Point オブジェクトを取得しています。
オーバーレイのリストがあり、各オーバーレイが現在の画面内にあるかどうかを確認したい (これはズーム レベルによって異なります)。
特定のポイントが画面内にあるかどうかを確認する方法が見つかりませんでした。
私が見つけたのは、投影からポイントをログに記録しているときに、画面にないポイントが負の値を持つことです..
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
}