Knowledge Base Search for: Recently modified first: KB10830 - TatukGIS PixelStore format. The PixelStore format is a TatukGIS specific raster storage system designed to efficiently and affordably handle huge image and grid layers, which can be recognized by its *.TTKPS file name extension. A PixelStore image layer is one virtual tiled image, with the tiles organized into a SQL database hierarchy. Images stored to the PixelStore format are divided into 512x512 pixel tiles, with each tile compressed independently. Each map view is derived from the level of the hierarchy most closely matching ... Modified: December 29, 2015 KB10773 - Prevent changes to layer order in the legend control. This can be done by overriding the TGIS_ControlLegend.OrderChange event. For example, in Delphi: procedure TForm1.LegendOrderChange(Sender: TObject); begin if MyLayer.ZOrder <> 0 then begin MyLayer.Zorder := 0 ; Legend.Update ; end ; end; Modified: December 29, 2015 KB10284 - Exceptions during debugging a DK application. Many exceptions are not indicative of anything being wrong, so can be ignored and debugging safely continued. This is because the DK uses both the system and its own exceptions to track situations that are not necessarily abnormal. For example, to check if a provided string is a float number, the DK tries to convert the string to a float, which can raise exception. If you dislike this, a specific exception class can be turned off in the Tool/Debugger Options dialog box. Modified: December 29, 2015 KB10317 - Using functions from IXGIS_Utils in XDK We suggest creating a public/global object named Utils. For VB.NET, it can be placed as a public member of the form/class for example as: Dim GisUtils as a new XGIS_Utils. For VB, it can be placed as a global variable, for example as: Dim GisUtils as a new XGIS_Utils. Then any member of IXGIS_Utils can be used in the form of GisUtils.Line2Point, etc. Modified: December 29, 2015 KB10285 - Calling a DK function during a long-run operation, such as printing. This is highly not recommended. To prohibit this from happening, we suggest using the OnBusy event to show and update a progress bar. We recommend displaying such progress bar in a separated dialog box, displayed as modal. Modified: December 29, 2015 KB10186 - Native internal support for vector data formats. TatukGIS products use no unique internal disk format. Each supported vector file type is handled natively on disk. So opening a file of any supported format is just a matter of opening the file (using GIS.Open). The advantage of supporting each file format natively is the software can start files more quickly and easily than if the file data had to be first converted (imported) into a TatukGIS specific format. When a TAB, MIF, DXF, or DGN file is opened, the DK converts the file to memory-representat ... Modified: December 23, 2015 KB10208 - Apply transparency factor to a layer. The transparency setting is a layer level property. Just use the Layer.Transparent property. For example, to make a layer 50% transparent, set: Layer.Trasparent=50. Modified: December 23, 2015 KB10253 - Support for polygon clipping. TatukGIS products (DK and Editor) support polygon clipping (cutting out vector data, retaining all attribute information, from a subset area of a map layer, with options to cut, retain, or exclude any shape geometry laying on the boarder of the clipped area. The Editor readily supports this within the layer export functionality. Refer to settings in the Layer Export dialog found under menu Layer / Export . The topological operations functionality in the DK provides for clipping (cutting) a subset ... Modified: December 23, 2015 KB10237 - Animation layer to hold thousands of tracked objects updated each second. Use the DK Move method to move an object to a new location in a temporary InMemory layer, flicker-free, for real-time tracking of moving objects. Creation of thousand points in less than a second is not a problem. Refer to the DK InMemory source code sample in DK sample set #1 for guidance on use of in-memory layers. Refer to the GPSTracker source code sample in DK sample set #5 and to KB10627 for guidance on GPS support. Modified: December 22, 2015 KB10239 - Eliminate short breaks between CGM/SVG symbols forming a line. Check the following: Make certain LineSymbolGap=0. Test CGM symbol in our sample CGM viewer (refer to DK sample set #1) to confirm it does not have an embedded border. The symbol used to create the line should start at (0,0), which will be a rotation point. During rendering the line formed with a repetitive symbol is generalized so that any sub-line will match the symbol width. To smoothen such line generalization, try composing the line with narrower symbols or applying a smaller LineWidth. Modified: December 22, 2015 KB10259 - Programmatically render layer using field values in a joined external database. (code exa... For example: sqlDC := CreateOleObject('ADODB.Connection'); sqlRS := CreateOleObject('ADODB.Recordset'); sqlDC.Open('FILEDSN=GMINY.DSN'); sqlRS.Open('select id, agri FROM QTocounty ORDER BY id', sqlDC); // order by ID is important!!!! // ll is your layer with a unique 'zone' field ll.ADOJoin := sqlRS; ll.ADOJoinPrimary := 'zone'; ll.ADOJoinForeign := 'id'; ll.RenderExpression := 'age'; // if our external database has such field. ll.RenderMinVal := 0; ll.RenderMaxVal ... Modified: December 22, 2015 KB10298 - Using the DK Scale property. Use of the Scale property requires defining a Coordinate System for the project and a Coordinate System for the subject layer. Then, for example: GIS.Scale := 1; // means 1 meter on the screen is one meter on the map GIS.Scale := 1/1000000; //means map in scale of 1:1000000 Modified: December 22, 2015 KB10308 - Traveling Salesman routing problem involving multiple waypoints. The Traveling Salesman Problem is a complex multiple point routing problem requiring a specialized, and typically expensive, algorithm to resolve. This is outside the scope of the routing functionality supported in TatukGIS products, though a DK customer can implement their own multi-point routing algorithm into a DK developed application. Other than the algorithm itself, the DK supports the other elements that are required to address the Traveling Salesman multi-point routing problem. The DK supporte ... Modified: December 22, 2015 KB10309 - Dynamically build layer from X/Y points stored in a database. This involves constructing an in-memory layer to which the points are added dynamically from reading the database. Refer to the DK InMemory source code sample (located in DK sample set #1) for guidance on how to dynamically create shapes and to the guidance on InMemory layers provided in KB10327. Modified: December 22, 2015 KB10313 - DK.ActiveX viewer control property HWND. The XDK viewer control property HWND is used, for example: Dim myhdc As System.IntPtr Dim newGraphics As Graphics Dim pen As New System.Drawing.Pen(System.Drawing.Color.Red, 1) myhdc = IntPtr.op_Explicit(GIS.HWND()) newGraphics = Graphics.FromHdc(myhdc) try new Graphics.DrawEllipse(pen, 0, 0, 100, 100) pen.Dispose() Catch eIdraw As System.Exception MsgBox("There was a problem drawing the image." & vbNewLine & eIdraw.Message, MsgBoxStyle.OKOnly, "Application ... Modified: December 21, 2015 KB10306 - Generate jpeg image files from a given viewport. Use TGIS_ViewerWnd.ExportToImage. Modified: December 21, 2015 KB10299 - Using CorelDraw to create CGM symbols for use with TatukGIS software. Prepare symbol as usual CorelDraw and export to CGM in format MIL-D-28003 (CALS) or MIL-D-28003A (CALS). When using CorelDraw to create CGM symbols for use in TatukGIS products, we suggest using only basic shapes because the TatukGIS CGM implementation supports only RECTANGLE, RECT, POLYGON, LINE, CIRCLE, ARCCTR, ELLIPSE and ELLIPARC. If unsure, just export the CGM to text format, which will provide the CGM in clear text format. This will permits viewing, and even editing, the symbol using a normal te ... Modified: December 21, 2015 KB10257 - Attribute storage within a shape file versus in a joined database. Any vector attribute information that will influence the appearance of the shapes (colors, fills, line widths, etc.) upon rendering is better recorded in the shape file itself. This will result in much faster rendering each time the map view is refreshed. If, for example, roads or streets of different classes are to to be rendered using different colors or widths, it is better to enter the road/class information as a shape file attribute. Other information can be stored to the external database. Modified: December 21, 2015 KB10305 - Assign unique icons/symbols to represent different types of points. Prepare an ini file like this: [TatukGIS Layer 1] Query=TYPE='1' [TatukGIS Layer 2] Query=TYPE='2' Marker.Symbol=2.bmp [TatukGIS Layer 3] Query=TYPE='3' Marker.Symbol=3.bmp Still easier might be to use the TatukGIS free Viewer (features of its visual layer property control) to set up and save this information to a TatukGIS project file. Modified: December 21, 2015 KB10222 - Perform a selection regardless of layer containing the object. To locate (perform a selection of) a shape held in any layer located near to the selection point, use TGIS_Viewer.Locate . This offer a quick and easy means of selecting a shape without switching between layers or concern for which layer holds the shape. Otherwise use TGIS_LayerVector.Locate to operate on a selected layer. Modified: December 18, 2015 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 Q&A Frequently Asked Questions Knowledge Base Contact Support