Knowledge Base Search for: Recently modified first: KB10461 - Side of street orientation of objects in DK geocoding . If street addresses are sometimes found on the wrong side of the street, this can be caused by some of the street vectors in the data being organized in the opposite (wrong) direction. The solution is to change the street address numbering arrangement with something like this: geoCoder.LFrom = "TORIGHT" geoCoder.LTo = "FROMRIGHT" geoCoder.RFrom = "TOLEFT" geoCoder.RTo = "FROMLEFT Modified: July 30, 2015 KB10487 - Adding a shape to SHP layer. To add a shape to a SHP layer, use the following code statement: layer.AddShape(gisShapeTypeArc) ; Keep in mind that a SHP file layer is capable of handling only one type of shape, e.g., polygon, line, point, or multi-point. So if the layer was built to handle polygons, it will not be able to handle lines. Check layer.SupportedShapes to learn which kind of shape(s) is supported by a particular layer. Also remember that calling TGIS_LayerSHP.Build will not delete an existing layer. If the file(s) alr ... Modified: July 30, 2015 KB10431 - ZoomSelect operations using a circle, rectangle, polygon, or line. With the DK it is possible to zoom to a map extent (to show all features within the extent area) defined using a selection circle, polygon, line or rectangle. Such custom zoom operations must be coded by the DK developer, though it is not difficult, requiring only a few minutes. The procedure is: Draw the circle, rectangle, etc. Select a layer based on drawn object extent. Parse the layer to check if it is within the circle, polygon, etc., using the DK function shape.IsInsideCircle, shape.IsInsideP ... Modified: July 30, 2015 KB10452 - Symbols and text label information when using transparency feature. To avoid disappearing text or symbols when using the transparency feature, attach colors using the GisSafeColor procedure. For example: layer.Params.Label.Font.Color := GisSafeColor( clBlack ) Modified: July 30, 2015 KB10480 - Improving the DK speed with SQL geodatabase vector layers. The database should have separate indexes for the UID, XMIN, XMAX, YMIN and YMAX fields. Such separate indexes are added automatically to SQL vector layers created with the DK v.8 and subsequent DK versions, but prior DK versions (including the DK 8 RC 1) created only a compound index. Having separate indexes for each field significantly increases the speed. Modified: July 30, 2015 KB10490 - Size of the spatial indexes in the DK application. TatukGIS products use R-TREE spatial indexing, which sometimes can result in the database indexes being as big as the data itself. Imagine indexing a one column table if the data in the column is random. With R-TREE, each element is addressed. An alternative method is the QUADRANGLE method, which is a bit similar to "hashing". The advantage of R-TREE is that it provides faster access, whereas the QUADRANGLE method offers a smaller index file size. Modified: July 30, 2015 KB10453 - Making polygon boundaries invisible. The code statement to make polygon boundaries invisible looks like: Layer.Params.Area.OutlineWidth=0 or Layer.Params.Area.OutlineStyle = psClear Modified: July 30, 2015 KB10462 - TatukGIS support for the DXF format. The CAD dxf and dgn formats embed the vector style and label information into the vectors (map geometry), whereas the GIS philosophy is to store vector style and label information in database attribute fields that are associated with the vectors, but not embedded in the vectors. The GIS philosophy offers greater opportunities for data interoperability. TatukGIS products are consistent with the GIS philosophy. When TatukGIS software is used to open a dxf (or dgn) file, the software automatically creat ... Modified: July 30, 2015 KB10495 - Using the XDK to Draw a Rubber Band (or Focus) Rectangle. This functionality is not directly implemented in the DK, but it can be added by the DK developer. To learn more, visit: http://www.vb-helper.com/howto_rubberband_rectangle.html https://support.microsoft.com/en-us/kb/314945 https://support.microsoft.com/en-us/kb/317479 Modified: July 29, 2015 KB10478 - Setting style for Labels.Font in .NET applications. Labels.Font returns stdole.Font object. This object has no Style property. You must individually access Labels.Font.Bold, Labels.Font.Charset, Labels.Font.Italic, Labels.Font.Name, Labels.Font.Size, Labels.Font.Strikethrough, Labels.Font.Underline, and Labels.Font.Weight. Also please note that the interop wrapper for visual controls will instead provide a typical System.Drawing.Font. Modified: July 29, 2015 KB10476 - Non-standard handling of events upon form resize. For custom resizing the form, translate the parent form messages WM_ENTERSIZEMOVE and WM_EXITSIZEMOVE. Modified: July 29, 2015 KB10474 - Using the XDK in a Visual C application. The Visual C Class Wizard, particularly versions prior to VC6, does not produce a proper stub for properties marked as hidden. TatukGIS provides manually altered classes. To use these in your VC program, include the TatukGIS_DK.h header. This will enable access to the IXGIS_xxx classes. Please do not use the standard generated class for XGIS_ViewerWND that is placed inside the dialog box. Instead, replace the generated class with XGIS_ViewerWND.pas and XGIS_ViewerWND.h. Also please carefully study th ... Modified: July 29, 2015 KB10472 - Printing to scale in DK developed applications. For printing to scale, it is important to set up the proper ratio between the output PageWidth and the TGIS_Viewer.VisibleExtent.Width. The TGIS_Viewer.VisibleExtent.Height varies with the output page height, whereas the Width does not. Modified: July 29, 2015 KB10469 - Problems with vector topology operations. Vector shapes must have proper, clockwise, winding. If a shape is not properly formed (with clockwise winding), the rendering can be topologically incorrect. Therefore, try enforcing the winding check to ensure there are no shapes that are wound in the wrong (anti-clockwise) direction. For example, in this call, the last parameter (True) will guarantee a winding check: shp := topologyObj.Combine( shpA, shpB, gisTopologyCombineTypeSymmetricalDifference, True ) ; The winding check is set to False by d ... Modified: July 29, 2015 KB10458 - DK editing operations for vector formats. The DK includes an Editor class that can be used to implement basic editing functionality. A user interface for this class supports editing with use of the mouse cursor. Any DK write-supported vector format (SHP, MID/MIF, TAB, DXF, GML, KML ...) and SQL database vector layers can be edited. The basic editing functionality includes creating, moving, or deleting point vectors, editing or deleting vertices composing line and polygon vector shapes, creating and editing new point, multi-point, line and pol ... Modified: July 29, 2015 KB10444 - DK routing and one-way street situations. DK routing functionality supports one-way street situations. Each vector representing a street/road segment between intersection nodes can be coded with a cost factor that can be dependent on the order nodes are traversed, i.e., direction dependent. Take, for example, a link defined by nodes 99 and 100 located at the ends of the link. A route passing first though node 99 and then to 100 could be discouraged or forbidden by assigning a prohibitively higher cost, whereas a route traversing the same link ... Modified: July 28, 2015 KB10438 - Rendering non-numeric attribute information in Viewer, Editor, and Legend Control of XDX. Rendering can be based on attribute fields containing non-numeric information as well. For instance: RENDER=( Sex = 'MALE' ) or RENDER = ( Street Type = 'Main' ) RENDER = ( Street Type = 'Secondary' ) Be sure to use ' ' marks and not " " to connote a non-numeric item. Or you might find it easier to use the desktop TatukGIS Viewer (free product) or Editor or to set up the rendering and save to a TatukGIS project file for use with the DK. Modified: July 28, 2015 KB10432 - Calculating distance between two points on an unprojected map layer in the DK. Distances cannot be calculated directly from an unprojected map, because, without a projection, there are no distance (linear) units (the unprojected map units are angular decimal/degrees). One solution is to create a separate Project Object inside your DK application just for the purpose of projecting, on-the-fly, the unprojected coordinate sets from your map into a projected coordinate system to allow the distance to be calculated between the coordinates. This is how thr TatukGIS scale component is ... Modified: July 28, 2015 KB10412 - Using DK.ActiveX with Visual C++, how to set up the shape layer parameters. Setting up the shape layer parameters in VB looks like the following: Set ll = New XGIS_LayerSHP ll.Path = GisUtils.GisSamplesDataDir + "rivers.shp" ll.Name = "rivers" ll.UseConfig = False ll.Params.Line.OutlineWidth = 0 ll.Params.Line.Width = 3 ll.Params.Line.Color = RGB(0, 0, 255) GIS.Add ll In VC++, type conversion is required. To set up the cast to the proper types, do the following: CXGIS_LayerVector *ll; CXGIS_ParamsSectionVector *params; CXGIS_ParamsLine *line; para ... Modified: July 27, 2015 KB10418 - Using DK.ActiveX with VB.NET, how to open multiple ADO layers and build a new ADO layer. The proper way using the ttkls file: ll = New XGIS_LayerSQL_ADO ll.Path = 'lwaters.ttkls' GIS.Add( ll ) ll = New XGIS_LayerSQL_ADO ll.Path = 'lwaters2.ttkls' GIS.Add( ll ) ll = New XGIS_LayerSQL_ADO ll.Path = 'lwaters3.ttkls' GIS.Add( ll ) The proper way using SQLParams: llSQL = New TatukGIS_DK.XGIS_LayerSQL_ADO() llSQL.SQLParameter("LAYER") = "lwaters" llSQL.SQLParameter("DIALECT") = "MSJET" llSQL.SQLParameter("ADO")= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=gist ... Modified: July 27, 2015 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 Tech Support Q&A Knowledge Base Common Questions