Java Code Examples for com.nextgis.maplib.datasource.GeoPoint#project()
The following examples show how to use
com.nextgis.maplib.datasource.GeoPoint#project() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: EditLayerOverlay.java From android_maplibui with GNU Lesser General Public License v3.0 | 6 votes |
protected boolean movePointToLocation() { Activity parent = (Activity) mContext; Location location = mGpsEventSource.getLastKnownLocation(); if (null != location) { //change to screen coordinates GeoPoint pt = new GeoPoint(location.getLongitude(), location.getLatitude()); pt.setCRS(GeoConstants.CRS_WGS84); pt.project(GeoConstants.CRS_WEB_MERCATOR); GeoPoint screenPt = mMap.mapToScreen(pt); return moveSelectedPoint((float) screenPt.getX(), (float) screenPt.getY()); } else Toast.makeText(parent, R.string.error_no_location, Toast.LENGTH_SHORT).show(); return false; }
Example 2
Source File: CurrentLocationOverlay.java From android_maplibui with GNU Lesser General Public License v3.0 | 6 votes |
private void autopanTo(Location autopanLocation, Location location) { GeoPoint oldLocation = new GeoPoint(autopanLocation.getLongitude(), autopanLocation.getLatitude()); GeoPoint newLocation = new GeoPoint(location.getLongitude(), location.getLatitude()); oldLocation.setCRS(GeoConstants.CRS_WGS84); oldLocation.project(GeoConstants.CRS_WEB_MERCATOR); newLocation.setCRS(GeoConstants.CRS_WGS84); newLocation.project(GeoConstants.CRS_WEB_MERCATOR); double dx = oldLocation.getX() - newLocation.getX(); double dy = oldLocation.getY() - newLocation.getY(); GeoPoint newCenter = mMapViewOverlays.getMapCenter(); newCenter.setX(newCenter.getX() - dx); newCenter.setY(newCenter.getY() - dy); mMapViewOverlays.panTo(newCenter); }
Example 3
Source File: OverlayItem.java From android_maplibui with GNU Lesser General Public License v3.0 | 5 votes |
public GeoPoint getCoordinates(int CRS) { if (CRS == GeoConstants.CRS_WGS84) { GeoPoint wgs = new GeoPoint(mCoordinates.getX(), mCoordinates.getY()); wgs.setCRS(GeoConstants.CRS_WEB_MERCATOR); wgs.project(GeoConstants.CRS_WGS84); return wgs; } return mCoordinates; }
Example 4
Source File: EditLayerOverlay.java From android_maplibui with GNU Lesser General Public License v3.0 | 5 votes |
public void setOverlayPoint(MotionEvent event) { GeoPoint mapPoint = mMap.screenToMap(new GeoPoint(event.getX(), event.getY())); mapPoint.setCRS(GeoConstants.CRS_WEB_MERCATOR); mapPoint.project(GeoConstants.CRS_WGS84); mOverlayPoint.setCoordinates(mapPoint); mOverlayPoint.setVisible(true); }
Example 5
Source File: AttributesFragment.java From android_gisapp with GNU General Public License v3.0 | 5 votes |
protected String formatCoordinates(GeoPoint pt) { pt.setCRS(CRS_WEB_MERCATOR); pt.project(CRS_WGS84); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); int format = Integer.parseInt(prefs.getString(SettingsConstantsUI.KEY_PREF_COORD_FORMAT, Location.FORMAT_DEGREES + "")); int fraction = prefs.getInt(SettingsConstantsUI.KEY_PREF_COORD_FRACTION, DEFAULT_COORDINATES_FRACTION_DIGITS); String lat = getString(com.nextgis.maplibui.R.string.latitude_caption_short) + ": " + LocationUtil.formatLatitude(pt.getY(), format, fraction, getResources()); String lon = getString(com.nextgis.maplibui.R.string.longitude_caption_short) + ": " + LocationUtil.formatLongitude(pt.getX(), format, fraction, getResources()); return lat + "<br \\>" + lon; }
Example 6
Source File: CurrentLocationOverlay.java From android_maplibui with GNU Lesser General Public License v3.0 | 4 votes |
@Override public void draw(Canvas canvas, MapDrawable mapDrawable) { if (mCurrentLocation != null && isMarkerEnabled()) { double lat = mCurrentLocation.getLatitude(); double lon = mCurrentLocation.getLongitude(); mMarker.setMarker(getDefaultMarker()); mMarker.setCoordinatesFromWGS(lon, lat); if (null != mapDrawable) { // set accuracy marker with proper meter radius double accuracy = mCurrentLocation.getAccuracy(); accuracy = getAccuracyRadius(lat, accuracy); GeoPoint centerPoint = new GeoPoint(lon, lat); centerPoint.setCRS(GeoConstants.CRS_WGS84); centerPoint.project(GeoConstants.CRS_WEB_MERCATOR); centerPoint = mapDrawable.mapToScreen(centerPoint); GeoPoint newPoint = new GeoPoint(lon, accuracy); newPoint.setCRS(GeoConstants.CRS_WGS84); newPoint.project(GeoConstants.CRS_WEB_MERCATOR); newPoint = mapDrawable.mapToScreen(newPoint); int radius = (int) (centerPoint.getY() - newPoint.getY()); mAccuracy.setMarker(getAccuracyMarker(radius)); mAccuracy.setCoordinatesFromWGS(lon, lat); // set marker in current map and screen bounds flags newPoint = mMarker.getCoordinates(GeoConstants.CRS_WEB_MERCATOR); mIsInBounds = mapDrawable.getCurrentBounds().contains(newPoint); GeoEnvelope screenBounds = mapDrawable.getFullScreenBounds(); mIsInScreenBounds = mapDrawable.screenToMap(screenBounds).contains(newPoint); } if (mIsInBounds) { if (mIsAccuracyEnabled) { drawOverlayItem(canvas, mAccuracy); } drawOverlayItem(canvas, mMarker); } } }
Example 7
Source File: ExportGPXTask.java From android_maplibui with GNU Lesser General Public License v3.0 | 4 votes |
private void appendTrack(File temp, String name, StringBuilder sb, Formatter f, Cursor trackpoints) throws IOException { GeoPoint point = new GeoPoint(); int latId = trackpoints.getColumnIndex(TrackLayer.FIELD_LAT); int lonId = trackpoints.getColumnIndex(TrackLayer.FIELD_LON); int timeId = trackpoints.getColumnIndex(TrackLayer.FIELD_TIMESTAMP); int eleId = trackpoints.getColumnIndex(TrackLayer.FIELD_ELE); int satId = trackpoints.getColumnIndex(TrackLayer.FIELD_SAT); int fixId = trackpoints.getColumnIndex(TrackLayer.FIELD_FIX); DecimalFormat df = new DecimalFormat("0", new DecimalFormatSymbols(Locale.ENGLISH)); df.setMaximumFractionDigits(340); //340 = DecimalFormat.DOUBLE_FRACTION_DIGITS sb.setLength(0); sb.append(GPX_TAG_TRACK); if (name != null) { sb.append(GPX_TAG_NAME); sb.append(name); sb.append(GPX_TAG_NAME_CLOSE); } sb.append(GPX_TAG_TRACK_SEGMENT); FileUtil.writeToFile(temp, sb.toString(), true); do { sb.setLength(0); point.setCoordinates(trackpoints.getDouble(lonId), trackpoints.getDouble(latId)); point.setCRS(CRS_WEB_MERCATOR); point.project(CRS_WGS84); String sLon = df.format(point.getX()); String sLat = df.format(point.getY()); f.format(GPX_TAG_TRACK_SEGMENT_POINT, sLat, sLon); f.format(GPX_TAG_TRACK_SEGMENT_POINT_TIME, getTimeStampAsString(trackpoints.getLong(timeId))); f.format(GPX_TAG_TRACK_SEGMENT_POINT_ELE, df.format(trackpoints.getDouble(eleId))); f.format(GPX_TAG_TRACK_SEGMENT_POINT_SAT, trackpoints.getString(satId)); f.format(GPX_TAG_TRACK_SEGMENT_POINT_FIX, trackpoints.getString(fixId)); sb.append(GPX_TAG_TRACK_SEGMENT_POINT_CLOSE); FileUtil.writeToFile(temp, sb.toString(), true); } while (trackpoints.moveToNext()); sb.setLength(0); sb.append(GPX_TAG_TRACK_SEGMENT_CLOSE); sb.append(GPX_TAG_TRACK_CLOSE); FileUtil.writeToFile(temp, sb.toString(), true); }
Example 8
Source File: MapContentProviderHelper.java From android_maplib with GNU Lesser General Public License v3.0 | 4 votes |
@Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) { super.onUpgrade(sqLiteDatabase, oldVersion, newVersion); Cursor data; boolean tableExists = false; try { data = sqLiteDatabase.query(TrackLayer.TABLE_TRACKS, null, null, null, null, null, null); tableExists = true; data.close(); } catch (Exception ignored) { } if (oldVersion <= 2 && tableExists) { sqLiteDatabase.execSQL("alter table " + TrackLayer.TABLE_TRACKS + " add column " + TrackLayer.FIELD_COLOR + " integer;"); GeoPoint point = new GeoPoint(); ContentValues cv = new ContentValues(); data = sqLiteDatabase.query(TrackLayer.TABLE_TRACKPOINTS, new String[]{TrackLayer.FIELD_TIMESTAMP, TrackLayer.FIELD_LON, TrackLayer.FIELD_LAT}, null, null, null, null, null); if (data != null) { if (data.moveToFirst()) { do { point.setCoordinates(data.getDouble(1), data.getDouble(2)); point.setCRS(GeoConstants.CRS_WGS84); point.project(GeoConstants.CRS_WEB_MERCATOR); cv.clear(); cv.put(TrackLayer.FIELD_LON, point.getX()); cv.put(TrackLayer.FIELD_LAT, point.getY()); sqLiteDatabase.update(TrackLayer.TABLE_TRACKPOINTS, cv, TrackLayer.FIELD_TIMESTAMP + " = ?", new String[]{data.getLong(0) + ""}); } while (data.moveToNext()); } data.close(); } } if (oldVersion <= 3 && tableExists) { sqLiteDatabase.execSQL("alter table " + TrackLayer.TABLE_TRACKPOINTS + " add column " + TrackLayer.FIELD_SENT + " integer not null default 1;"); sqLiteDatabase.execSQL("alter table " + TrackLayer.TABLE_TRACKPOINTS + " add column " + TrackLayer.FIELD_ACCURACY + " real;"); sqLiteDatabase.execSQL("alter table " + TrackLayer.TABLE_TRACKPOINTS + " add column " + TrackLayer.FIELD_SPEED + " real;"); } }
Example 9
Source File: MainActivity.java From android_gisapp with GNU General Public License v3.0 | 4 votes |
void testUpdate() { //test sync IGISApplication application = (IGISApplication) getApplication(); MapBase map = application.getMap(); NGWVectorLayer ngwVectorLayer = null; for (int i = 0; i < map.getLayerCount(); i++) { ILayer layer = map.getLayer(i); if (layer instanceof NGWVectorLayer) { ngwVectorLayer = (NGWVectorLayer) layer; } } if (null != ngwVectorLayer) { Uri uri = Uri.parse( "content://" + AppSettingsConstants.AUTHORITY + "/" + ngwVectorLayer.getPath().getName()); Uri updateUri = ContentUris.withAppendedId(uri, 29); ContentValues values = new ContentValues(); values.put("width", 4); values.put("azimuth", 8.0); values.put("status", "test4"); values.put("temperatur", -10); values.put("name", "xxx"); Calendar calendar = new GregorianCalendar(2014, Calendar.JANUARY, 23); values.put("datetime", calendar.getTimeInMillis()); try { GeoPoint pt = new GeoPoint(67, 65); pt.setCRS(CRS_WGS84); pt.project(CRS_WEB_MERCATOR); GeoMultiPoint mpt = new GeoMultiPoint(); mpt.add(pt); values.put(Constants.FIELD_GEOM, mpt.toBlob()); } catch (IOException e) { e.printStackTrace(); } int result = getContentResolver().update(updateUri, values, null, null); if(Constants.DEBUG_MODE){ if (result == 0) { Log.d(TAG, "update failed"); } else { Log.d(TAG, "" + result); } } } }
Example 10
Source File: MainActivity.java From android_gisapp with GNU General Public License v3.0 | 4 votes |
void testInsert() { //test sync IGISApplication application = (IGISApplication) getApplication(); MapBase map = application.getMap(); NGWVectorLayer ngwVectorLayer = null; for (int i = 0; i < map.getLayerCount(); i++) { ILayer layer = map.getLayer(i); if (layer instanceof NGWVectorLayer) { ngwVectorLayer = (NGWVectorLayer) layer; } } if (null != ngwVectorLayer) { Uri uri = Uri.parse( "content://" + AppSettingsConstants.AUTHORITY + "/" + ngwVectorLayer.getPath().getName()); ContentValues values = new ContentValues(); //values.put(VectorLayer.FIELD_ID, 26); values.put("width", 1); values.put("azimuth", 2.0); values.put("status", "grot"); values.put("temperatur", -13); values.put("name", "get"); Calendar calendar = new GregorianCalendar(2015, Calendar.JANUARY, 23); values.put("datetime", calendar.getTimeInMillis()); try { GeoPoint pt = new GeoPoint(37, 55); pt.setCRS(CRS_WGS84); pt.project(CRS_WEB_MERCATOR); GeoMultiPoint mpt = new GeoMultiPoint(); mpt.add(pt); values.put(Constants.FIELD_GEOM, mpt.toBlob()); } catch (IOException e) { e.printStackTrace(); } Uri result = getContentResolver().insert(uri, values); if(Constants.DEBUG_MODE){ if (result == null) { Log.d(TAG, "insert failed"); } else { Log.d(TAG, result.toString()); } } } }