Projection projection = map.getProjection(); projection.toPixels(geoPointBefore, pt); geoPointAfter = projection.fromPixels(pt.x, pt.y); int diffLatitude = geoPointBefore.getLatitudeE6() - geoPointAfter.getLatitudeE6(); int diffLongitude = geoPointBefore.getLongitudeE6() - geoPointAfter.getLongitudeE6(); ... ... ... // Add the difference to GeoPoint objects after conversion `fromPixels`
private void pathBuild(){ path.rewind(); if(mp.getPoints() == null || mp.getPoints().size() < 2) return; Projection projection = mapView.getProjection(); pathInitialLonSpan = projection.fromPixels(0,mapView.getHeight()/2).getLongitudeE6() - projection.fromPixels(mapView.getWidth(),mapView.getHeight()/2).getLongitudeE6(); projection.toPixels(mp.getPoints().get(0), pathInitialPoint); path.moveTo(pathInitialPoint.x,pathInitialPoint.y); for(int i=1; i<mp.getPoints().size(); i++){ projection.toPixels(mp.getPoints().get(i), p1); int distance2 = (pPrev.x - p1.x) * (pPrev.x - p1.x) + (pPrev.y - p1.y) * (pPrev.y - p1.y); if(distance2 > 9){ path.lineTo(p1.x,p1.y); pPrev.set(p1.x, p1.y); } }
private void pathBuild(){ path.rewind(); if(mp.getPoints() == null || mp.getPoints().size() < 2) return; Projection projection = mapView.getProjection(); pathInitialLonSpan = projection.fromPixels(0,mapView.getHeight()/2).getLongitudeE6() - projection.fromPixels(mapView.getWidth(),mapView.getHeight()/2).getLongitudeE6(); projection.toPixels(mp.getPoints().get(0), pathInitialPoint); path.moveTo(pathInitialPoint.x,pathInitialPoint.y); for(int i=1; i<mp.getPoints().size(); i++){ projection.toPixels(mp.getPoints().get(i), p1); int distance2 = (pPrev.x - p1.x) * (pPrev.x - p1.x) + (pPrev.y - p1.y) * (pPrev.y - p1.y); if(distance2 > 9){ path.lineTo(p1.x,p1.y); pPrev.set(p1.x, p1.y); } }
Projection pj = mapView.getProjection(); Point pix = pj.toPixels(p); pix.y -= 10; //10 pixels up GeoPoint p2 = pj.fromPixels(pix2.x, pix2.y); double offset = p2.getLatitude() - p.getLatitude();
getController().animateTo(projection.fromPixels(newCenter.x, newCenter.y));
public static void panMap (int x, int y, MapView map) { Point ptPixels = new Point(); GeoPoint geoPt = map.getMapCenter(); Projection projection = map.getProjection(); projection.toPixels(geoPt, ptPixels); ptPixels.x += x; ptPixels.y += y; geoPt = projection.fromPixels(ptPixels.x, ptPixels.y); map.getController().animateTo(geoPt); }
@Override public void draw(Canvas canvas, MapView mapview, boolean shadow) { super.draw(canvas, mapview, shadow); if(shadow) return; if(mp.getPoints() == null || mp.getPoints().size() < 2) return; Projection projection = mapview.getProjection(); int lonSpanNew = projection.fromPixels(0,mapview.getHeight()/2).getLongitudeE6() - projection.fromPixels(mapview.getWidth(),mapview.getHeight()/2).getLongitudeE6(); if(lonSpanNew != pathInitialLonSpan) pathBuild(); else{ //check if path need to be offset projection.toPixels(mp.getPoints().get(0), p1); if(p1.x != pathInitialPoint.x || p1.y != pathInitialPoint.y){ path.offset(p1.x - pathInitialPoint.x, p1.y - pathInitialPoint.y); pathInitialPoint.x = p1.x; pathInitialPoint.y = p1.y; } } canvas.drawPath(path, paint); }
@Override public void draw(Canvas canvas, MapView mapview, boolean shadow) { super.draw(canvas, mapview, shadow); if(shadow) return; if(mp.getPoints() == null || mp.getPoints().size() < 2) return; Projection projection = mapview.getProjection(); int lonSpanNew = projection.fromPixels(0,mapview.getHeight()/2).getLongitudeE6() - projection.fromPixels(mapview.getWidth(),mapview.getHeight()/2).getLongitudeE6(); if(lonSpanNew != pathInitialLonSpan) pathBuild(); else{ //check if path need to be offset projection.toPixels(mp.getPoints().get(0), p1); if(p1.x != pathInitialPoint.x || p1.y != pathInitialPoint.y){ path.offset(p1.x - pathInitialPoint.x, p1.y - pathInitialPoint.y); pathInitialPoint.x = p1.x; pathInitialPoint.y = p1.y; } } canvas.drawPath(path, paint); }
GeoPoint target = projection.fromPixels(p.x, p.y);
GeoPoint target = projection.fromPixels(p.x, p.y);
mapStartPosition = projection.fromPixels(0, 0);
Projection proj = map.getProjection(); Point startPoint = proj.toPixels(marker.getPosition(), null); final IGeoPoint startGeoPoint = proj.fromPixels(startPoint.x, startPoint.y); final long duration = 500; final Interpolator interpolator = new LinearInterpolator();