当前位置: 首页>>代码示例>>Java>>正文


Java BoundingBox.contains方法代码示例

本文整理汇总了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;
}
 
开发者ID:opensciencemap,项目名称:vtm,代码行数:68,代码来源:ItemizedLayer.java

示例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;
}
 
开发者ID:opensciencemap,项目名称:vtm-android,代码行数:60,代码来源:ItemizedIconOverlay.java


注:本文中的org.oscim.core.BoundingBox.contains方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。