protected internal virtual void addPOI(TDNode poi) { if (!poi.POI) { return; } sbyte minZoomLevel = poi.ZoomAppear; for (int i = 0; i < this.zoomIntervalConfiguration.NumberOfZoomIntervals; i++) { // is POI seen in a zoom interval? if (minZoomLevel <= this.zoomIntervalConfiguration.getMaxZoom(i)) { long tileCoordinateX = MercatorProjection.longitudeToTileX(LatLongUtils.microdegreesToDegrees(poi.Longitude), this.zoomIntervalConfiguration.getBaseZoom(i)); long tileCoordinateY = MercatorProjection.latitudeToTileY(LatLongUtils.microdegreesToDegrees(poi.Latitude), this.zoomIntervalConfiguration.getBaseZoom(i)); TileData tileData = getTileImpl(i, (int)tileCoordinateX, (int)tileCoordinateY); if (tileData != null) { tileData.addPOI(poi); countPoiTags(poi); } } } }
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not available in .NET: //ORIGINAL LINE: private static org.mapsforge.map.writer.model.TileCoordinate[] getWayBoundingBox(final org.mapsforge.map.writer.model.TDWay way, byte zoomlevel, int enlargementInMeter) private static TileCoordinate[] getWayBoundingBox(TDWay way, sbyte zoomlevel, int enlargementInMeter) { double maxx = double.NegativeInfinity, maxy = double.NegativeInfinity, minx = double.PositiveInfinity, miny = double.PositiveInfinity; foreach (TDNode coordinate in way.WayNodes) { maxy = Math.Max(maxy, LatLongUtils.microdegreesToDegrees(coordinate.Latitude)); miny = Math.Min(miny, LatLongUtils.microdegreesToDegrees(coordinate.Latitude)); maxx = Math.Max(maxx, LatLongUtils.microdegreesToDegrees(coordinate.Longitude)); minx = Math.Min(minx, LatLongUtils.microdegreesToDegrees(coordinate.Longitude)); } double[] epsilonsTopLeft = computeTileEnlargement(maxy, enlargementInMeter); double[] epsilonsBottomRight = computeTileEnlargement(miny, enlargementInMeter); TileCoordinate[] bbox = new TileCoordinate[2]; bbox[0] = new TileCoordinate((int)MercatorProjection.longitudeToTileX(minx - epsilonsTopLeft[1], zoomlevel), (int)MercatorProjection.latitudeToTileY(maxy + epsilonsTopLeft[0], zoomlevel), zoomlevel); bbox[1] = new TileCoordinate((int)MercatorProjection.longitudeToTileX(maxx + epsilonsBottomRight[1], zoomlevel), (int)MercatorProjection.latitudeToTileY(miny - epsilonsBottomRight[0], zoomlevel), zoomlevel); return(bbox); }
private static Coordinate toCoordinate(int latitude, int longitude) { return(new Coordinate(LatLongUtils.microdegreesToDegrees(longitude), LatLongUtils.microdegreesToDegrees(latitude))); }