本文整理汇总了Java中org.oscim.core.Box.map2mercator方法的典型用法代码示例。如果您正苦于以下问题:Java Box.map2mercator方法的具体用法?Java Box.map2mercator怎么用?Java Box.map2mercator使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.oscim.core.Box
的用法示例。
在下文中一共展示了Box.map2mercator方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: constructor
import org.oscim.core.Box; //导入方法依赖的package包/类
@Test
void constructor() {
double latTopLeft = 52.581;
double lonTopLeft = 13.396;
double latBotomRight = 52.579;
double lonBotomright = 13.400;
double latCenter = 52.580;
double lonCenter = 13.398;
GeoPoint leftTop = new GeoPoint(latTopLeft, lonTopLeft);
GeoPoint rightBotom = new GeoPoint(latBotomRight, lonBotomright);
GeoPoint geoPoint = new GeoPoint(latCenter, lonCenter);
GeoBoundingBoxInt gbb = new GeoBoundingBoxInt(leftTop, rightBotom);
assertThat("Point must inside Box", gbb.contains(geoPoint));
Box box = new Box(MercatorProjection.longitudeToX(lonTopLeft)
, MercatorProjection.latitudeToY(latTopLeft)
, MercatorProjection.longitudeToX(lonBotomright)
, MercatorProjection.latitudeToY(latBotomRight));
box.map2mercator();
assertThat("Point must inside Box", box.contains(lonCenter, latCenter));
GeoBoundingBoxInt geoBoundingBox = new GeoBoundingBoxInt(box);
assertThat("Point must inside Box", geoBoundingBox.contains(geoPoint));
}
示例2: activateSelectedItems
import org.oscim.core.Box; //导入方法依赖的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();
Box box = mapPosition.getBBox(null, 128);
box.map2mercator();
box.scale(1E6);
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 (!box.contains(item.getPoint().longitudeE6,
item.getPoint().latitudeE6))
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;
}