Dynamic display compass


Purpose
This sample demonstrates drawing on the map in dynamic mode using an OpenGL application programming interface (API). A command is implemented that adds a compass object to the map, which rotates along together with the dynamic map. The following issues are covered in this sample:
  • Wiring dynamic map events to listen to the Before or After DynamicDraw, which allows you to plug in your drawing to the map.
  • Creation of OpenGL display lists.
  • Mapping a bitmap into an OpenGL texture and binding the texture to an OpenGL geometry.
  • Translating, scaling, and rotating OpenGL display lists.

How to use

See How to use ArcGIS samples for help on compiling, setting up the debugger, and running the sample. If the sample has associated data, you will find that the sample's zip file includes a "data" folder alongside the language folders. However, you will need to update the sample to point to the location of the data once you have extracted all the files.

  1. Start Visual Studio and open the solution.
  2. Build the solution to make the Dynamic Display Compass command .dll file. Use this command in an application with a MapControl and a ToolbarControl, such as the MapControlApplication template included with the Visual Studio integration.
  3. Add the command to the ToolbarControl. The command can be found in the .NET Samples category with the name, Dynamic Display Compass.
  4. Run the application and click the Dynamic Display Compass command to add the compass object to the map. The map switches into dynamic mode and adds the compass to the map. The compass rotates with the map when rotated.

CompassCmd.cs Implementation file for the Dynamic Display Compass class.
OpenGL_GL_v4.cs Wrapper class for OpenGL GL library.
OpenGL_GLU_v4.cs Wrapper class for OpenGL GLU library.
OpenGL_WGL_v4.cs Wrapper class for OpenGL WGL library.
Download the C# files

Download the files for all languages

See Also:

How dynamic display works
Rendering dynamic map content
How to create a dynamic glyph from a marker symbol
How to plug in dynamic drawing
Limitations for dynamic display
Sample: Dynamic display—tracking dynamic object
Sample: Dynamic display layer
Sample: Dynamic heads up display




Additional Requirements
  • This sample uses third-party wrapper classes only available in C#; therefore, there is no VB .NET version.

Development licensing Deployment licensing
Engine Developer Kit Engine Runtime
ArcView
ArcEditor
ArcInfo