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


Java Projection类代码示例

本文整理汇总了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);
        }
    }
}
 
开发者ID:Arman92,项目名称:Mapsforge-OsmDroid-GraphHopper,代码行数:17,代码来源:MyMarker.java

示例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;
        }
    }
 
开发者ID:Arman92,项目名称:Mapsforge-OsmDroid-GraphHopper,代码行数:20,代码来源:MyLocationNewOverlay.java

示例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);
}
 
开发者ID:jeffallen,项目名称:MarshrutMe,代码行数:21,代码来源:Marker.java

示例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);
	}
 
开发者ID:jeffallen,项目名称:MarshrutMe,代码行数:19,代码来源:Polygon.java

示例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;
}
 
开发者ID:jeffallen,项目名称:MarshrutMe,代码行数:28,代码来源:Polyline.java

示例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);
}
 
开发者ID:jeffallen,项目名称:MarshrutMe,代码行数:25,代码来源:GroundOverlay.java

示例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());
    }
}
 
开发者ID:k3b,项目名称:LocationMapViewer,代码行数:21,代码来源:GuestureOverlay.java

示例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();
	}
}
 
开发者ID:osmdroid,项目名称:osmdroid,代码行数:24,代码来源:Marker.java

示例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;
}
 
开发者ID:osmdroid,项目名称:osmdroid,代码行数:17,代码来源:Polyline.java

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

示例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;
	}
}
 
开发者ID:osmdroid,项目名称:osmdroid,代码行数:21,代码来源:MyLocationNewOverlay.java

示例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);
}
 
开发者ID:osmdroid,项目名称:osmdroid,代码行数:27,代码来源:GroundOverlay2.java

示例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);
}
 
开发者ID:osmdroid,项目名称:osmdroid,代码行数:27,代码来源:IconOverlay.java

示例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;
}
 
开发者ID:osmdroid,项目名称:osmdroid,代码行数:37,代码来源:LinearRing.java

示例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();
}
 
开发者ID:osmdroid,项目名称:osmdroid,代码行数:21,代码来源:LinearRing.java


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