public ShapeTile(GeographicBoundingBox geoBB, ShapeTileArgs shapeTileArgs) { m_GeoBB = geoBB; m_ShapeTileArgs = shapeTileArgs; BoundingBox = new BoundingBox((float) geoBB.South, (float) geoBB.North, (float) geoBB.West, (float) geoBB.East, (float) m_ShapeTileArgs.LayerRadius, (float) m_ShapeTileArgs.LayerRadius + 300000f); }
public ShapeFileLayer(string id, World parentWorld, string shapeFilePath, double minimumViewingAltitude, double maximumViewingAltitude, float lztsd, GeographicBoundingBox bounds, string dataKey, bool scaleColorsToData, double scalarFilterMin, double scalarFilterMax, double scaleMin, double scaleMax, string[] noDataValues, string[] activeDataValues, bool polygonFill, bool outlinePolygons, Color polygonFillColor, ShapeFillStyle shapeFillHatchStyle, Color lineColor, float lineWidth, bool showLabels, Color labelColor, string iconFilePath, int iconWidth, int iconHeight, byte iconOpacity) : base(id, parentWorld.Position, parentWorld.Orientation) { m_MinimumViewingAltitude = minimumViewingAltitude; m_MaximumViewingAltitude = maximumViewingAltitude; m_lztsd = lztsd; m_ShapeTileArgs = new ShapeTileArgs(parentWorld, new Size(256, 256), parentWorld.EquatorialRadius, this, dataKey, scaleColorsToData, scaleMin, scaleMax, noDataValues, activeDataValues, polygonFill, outlinePolygons, polygonFillColor, shapeFillHatchStyle, lineColor, labelColor, lineWidth, showLabels); m_ScalarFilterMin = scalarFilterMin; m_ScalarFilterMax = scalarFilterMax; m_ShapeFilePath = shapeFilePath; m_IconFilePath = iconFilePath; m_IconWidth = iconWidth; m_IconHeight = iconHeight; m_IconOpacity = iconOpacity; /*Produces tile tree for whole earth*/ /*Need to implement clipping*/ m_NumberRootTilesHigh = (int) (180.0f/m_lztsd); double tileSize = 180.0f/m_NumberRootTilesHigh; m_RootTiles = new ShapeTile[m_NumberRootTilesHigh*(m_NumberRootTilesHigh*2)]; //System.Console.WriteLine("North:{0} South:{1} East:{2} West:{3}", // bounds.North,bounds.South,bounds.East,bounds.West); int istart = 0; int iend = m_NumberRootTilesHigh; int jstart = 0; int jend = m_NumberRootTilesHigh*2; int createdtiles = 0; for (int i = istart; i < iend; i++) { for (int j = jstart; j < jend; j++) { double north = (i + 1)*tileSize - 90.0f; double south = i*tileSize - 90.0f; double west = j*tileSize - 180.0f; double east = (j + 1)*tileSize - 180.0f; m_RootTiles[i*m_NumberRootTilesHigh*2 + j] = new ShapeTile(new GeographicBoundingBox(north, south, west, east), m_ShapeTileArgs); m_RootTiles[i*m_NumberRootTilesHigh*2 + j].Level = 0; m_RootTiles[i*m_NumberRootTilesHigh*2 + j].Row = i; m_RootTiles[i*m_NumberRootTilesHigh*2 + j].Col = j; createdtiles++; } } //Console.WriteLine("Created Tiles "+createdtiles); }