本文整理汇总了Java中org.oscim.core.BoundingBox.contains方法的典型用法代码示例。如果您正苦于以下问题:Java BoundingBox.contains方法的具体用法?Java BoundingBox.contains怎么用?Java BoundingBox.contains使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.oscim.core.BoundingBox
的用法示例。
在下文中一共展示了BoundingBox.contains方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: activateSelectedItems
import org.oscim.core.BoundingBox; //导入方法依赖的package包/类
/**
* When a content sensitive action is performed the content item needs to be
* identified. This method does that and then performs the assigned task on
* that item.
*
* @return true if event is handled false otherwise
*/
protected boolean activateSelectedItems(MotionEvent event, ActiveItem task) {
int size = mItemList.size();
if (size == 0)
return false;
int eventX = (int) event.getX() - mMap.getWidth() / 2;
int eventY = (int) event.getY() - mMap.getHeight() / 2;
Viewport mapPosition = mMap.viewport();
BoundingBox bbox = mapPosition.getBBox(128);
int nearest = -1;
int inside = -1;
double insideY = -Double.MAX_VALUE;
/* squared dist: 50*50 pixel ~ 2mm on 400dpi */
double dist = 2500;
for (int i = 0; i < size; i++) {
Item item = mItemList.get(i);
if (!bbox.contains(item.geoPoint))
continue;
mapPosition.toScreenPoint(item.getPoint(), mTmpPoint);
float dx = (float) (mTmpPoint.x - eventX);
float dy = (float) (mTmpPoint.y - eventY);
MarkerSymbol it = item.getMarker();
if (it == null)
it = mMarkerRenderer.mDefaultMarker;
if (it.isInside(dx, dy)) {
if (mTmpPoint.y > insideY) {
insideY = mTmpPoint.y;
inside = i;
}
}
if (inside >= 0)
continue;
double d = dx * dx + dy * dy;
if (d > dist)
continue;
dist = d;
nearest = i;
}
if (inside >= 0)
nearest = inside;
if (nearest >= 0 && task.run(nearest)) {
mMarkerRenderer.update();
mMap.render();
return true;
}
return false;
}
示例2: activateSelectedItems
import org.oscim.core.BoundingBox; //导入方法依赖的package包/类
/**
* When a content sensitive action is performed the content item needs to be
* identified. This method does that and then performs the assigned task on
* that item.
*
* @param event
* ...
* @param task
* ..
* @return true if event is handled false otherwise
*/
private boolean activateSelectedItems(MotionEvent event, ActiveItem task) {
int size = mItemList.size();
if (size == 0)
return false;
int eventX = (int) event.getX() - mMapView.getWidth() / 2;
int eventY = (int) event.getY() - mMapView.getHeight() / 2;
MapViewPosition mapViewPosition = mMapView.getMapViewPosition();
BoundingBox bbox = mapViewPosition.getViewBox();
int nearest = -1;
double dist = Double.MAX_VALUE;
for (int i = 0; i < size; i++) {
Item item = getItem(i);
if (!bbox.contains(item.mGeoPoint)) {
//Log.d(TAG, "skip: " + item.getTitle());
continue;
}
// final Drawable marker = (item.getMarker(0) == null) ? this.mDefaultMarker : item
// .getMarker(0);
// TODO use intermediate projection
mapViewPosition.project(item.getPoint(), mItemPoint);
double dx = mItemPoint.x - eventX;
double dy = mItemPoint.y - eventY;
//Log.d(TAG, item.getTitle() + " " + mItemPoint + " " + dx + "/" + dy);
double d = dx * dx + dy * dy;
// squared dist: 50*50 pixel
if (d < 2500) {
if (d < dist) {
dist = d;
nearest = i;
}
}
}
if (nearest >= 0 && task.run(nearest)) {
return true;
}
return false;
}