IGeoPix Interface Reference

A GeoPix represents a portion of chart visible on the screen. More...

import "_encxcom_encx.idl";

Inheritance diagram for IGeoPix:

List of all members.

Public Member Functions

HRESULT GeoPointFromPixelPoint ([in] IPixelPoint *pixelPt,[out, retval] IGeoPoint **geoPt)
 Obtain a geographical position from a pixel point.
HRESULT ExtentFromRect ([in] IPixelRect *rect,[out, retval] IGeoRect **pVal)
 The geographical bounding rectangle for rectangle defined in pixel coordinates clipped to the viewport.
HRESULT Point ([in] IGeoPoint *geoPt,[out, retval] IPixelPoint **pixelPt)
 Geographic to Pixel point conversion.
HRESULT PointEx ([in] IGeoPoint *geoPt,[in] DOUBLE brgGeo,[out] DOUBLE *brgPixel,[out] DOUBLE *distOnePixel,[out, retval] IPixelPoint **pixelPt)
 Geographic to Pixel point conversion.
HRESULT Line ([in] IGeoLine *geoLine,[out, retval] IPolyLines **lines)
 Geographic to Pixel line conversion.
HRESULT Area ([in] IGeoArea *geoArea,[out, retval] IPolyAreas **areas)
 Geographic to Pixel area conversion.
HRESULT ClipRegionDevicePoints ([in] IPixelRect *rect,[in] OLE_HANDLE lHDC,[out, retval] OLE_HANDLE *lhRgn)
 Obtains the area of intersection between input rectangle and the visible portion of the chart that this IGeoPix represents.
HRESULT ClipRegionLogicalPoints ([in] IPixelRect *rect,[out, retval] OLE_HANDLE *lhRgn)
 Obtains the area of intersection between the input rectangle and the visible portion of the chart that this GeoPix represents.

Properties

IGeoRect ** Extent [get]
 The geographical bounding rectangle for the viewport of this IGeoPix.
LONG * DisplayScale [get]
 The scale to show to the user. Based on a nominal pixel pitch for the type of view (typically 200 microns).
DOUBLE * DirectionOfUp [get]
 Degrees. Like a compass bearing. Range 0 >= x < 360.
VARIANT_BOOL * UseSmallSymbology [get]
 Draw symbols smaller (for Overviews).
VARIANT_BOOL * PointInView [get]
 Returns true iff the last IGeoPix::Point or IGeoPix::PointEx conversion was inside the view.


Detailed Description

A GeoPix represents a portion of chart visible on the screen.

Within this viewport the positions of points, lines and areas can be converted into pixel coordinates. Lines and areas are clipped to the viewport.

Vector charts are all referenced to WGS84.

Raster charts may not have accurate WGS84 transformation polynomials in which case IRasPanelInfo::ManualWGS84ShiftCanBeModified will return true.

All lat/lon values are WGS84 except as noted explicitly below.

Definition at line 553 of file _encxcom_encx.idl.


Member Function Documentation

HRESULT IGeoPix::GeoPointFromPixelPoint ( [in] IPixelPoint pixelPt,
[out, retval] IGeoPoint **  geoPt 
)

Obtain a geographical position from a pixel point.

Transforms a pixel coordinate into a WGS84 position. This will work for all pixel coordinates but becomes increasingly inaccurate beyond the boundaries of the viewport.

Returns true iff ptPixel is inside the view.

Note that the conversion is always performed, even if the return value is false.

This is the only IGeoPix method that converts from pixel to geographic coordinates.

HRESULT IGeoPix::ExtentFromRect ( [in] IPixelRect rect,
[out, retval] IGeoRect **  pVal 
)

The geographical bounding rectangle for rectangle defined in pixel coordinates clipped to the viewport.

HRESULT IGeoPix::Point ( [in] IGeoPoint geoPt,
[out, retval] IPixelPoint **  pixelPt 
)

Geographic to Pixel point conversion.

