Knowledge Base Search for: Recently modified first: KB10542 - Topological operation to perform a polygon subtraction. One polygon can be subtracted from another polygon to create a third polygon formed of the difference. Subtraction is one of a several DK supported basic topological operations. These are: Combine, Union, Intersection, Difference, and Symmetrical Difference (XOR). The DK also supports a powerful, yet easy to manage, mechanism for querying against spatial relationships between two shapes. This mechanism is known as the Dimensionally Extended 9 Intersection Model (DE-9IM). The idea of the DE-9IM Model i ... Modified: August 28, 2015 KB10529 - Rotate a label in the DK. This is possible. Try, for example: Shape.Params.Labels.Rotate := DegToRad( 45 ) Modified: August 28, 2015 KB10524 - Assign read only access to a SQL vector map layer. Access to any SQL layer can be restricted to "read only" status by specifying: ReadOnly=TRUE in Layer.SQLParameters or the .TTKLS file. Modified: August 28, 2015 KB10528 - Simplify lines or polygons using Douglas-Peucker or similar simplification algorithm. This is possible using the DK TGIS_Shape.Simplify method. Modified: August 28, 2015 KB10521 - Problem loading configuration files (old .INI config files). Question from a DK customer: "We have a problem with the DK loading configuration files (old .INI config files) even with setting TGIS_LayerSHP.UseConfig=false and TGIS_LayerSHP.UseFileParams=false. It seems to be ignoring the false settings? We have provided our code for your review." The problem is you are using the .userConfig=FALSE setting after adding the layer to the viewer (the INI file will be read upon .Add). You should use UserConfig before call .Add, as follows: TfrmMain.Button1Click(S ... Modified: August 28, 2015 KB10520 - Draw a perpendicular bisector line relative to another line? This is possible. Try this: ptg1 := shp.GetPointOnLine( shp.Length /2, -10 ) ; Ptg2 := shp.GetPointOnLine( shp.Length /2, +10 ) ; You will have two points: -10 and + 10 off the existing line. Use these points to construct the perpendicular bisector line. Modified: August 28, 2015 KB10519 - Project visible extent and layer activity stored in the project file. As of the DK v.8, visible extent and layer activity information is automatically stored to the project file upon SaveAll / SaveProjectxxx call. VisibleExtent is reapplied after call GIS.Open method. Do not call GIS.FullExtent. If you call GIS.Open to open a single layer, then FullExtent will be called internally. GIS.Open( 'myproject.ttkgp' ) // GIS.FullExtent ; <--- THIS IS OBSOLATE Modified: August 28, 2015 KB10511 - Print legend and mini-map panels with main map view. It is possible to enable printing the Legend and/or the MiniMap panels with the main map window. For guidance, refer to the DK source code PrintPreview sample (found in DK sample set 4) and the OnPrintPage layer event and GIS.PrintRect method. Also refer to the TemplatePrint DK source code sample (found in DK sample set 6) which demonstrates how to use print templates to organize the print sheet. The DK developed free TatukGIS Viewer and Editor products are good examples of user enabled selection of ... Modified: August 28, 2015 KB10515 - Topological editing and storage of vector data. While the DK 10 (and earlier versions) provides a huge set of topological operations which can be performed on vector (shape) data, these functions do not relate to topological storage of the data. The data is not stored using a topological method in the meaning of shared vertices, etc. The DK 10 also does not manage the topological correctness of the data. Note: Full topological vector data storage and editing are planned features of the upcoming DK v.11 (not released at the time this KB item is edit ... Modified: August 28, 2015 KB10513 - Query for all shapes with a relation to a point defined by x,y coordinates? The DK Locate method provides only the best-match shape. Therefore: 1) Use DK support for the DE-9IM model layer.FindFirst method to retrieve multiple shapes that have a relation to a selected point (or line or polygon shape), as follows: Provide a point and the DE-9IM model parameter to specify the relation between a reference point (shape) and other shapes to be queried. Supported relations include: equality, disjoint, intersect, touch, overlap, cross within, and contains. 2) Iterate the loop ; S ... Modified: August 28, 2015 KB10509 - Expose attribute data of a selected shape for easy editing. Add GISControlAttributes to the form, then use: Attributes.ShowShape( selected_shape ) ; Modified: August 28, 2015 KB10502 - Vector data manipulation and modification support. The TatukGIS DK and desktop Editor support full vector (geometry and attributes) editing, including special topological editing features. The DK supports vector editing as a development tool, to enable developers to build their own custom vector editor. A simple vector editor is provided (located in DK sample set #1) as a DK source code sample. Modified: August 28, 2015 KB10503 - Management of spatial data attributes. Vector layer attributes are always handled natively, per the format specifications of the layer. TatukGIS software supports writing/saving vector data (geometry and attributes) to a number of vector formats (e.g., SHP, MIF, DXF, GML, KML, JSON, etc. and most SQL database layer formats). Layer attributes can also be stored in any SQL database via a join based on a unique record identifier. Modified: August 28, 2015 KB10507 - Automatically place the final vertex forming a drawn polygon to the exact same position a... This is handled automatically in TatukGIS software. When drawing or editing (adding or deleting verteces) forming polygon shape, the last vertex (point) forming the polygon is always the same as the first vertex forming the polygon. So, all polygon shapes are closed by default. Modified: August 28, 2015 KB10506 - GIS.VisibleExtent during printing operations. GIS.VisibleExtent works when printing, but it provides the extent in the context of the printer. If you wish to use VisibleExtent to modify the map placement, etc., obtain the VisibleExtent before entering print. Modified: August 28, 2015 KB10499 - Create new attributes for vector layers. New attribute fields can be added, and existing attributes modified or deleted, using the TatukGIS DK or desktop Editor. The changes can be saved (natively) in the format of the opened layer or to a connected SQL database. TatukGIS products support writing data (both the attributes and layer geometry) to a number of commonly used vector data formats and most SQL database layers. Modified: August 28, 2015 KB10482 - Build an in-memory layer and change colors in Visual C++. An important consideration is to perform the proper casting. The source code to do this: IXGIS_LayerVector ll ; IXGIS_ShapePoint shp ; IXGIS_Utils utl ; IXGIS_ParamsSectionVector prm ; IXGIS_ParamsMarker prmmrk ; utl.CreateDispatch( "TatukGIS_DK.XGIS_Utils" ) ; ll.CreateDispatch( "TatukGIS_DK.XGIS_LayerVector" ) ; gis.Add( ll ) ; // layer defaults ( ( (IXGIS_ParamsMarker)( (IXGIS_ParamsSectionVector)ll.get_Params() ).get_Marker() ) ).put_Color( RGB(0,255,255 ) ) ; shp = ll.CreateShape( g ... Modified: August 28, 2015 KB10481 - Increase speed of attribute query to localize a shape on the map. Consider converting the map layer from SHP or other file format into an SQL database layer and use the database tools to assign an index to the file being searched on. Remember that queries using the LIKE statement are always slow if the first few letters are not provided. For example, never use the search construction: "NAME LIKE '%gton'". Instead use: "NAME LIKE 'Wash%'" Modified: August 28, 2015 KB10908 - How to modify the existing coordinate system defitition. Suppose you have the EPSG:3021 coordinate system definition, which in WKT presents the datum as: DATUM[ "Rikets_koordinatsystem_1990"] but, for better ESRI interoperability, the user prefers the name D_RT_1990 In C# var dat = TGIS_Utils.CSDatumList.ByEPSG(6124); TGIS_Utils.CSDatumList.Fix(6124, "D_RT_1990", dat.Ellipsoid.EPSG, dat.Transform.EPSG); In Delphi var dat : TGIS_CSDatum ; begin dat := CSDatumList.ByEPSG(6124) ; CSDatumList.Fix( 6124, 'D_RT_1990', ... Modified: August 20, 2015 KB10331 - Create a polygon or other shape programmatically. Question from a customer: "Relating to my farming application I am using the DK to develop, I have difficulty making a shape (polygon) programmatically and introducing it into LayerSHP. My code is as follows: Create Layer: lb := TGIS_LayerVector.Create ; lb.Name := 'buffer' ; lb.AddField('Query',gisFieldTypeString,20,0); lb.AddField('Min',gisFieldTypeNumber,3,0); GIS.ADD( lb ) ; Create Shape: ... from a buffer ... Add shape: if Assigned( shp ) then begin shp.Params.Area.Color := ZonasCol ... Modified: August 06, 2015 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 Q&A Frequently Asked Questions Knowledge Base Contact Support