本文整理汇总了Java中org.osmdroid.views.Projection类的典型用法代码示例。如果您正苦于以下问题:Java Projection类的具体用法?Java Projection怎么用?Java Projection使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Projection类属于org.osmdroid.views包,在下文中一共展示了Projection类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: draw
import org.osmdroid.views.Projection; //导入依赖的package包/类
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
if(!shadow) {
if(this.mIcon != null) {
Projection pj = mapView.getProjection();
pj.toPixels(this.mPosition, this.mPositionPixels);
int width = this.mIcon.getIntrinsicWidth();
int height = this.mIcon.getIntrinsicHeight();
Rect rect = new Rect(0, 0, width, height);
rect.offset(-((int)(this.mAnchorU * (float)width)), -((int)(this.mAnchorV * (float)height)));
this.mIcon.setBounds(rect);
this.mIcon.setAlpha((int)(this.mAlpha * 255.0F));
float rotationOnScreen = this.mFlat?-this.mBearing:mapView.getMapOrientation() - this.mBearing;
drawAt(canvas, this.mIcon, this.mPositionPixels.x, this.mPositionPixels.y, false, rotationOnScreen);
}
}
}
示例2: onSnapToItem
import org.osmdroid.views.Projection; //导入依赖的package包/类
@Override
public boolean onSnapToItem(final int x, final int y, final Point snapPoint,
final IMapView mapView) {
if (this.mLocation != null) {
Projection pj = mMapView.getProjection();
pj.toPixelsFromProjected(mMapCoordsProjected, mMapCoordsTranslated);
snapPoint.x = mMapCoordsTranslated.x;
snapPoint.y = mMapCoordsTranslated.y;
final double xDiff = x - mMapCoordsTranslated.x;
final double yDiff = y - mMapCoordsTranslated.y;
boolean snap = xDiff * xDiff + yDiff * yDiff < 64;
// if (DEBUGMODE) {
// logger.debug("snap=" + snap);
// }
return snap;
} else {
return false;
}
}
示例3: draw
import org.osmdroid.views.Projection; //导入依赖的package包/类
@Override public void draw(Canvas canvas, MapView mapView, boolean shadow) {
if (shadow)
return;
if (mIcon == null)
return;
final Projection pj = mapView.getProjection();
pj.toPixels(mPosition, mPositionPixels);
int width = mIcon.getIntrinsicWidth();
int height = mIcon.getIntrinsicHeight();
Rect rect = new Rect(0, 0, width, height);
rect.offset(-(int)(mAnchorU*width), -(int)(mAnchorV*height));
mIcon.setBounds(rect);
mIcon.setAlpha((int)(mAlpha*255));
float rotationOnScreen = (mFlat ? -mBearing : mapView.getMapOrientation()-mBearing);
drawAt(canvas, mIcon, mPositionPixels.x, mPositionPixels.y, false, rotationOnScreen);
}
示例4: draw
import org.osmdroid.views.Projection; //导入依赖的package包/类
@Override protected void draw(Canvas canvas, MapView mapView, boolean shadow) {
if (shadow) {
return;
}
final Projection pj = mapView.getProjection();
mPath.rewind();
mOutline.buildPathPortion(pj);
for (LinearRing hole:mHoles){
hole.buildPathPortion(pj);
}
canvas.drawPath(mPath, mFillPaint);
canvas.drawPath(mPath, mOutlinePaint);
}
示例5: isCloseTo
import org.osmdroid.views.Projection; //导入依赖的package包/类
/** Detection is done is screen coordinates.
* @param point
* @param tolerance in pixels
* @return true if the Polyline is close enough to the point.
*/
public boolean isCloseTo(GeoPoint point, double tolerance, MapView mapView) {
final Projection pj = mapView.getProjection();
precomputePoints(pj);
Point p = pj.toPixels(point, null);
int i = 0;
boolean found = false;
while (i < mPointsPrecomputed - 1 && !found) {
Point projectedPoint1 = mPoints.get(i);
if (i == 0){
pj.toPixelsFromProjected(projectedPoint1, mTempPoint1);
} else {
//reuse last b:
mTempPoint1.set(mTempPoint2.x, mTempPoint2.y);
}
Point projectedPoint2 = mPoints.get(i+1);
pj.toPixelsFromProjected(projectedPoint2, mTempPoint2);
found = (linePointDist(mTempPoint1, mTempPoint2, p, true) <= tolerance);
//TODO: if found, compute and return the point ON the line.
i++;
}
return found;
}
示例6: draw
import org.osmdroid.views.Projection; //导入依赖的package包/类
@Override protected void draw(Canvas canvas, MapView mapView, boolean shadow) {
if (shadow)
return;
if (mImage == null)
return;
if (mHeight == NO_DIMENSION){
mHeight = mWidth * mImage.getIntrinsicHeight() / mImage.getIntrinsicWidth();
}
final Projection pj = mapView.getProjection();
pj.toPixels(mPosition, mPositionPixels);
GeoPoint pEast = mPosition.destinationPoint(mWidth, 90.0f);
GeoPoint pSouthEast = pEast.destinationPoint(mHeight, -180.0f);
pj.toPixels(pSouthEast, mSouthEastPixels);
int width = mSouthEastPixels.x-mPositionPixels.x;
int height = mSouthEastPixels.y-mPositionPixels.y;
mImage.setBounds(-width/2, -height/2, width/2, height/2);
mImage.setAlpha(255-(int)(mTransparency*255));
drawAt(canvas, mImage, mPositionPixels.x, mPositionPixels.y, false, -mBearing);
}
示例7: zoom
import org.osmdroid.views.Projection; //导入依赖的package包/类
private void zoom(MapView mapView, boolean ddragMode) {
if (isDebugEnabled()) debug("zoom",this);
// mapView.setC .zoomToBoundingBox(rect);
final Projection projection = mapView.getProjection();
IMapController controller = mapView.getController();
if (ddragMode) {
IGeoPoint start = projection.fromPixels(this.mStart.x, this.mStart.y);
IGeoPoint end = projection.fromPixels(this.mEnd.x, this.mEnd.y);
ZoomUtil.zoomTo(mapView, ZoomUtil.NO_ZOOM, start, end);
if (isDebugEnabled()) debug("zoom(ddrag mode)", start, "..", end,
"=>", mapView.getMapCenter(), "z=", mapView.getZoomLevel());
} else {
IGeoPoint center = projection.fromPixels(this.mStart.x, this.mStart.y);
controller.setCenter(center);
controller.zoomIn();
if (isDebugEnabled()) debug("zoom(to center of)", center,
"=>", mapView.getMapCenter(), "z=", mapView.getZoomLevel());
}
}
示例8: draw
import org.osmdroid.views.Projection; //导入依赖的package包/类
@Override public void draw(Canvas canvas, MapView mapView, boolean shadow) {
if (shadow)
return;
if (mIcon == null)
return;
final Projection pj = mapView.getProjection();
pj.toPixels(mPosition, mPositionPixels);
int width = mIcon.getIntrinsicWidth();
int height = mIcon.getIntrinsicHeight();
Rect rect = new Rect(0, 0, width, height);
rect.offset(-(int)(mAnchorU*width), -(int)(mAnchorV*height));
mIcon.setBounds(rect);
mIcon.setAlpha((int)(mAlpha*255));
float rotationOnScreen = (mFlat ? -mBearing : mapView.getMapOrientation()-mBearing);
drawAt(canvas, mIcon, mPositionPixels.x, mPositionPixels.y, false, rotationOnScreen);
if (isInfoWindowShown()) {
showInfoWindow();
}
}
示例9: onSingleTapConfirmed
import org.osmdroid.views.Projection; //导入依赖的package包/类
@Override
public boolean onSingleTapConfirmed(final MotionEvent event, final MapView mapView) {
final Projection pj = mapView.getProjection();
GeoPoint eventPos = (GeoPoint) pj.fromPixels((int) event.getX(), (int) event.getY());
double tolerance = mPaint.getStrokeWidth() * density;
boolean touched = isCloseTo(eventPos, tolerance, mapView);
if (touched) {
//eventPos = this.getInfoWindowAnchorPoint(eventPos);
if (mOnClickListener == null) {
return onClickDefault(this, mapView, eventPos);
} else {
return mOnClickListener.onClick(this, mapView, eventPos);
}
} else
return touched;
}
示例10: activateSelectedItems
import org.osmdroid.views.Projection; //导入依赖的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 mapView
* @param task
* @return true if event is handled false otherwise
*/
private boolean activateSelectedItems(final MotionEvent event, final MapView mapView,
final ActiveItem task) {
final Projection pj = mapView.getProjection();
final int eventX = (int) event.getX();
final int eventY = (int) event.getY();
for (int i = 0; i < this.mItemList.size(); ++i) {
final Item item = getItem(i);
if (item == null) {
continue;
}
final Drawable marker = (item.getMarker(0) == null) ?
this.mDefaultMarker : item.getMarker(0);
pj.toPixels(item.getPoint(), mItemPoint);
if (hitTest(item, marker, eventX - mItemPoint.x, eventY - mItemPoint.y)) {
if (task.run(i)) {
return true;
}
}
}
return false;
}
示例11: onSnapToItem
import org.osmdroid.views.Projection; //导入依赖的package包/类
@Override
public boolean onSnapToItem(final int x, final int y, final Point snapPoint,
final IMapView mapView) {
if (this.mLocation != null) {
Projection pj = mMapView.getProjection();
final double powerDifference = pj.getProjectedPowerDifference();
pj.getPixelsFromProjected(mMapCoordsProjected, powerDifference, mMapCoordsTranslated);
snapPoint.x = mMapCoordsTranslated.x;
snapPoint.y = mMapCoordsTranslated.y;
final double xDiff = x - mMapCoordsTranslated.x;
final double yDiff = y - mMapCoordsTranslated.y;
boolean snap = xDiff * xDiff + yDiff * yDiff < 64;
if (Configuration.getInstance().isDebugMode()) {
Log.d(IMapView.LOGTAG, "snap=" + snap);
}
return snap;
} else {
return false;
}
}
示例12: draw
import org.osmdroid.views.Projection; //导入依赖的package包/类
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow)
{
if(null == mImage || shadow) {
return;
}
final Projection pj = mapView.getProjection();
long x0 = pj.getLongPixelXFromLongitude(mLonL),
y0 = pj.getLongPixelYFromLatitude(mLatU),
x1 = pj.getLongPixelXFromLongitude(mLonR),
y1 = pj.getLongPixelYFromLatitude(mLatD);
float widthOnTheMap = x1 - x0,
heightOnTheMap = y1 - y0;
float scaleX = widthOnTheMap / mImage.getWidth(),
scaleY = heightOnTheMap / mImage.getHeight();
setupScalingThenTranslatingMatrix(scaleX, scaleY, x0, y0);
Paint paint = new Paint();
paint.setAlpha(255-(int)(mTransparency * 255));
canvas.drawBitmap(mImage, mStretchToFitTransformationMatrix, paint);
}
示例13: draw
import org.osmdroid.views.Projection; //导入依赖的package包/类
/**
* Draw the icon.
*/
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
if (shadow)
return;
if (mIcon == null)
return;
if (mPosition == null)
return;
final Projection pj = mapView.getProjection();
pj.toPixels(mPosition, mPositionPixels);
int width = mIcon.getIntrinsicWidth();
int height = mIcon.getIntrinsicHeight();
Rect rect = new Rect(0, 0, width, height);
rect.offset(-(int)(mAnchorU*width), -(int)(mAnchorV*height));
mIcon.setBounds(rect);
mIcon.setAlpha((int) (mAlpha * 255));
float rotationOnScreen = (mFlat ? -mBearing : mapView.getMapOrientation()-mBearing);
drawAt(canvas, mIcon, mPositionPixels.x, mPositionPixels.y, false, rotationOnScreen);
}
示例14: buildPathPortion
import org.osmdroid.views.Projection; //导入依赖的package包/类
/**
* Feed the path with the segments corresponding to the GeoPoint pairs
* projected using pProjection and clipped into a "reasonable" clip area
* In most cases (Polygon without holes, Polyline) the offset parameter will be null.
* In the case of a Polygon with holes, the first path will use a null offset.
* Then this method will return the pixel offset computed for this path so that
* the path is in the best possible place on the map:
* the center of all pixels is as close to the screen center as possible
* Then, this computed offset must be injected into the buildPathPortion for each hole,
* in order to have the main polygon and its holes at the same place on the map.
* @return the initial offset if not null, or the computed offset
*/
PointL buildPathPortion(final Projection pProjection,
final PointL pOffset,
final boolean pStorePoints){
final int size = mOriginalPoints.size();
if (size < 2) { // nothing to paint
return pOffset;
}
if (!mPrecomputed){
computeProjectedAndDistances(pProjection);
mPrecomputed = true;
}
final PointL offset;
if (pOffset != null) {
offset = pOffset;
} else {
offset = new PointL();
getBestOffset(pProjection, offset);
}
mSegmentClipper.init();
clipAndStore(pProjection, offset, true, pStorePoints, mSegmentClipper);
mSegmentClipper.end();
mPath.close();
return offset;
}
示例15: buildLinePortion
import org.osmdroid.views.Projection; //导入依赖的package包/类
/**
* Dedicated to Polyline, as they can run much faster with drawLine than through a Path
* @since 6.0.0
*/
void buildLinePortion(final Projection pProjection,
final boolean pStorePoints){
final int size = mOriginalPoints.size();
if (size < 2) { // nothing to paint
return;
}
if (!mPrecomputed){
computeProjectedAndDistances(pProjection);
mPrecomputed = true;
}
final PointL offset = new PointL();
getBestOffset(pProjection, offset);
mSegmentClipper.init();
clipAndStore(pProjection, offset, false, pStorePoints, mSegmentClipper);
mSegmentClipper.end();
}