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);
                    }
                }
            }
        }
Exemplo n.º 2
0
//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);
        }
Exemplo n.º 3
0
 private static Coordinate toCoordinate(int latitude, int longitude)
 {
     return(new Coordinate(LatLongUtils.microdegreesToDegrees(longitude), LatLongUtils.microdegreesToDegrees(latitude)));
 }