Faster than the IGeoPix::PointEx method (that also returns bearing and scale).

Call IGeoPix::PointInView to determine whether the IGeoPoint is in the panel.

Note that the conversion is always performed, even if the return value is false.

HRESULT IGeoPix::PointEx ( [in] IGeoPoint geoPt,
[in] DOUBLE  brgGeo,
[out] DOUBLE *  brgPixel,
[out] DOUBLE *  distOnePixel,
[out, retval] IPixelPoint **  pixelPt 
)

Geographic to Pixel point conversion.

Convert a geographic position and bearing into a floating point pixel position and direction. Also calculates the exact scale at the point and the pixel bearing (as defined for DirectionOfUp()) for the specified geographic bearing.

Call IGeoPix::PointInView to determine whether the IGeoPoint is in the panel.

Note that the conversion is always performed, even if the return value is false.

HRESULT IGeoPix::Line ( [in] IGeoLine geoLine,
[out, retval] IPolyLines **  lines 
)

Geographic to Pixel line conversion.

A single line in geographic space may be converted into an IPolyLines in pixel space (an IPolyLines is a collection of chains of vertices).

Each chain should be drawn by joining its vertices with straight lines in pixel space.

HRESULT IGeoPix::Area ( [in] IGeoArea geoArea,
[out, retval] IPolyAreas **  areas 
)

Geographic to Pixel area conversion.

An area in geographic space may be converted into an IPolyAreas in pixel space (an IPolyAreas is a collection of loops of vertices).

Each loop should be filled; the edges of the fill should be defined by joining its vertices (including joining the last to the first) with straight lines in pixel space.

HRESULT IGeoPix::ClipRegionDevicePoints ( [in] IPixelRect rect,
[in] OLE_HANDLE  lHDC,
[out, retval] OLE_HANDLE *  lhRgn 
)

Obtains the area of intersection between input rectangle and the visible portion of the chart that this IGeoPix represents.

The input rectangle is in logical coordinates.

The returned region is in the device coordinates of the supplied device context and is therefore suitable for selecting into that device context to clip drawing to the geographical limits of the chart.

Call DeleteObject on the region returned.

HRESULT IGeoPix::ClipRegionLogicalPoints ( [in] IPixelRect rect,
[out, retval] OLE_HANDLE *  lhRgn 
)

Obtains the area of intersection between the input rectangle and the visible portion of the chart that this GeoPix represents.

The input rectangle is in logical coordinates.

The returned region is in the logical coordinates of the supplied device context and is therefore suitable for selecting into the corresponding Gdiplus::Graphics to clip drawing to the geographical limits of the chart.

Call DeleteObject on the region returned.


Property Documentation

IGeoRect ** IGeoPix::Extent [get]

The geographical bounding rectangle for the viewport of this IGeoPix.

LONG* IGeoPix::DisplayScale [get]

The scale to show to the user. Based on a nominal pixel pitch for the type of view (typically 200 microns).

This scale is not very accurate as the actual scale can vary over the surface of the display. Use Point(double & dPtX, double & dPtY, ...) to get an exact scale at a point.

DOUBLE* IGeoPix::DirectionOfUp [get]

Degrees. Like a compass bearing. Range 0 >= x < 360.

This is the geographic direction of a line defined in pixels coordinates where X is constant and Y is decreasing. So a view with North to the right would have a DirectionOfUp == 270.0.

Vector charts can be rotated.

Raster charts can not be rotated but may have been created in an orientation other than North Up

VARIANT_BOOL* IGeoPix::UseSmallSymbology [get]

Draw symbols smaller (for Overviews).

This is a hint to the application that the chart is being drawn significantly smaller than its scale would suggest. It is therefore

VARIANT_BOOL * IGeoPix::PointInView [get]

Returns true iff the last IGeoPix::Point or IGeoPix::PointEx conversion was inside the view.

Only useful following a IGeoPix::Point or IGeoPix::PointEx.