{"id":72771,"date":"2016-07-07T12:25:34","date_gmt":"2016-07-07T12:25:34","guid":{"rendered":"http:\/\/www.esri.com\/arcgis-blog\/products\/product\/uncategorized\/working-with-mil-std-2525d-symbology-using-quartz-runtime\/"},"modified":"2018-03-26T21:09:34","modified_gmt":"2018-03-26T21:09:34","slug":"working-with-mil-std-2525d-symbology-using-quartz-runtime","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime","title":{"rendered":"Working with MIL-STD-2525D Symbology using Quartz Runtime"},"author":3731,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[24641,23261],"tags":[30201,24621,24631,28311],"industry":[],"product":[36921,42661,36601],"class_list":["post-72771","blog","type-blog","status-publish","format-standard","hentry","category-defense","category-field-mobility","tag-arcgis-for-defense","tag-qml","tag-qt","tag-qt-sdk","product-api-cqt","product-arcgis-solutions","product-developers"],"acf":{"short_description":"Introduction\n\nA few weeks ago, Esri released Quartz beta's for all of the ArcGIS Runtime SDKs. If you are an ArcGIS Runtime SDK developer...","flexible_content":[{"acf_fc_layout":"content","content":"<p><span style=\"color: #0066cc;font-size: 1.3em\">Introduction<\/span><\/p>\n<p>A few weeks ago, Esri released <a href=\"https:\/\/blogs.esri.com\/esri\/arcgis\/2016\/06\/20\/the-latest-beta-releases-of-the-arcgis-runtime-quartz-sdks-are-now-live\/\" target=\"_blank\">Quartz beta&#8217;s for all of the ArcGIS Runtime SDKs<\/a>. If you are an ArcGIS Runtime SDK developer, we hope you have had some time to dive in and investigate the new Quartz features and provide feedback to the development teams. <!--more-->We invite you to continue collaborating with us. So far, we have received a wealth of excellent feedback and great catches, so please keep them coming.<\/p>\n<p>We know that many of you have been waiting anxiously for Quartz&#8217;s support for displaying your data using military symbology. The purpose of this blog is to introduce how it all works and to help you get started working with military symbology.<\/p>\n<p>For those of you that used military symbology in pre-Quartz versions of ArcGIS Runtime. Heads up! These concepts now apply to both Graphics and Features. Military symbology can be used for rendering points, lines and polygons in either a <a href=\"https:\/\/developers.arcgis.com\/qt\/quartz\/cpp\/api-reference\/esri-arcgisruntime-graphicsoverlay.html\" target=\"_blank\">GraphicOverlay<\/a> or a FeatureLayer. This is different from pre-Quartz versions of Runtime, where military symbology could only be displayed as Graphics.<\/p>\n<p><span style=\"color: #0066cc;font-size: 1.3em\">The Symbol Dictionary<\/span><\/p>\n<p>Let&#8217;s begin by looking at the SymbolDictionary class.\u00a0A\u00a0<a href=\"https:\/\/developers.arcgis.com\/qt\/quartz\/cpp\/api-reference\/esri-arcgisruntime-symboldictionary.html\" target=\"_blank\">SymbolDictionary<\/a>\u00a0makes use of what is known as \u00a0a\u00a0<code>*.stylx<\/code>\u00a0file. The stylx file contains the symbol primitives for a given symbology specification (such as MIL-STD-2525D), as well as a rule engine that parses input fields from the dictionary. New symbols from the input attributes are assembled based on the attributes of the Feature or Graphic and prepared for rendering. The stylx file is\u00a0in the form of a binary SQLite database, created from ArcGIS Pro.<\/p>\n<p>The\u00a0SymbolDictionary\u00a0constructor takes a given specification, such as &#8220;mil2525d&#8221;. Each specification depends on attribute names that define the symbology and text of each feature. For example, the MIL-STD-2525D specification looks for attributes named &#8220;identity&#8221;, &#8220;symbolset&#8221;, &#8220;symbolentity&#8221;, and &#8220;modifier1&#8221;, among many others. These attributes are used to select different symbol primitives in the style file that are assembled to create a unique symbol.<\/p>\n<p>In the current Beta releases for Java and Qt, we provide a pre-built stylx file for you in the SDK. It only contains the specification for MIL-STD-2525D. Other military specs are coming in the Final release, scheduled for November, including MIL-STD-2525B and C.\u00a0You may be asking yourself, &#8220;<em>I wonder if I can create one of these from scratch in Pro, then use it straight away to display my own custom symbology.<\/em>&#8220;. Well, not quite yet, but\u00a0the long-term plan is to provide this capability, as well as the capability to modify and use existing symbol dictionaries.<\/p>\n<p><span style=\"color: #0066cc;font-size: 1.3em\">The Dictionary Renderer<\/span><\/p>\n<p>The companion class to our SymbolDictionary is the DictionaryRenderer. Working together, these two classes make things happen! The <a href=\"https:\/\/developers.arcgis.com\/qt\/quartz\/cpp\/api-reference\/esri-arcgisruntime-dictionaryrenderer.html\" target=\"_blank\">DictionaryRenderer<\/a> class is responsible for the actual visualization of the symbols on the map from the symbol dictionary we just talked about. DictionaryRenderer\u00a0uses the attributes from the symbol dictionary to display unique multi-layer symbols based on those attributes.<\/p>\n<p>In order to display features using the\u00a0DictionaryRenderer, you must make sure the\u00a0DictionaryRenderer\u00a0and associated\u00a0SymbolDictionary\u00a0know which attributes in your data to use. This can be achieved in multiple ways:<\/p>\n<ul>\n<li>When fields in the FeatureTable and attributes in Graphics have expected names, the DictionaryRenderer automatically finds them.\u00a0So, author your data so that the attribute names match the attributes needed by the specification. In the case of the MIL-STD-2525D specification, author a feature service (or other data source) with a field named &#8220;identity&#8221;, another named &#8220;symbolset&#8221;, and so on. Then in your app, you create a\u00a0<a href=\"https:\/\/developers.arcgis.com\/qt\/quartz\/cpp\/api-reference\/esri-arcgisruntime-featuretable.html\">FeatureTable<\/a>\u00a0from the source data, create a\u00a0<a href=\"https:\/\/developers.arcgis.com\/qt\/quartz\/cpp\/api-reference\/esri-arcgisruntime-featurelayer.html\" target=\"_blank\">FeatureLayer\u00a0<\/a>from the\u00a0FeatureTable, and apply the\u00a0DictionaryRenderer\u00a0to the\u00a0FeatureLayer. This causes the symbols to be generated automatically and applied to the layer in the map. A similar workflow applies for Graphics in a\u00a0<a href=\"https:\/\/developers.arcgis.com\/qt\/quartz\/cpp\/api-reference\/esri-arcgisruntime-graphicsoverlay.html\" target=\"_blank\">GraphicsOverlay<\/a>. Ideally when creating graphics on the fly, you can give the attributes names that match the specification.<\/li>\n<\/ul>\n<ul>\n<li>Use DictionaryRenderer to manually map your attribute names to those expected by the specification. You can map as many attribute names as necessary for the specification, but only need to map attribute names that do not match the specification (all matching attribute names will be automatically matched by the renderer). For example, an expected attribute &#8220;symbolset&#8221; might appear as the &#8220;symbol_set&#8221; field in your\u00a0FeatureTable. In this scenario, you can create a\u00a0<a href=\"https:\/\/developers.arcgis.com\/qt\/quartz\/cpp\/api-reference\/esri-arcgisruntime-servicefeaturetable.html\">ServiceFeatureTable<\/a>\u00a0from a feature service, create a\u00a0FeatureLayer\u00a0from that feature table, create a\u00a0DictionaryRenderer\u00a0and specifically map the &#8220;symbol_set&#8221; field name to the &#8220;symbolset&#8221; name expected by the specification, and finally apply the renderer to the\u00a0FeatureLayer.<\/li>\n<\/ul>\n<p>A\u00a0DictionaryRenderer\u00a0can be applied to pre-authored data, such as feature services, mobile geodatabases (generated from ArcMap or a sync-enabled feature service), and feature layers in a mobile map package. You can also apply it to a\u00a0GraphicsOverlay, which allow for on-the-fly graphic generation.<\/p>\n<p><span style=\"color: #0066cc;font-size: 1.3em\">Using the Symbol Dictionary by itself<\/span><\/p>\n<p>When used by itself, the\u00a0SymbolDictionary\u00a0can be used to find a symbol with provided attributes values by performing a search. This is done by calling\u00a0<a href=\"https:\/\/developers.arcgis.com\/qt\/quartz\/cpp\/api-reference\/esri-arcgisruntime-symboldictionary.html#findSymbol\">findSymbol<\/a>\u00a0on the SymbolDictionary,\u00a0which returns a \u00a0<a href=\"https:\/\/developers.arcgis.com\/qt\/quartz\/cpp\/api-reference\/esri-arcgisruntime-cimsymbol.html\">CIMSymbol<\/a>. This symbol can then be to create a new Graphic, for example.<\/p>\n<p>You can also use a standalone\u00a0SymbolDictionary to search for symbol primitives. Symbol primitives are the individual symbols that make up more complex and advanced multilayer military symbols. This is achieved using\u00a0<a href=\"https:\/\/developers.arcgis.com\/qt\/quartz\/cpp\/api-reference\/esri-arcgisruntime-symboldictionary.html#searchSymbols\">searchSymbols<\/a>. You could search for all symbols that have the tag &#8220;maritime&#8221; in it, for example. The search results contain CIM symbols which you could then either use as they are or extract from them different individual symbols to create a new composite symbol.<\/p>\n<p><span style=\"color: #0066cc;font-size: 1.3em\">Putting it together<\/span><\/p>\n<p>Consider the following C++ code:<\/p>\n<pre>SymbolDictionary* symbolDictionary = \n      new SymbolDictionary(\"mil2525d\", \"\/some\/path\/mil2525d.stylx\", this);\n\nDictionaryRenderer* renderer = new DictionaryRenderer(symbolDictionary, this);\n\nm_graphicsOverlay-&gt;setRenderer(renderer);<\/pre>\n<p>The SymbolDictionary is created first, passing in the specification name and the path name to where the .stylx file is located on your device. Next, DictionaryRenderer is created using the symbol dictionary. Now, you have a render that inherits from <a href=\"https:\/\/developers.arcgis.com\/qt\/quartz\/cpp\/api-reference\/esri-arcgisruntime-renderer.html\" target=\"_blank\">Renderer<\/a>, like all the other renderers do in the API, and so you can apply this to your FeatureLayer or, as in this case, your GraphicOverlay.<\/p>\n<p>Here is how you do it in QML:<\/p>\n<p><a href=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/07\/QML_Mil_Sym_Code.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-65773 noIMGBackground\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/07\/QML_Mil_Sym_Code.png\" alt=\"\" width=\"392\" height=\"164\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/07\/Mil-Std_Sym.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-65815 noIMGBackground\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/07\/Mil-Std_Sym.png\" alt=\"\" width=\"463\" height=\"459\" \/><\/a><\/p>\n<p>The Quartz Beta samples and API references are the best ways to get fully acquainted with advanced symbology topics like this. You can download the following samples from GitHub:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/Esri\/arcgis-runtime-samples-qt\/tree\/master\/ArcGISRuntimeSDKQt_CppSamples\/DisplayInformation\/GraphicsOverlayDictionaryRenderer\" target=\"_blank\">Graphics Overlay: Dictionary Renderer\u00a0<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/Esri\/arcgis-runtime-samples-qt\/tree\/v.next\/ArcGISRuntimeSDKQt_QMLSamples\/DisplayInformation\/GraphicsOverlay_DictionaryRenderer_3D\" target=\"_blank\">Graphics Overlay: Dictionary Renderer in 3D Scene<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/Esri\/arcgis-runtime-samples-qt\/tree\/v.next\/ArcGISRuntimeSDKQt_CppSamples\/Search\/SearchSymbolDictionary\" target=\"_blank\">Search Symbol Dictionary<\/a><\/li>\n<\/ul>\n<p>We hope this was helpful.<\/p>\n<p>Happy coding!<\/p>\n"}],"authors":[{"ID":3731,"user_firstname":"Eric","user_lastname":"Bader","nickname":"eric906","user_nicename":"eric906","display_name":"Eric Bader","user_email":"ebader@esri.com","user_url":"","user_registered":"2018-03-02 00:15:23","user_description":"","user_avatar":"<img alt='' src='https:\/\/secure.gravatar.com\/avatar\/d504fd8c71a3cfdb5141d911e6f6e96965093737560ec672afc0167aee81f45c?s=96&#038;d=blank&#038;r=g' srcset='https:\/\/secure.gravatar.com\/avatar\/d504fd8c71a3cfdb5141d911e6f6e96965093737560ec672afc0167aee81f45c?s=192&#038;d=blank&#038;r=g 2x' class='avatar avatar-96 photo' height='96' width='96' loading='lazy' decoding='async'\/>"}]},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Working with MIL-STD-2525D Symbology using Quartz Runtime<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Working with MIL-STD-2525D Symbology using Quartz Runtime\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2018-03-26T21:09:34+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime\"},\"author\":{\"name\":\"Eric Bader\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/60072798eba14df433cd17dd23184ad9\"},\"headline\":\"Working with MIL-STD-2525D Symbology using Quartz Runtime\",\"datePublished\":\"2016-07-07T12:25:34+00:00\",\"dateModified\":\"2018-03-26T21:09:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime\"},\"wordCount\":8,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"ArcGIS for Defense\",\"QML\",\"Qt\",\"Qt SDK\"],\"articleSection\":[\"Defense and Intelligence\",\"Field Operations\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime\",\"name\":\"Working with MIL-STD-2525D Symbology using Quartz Runtime\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2016-07-07T12:25:34+00:00\",\"dateModified\":\"2018-03-26T21:09:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Working with MIL-STD-2525D Symbology using Quartz Runtime\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/60072798eba14df433cd17dd23184ad9\",\"name\":\"Eric Bader\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d504fd8c71a3cfdb5141d911e6f6e96965093737560ec672afc0167aee81f45c?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d504fd8c71a3cfdb5141d911e6f6e96965093737560ec672afc0167aee81f45c?s=96&d=blank&r=g\",\"caption\":\"Eric Bader\"},\"sameAs\":[\"https:\/\/x.com\/ECBader\"],\"url\":\"\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Working with MIL-STD-2525D Symbology using Quartz Runtime","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime","og_locale":"en_US","og_type":"article","og_title":"Working with MIL-STD-2525D Symbology using Quartz Runtime","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2018-03-26T21:09:34+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime"},"author":{"name":"Eric Bader","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/60072798eba14df433cd17dd23184ad9"},"headline":"Working with MIL-STD-2525D Symbology using Quartz Runtime","datePublished":"2016-07-07T12:25:34+00:00","dateModified":"2018-03-26T21:09:34+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime"},"wordCount":8,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["ArcGIS for Defense","QML","Qt","Qt SDK"],"articleSection":["Defense and Intelligence","Field Operations"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime","name":"Working with MIL-STD-2525D Symbology using Quartz Runtime","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2016-07-07T12:25:34+00:00","dateModified":"2018-03-26T21:09:34+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/defense\/defense\/working-with-mil-std-2525d-symbology-using-quartz-runtime#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Working with MIL-STD-2525D Symbology using Quartz Runtime"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/60072798eba14df433cd17dd23184ad9","name":"Eric Bader","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d504fd8c71a3cfdb5141d911e6f6e96965093737560ec672afc0167aee81f45c?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d504fd8c71a3cfdb5141d911e6f6e96965093737560ec672afc0167aee81f45c?s=96&d=blank&r=g","caption":"Eric Bader"},"sameAs":["https:\/\/x.com\/ECBader"],"url":""}]}},"text_date":"July 7, 2016","author_name":"Eric Bader","author_page":false,"custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/08\/Newsroom-Keyart-Wide-1920-x-1080.jpg","primary_product":"ArcGIS Runtime SDK for Qt","tag_data":[{"term_id":30201,"name":"ArcGIS for Defense","slug":"arcgis-for-defense","term_group":0,"term_taxonomy_id":30201,"taxonomy":"post_tag","description":"","parent":0,"count":11,"filter":"raw"},{"term_id":24621,"name":"QML","slug":"qml","term_group":0,"term_taxonomy_id":24621,"taxonomy":"post_tag","description":"","parent":0,"count":33,"filter":"raw"},{"term_id":24631,"name":"Qt","slug":"qt","term_group":0,"term_taxonomy_id":24631,"taxonomy":"post_tag","description":"","parent":0,"count":36,"filter":"raw"},{"term_id":28311,"name":"Qt SDK","slug":"qt-sdk","term_group":0,"term_taxonomy_id":28311,"taxonomy":"post_tag","description":"","parent":0,"count":11,"filter":"raw"}],"category_data":[{"term_id":24641,"name":"Defense and Intelligence","slug":"defense","term_group":0,"term_taxonomy_id":24641,"taxonomy":"category","description":"","parent":0,"count":162,"filter":"raw"},{"term_id":23261,"name":"Field Operations","slug":"field-mobility","term_group":0,"term_taxonomy_id":23261,"taxonomy":"category","description":"","parent":0,"count":616,"filter":"raw"}],"product_data":[{"term_id":36921,"name":"ArcGIS Runtime SDK for Qt","slug":"api-cqt","term_group":0,"term_taxonomy_id":36921,"taxonomy":"product","description":"","parent":36601,"count":80,"filter":"raw"},{"term_id":42661,"name":"ArcGIS Solutions","slug":"arcgis-solutions","term_group":0,"term_taxonomy_id":42661,"taxonomy":"product","description":"","parent":0,"count":348,"filter":"raw"},{"term_id":36601,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":36601,"taxonomy":"product","description":"","parent":0,"count":761,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=api-cqt","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/72771","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/3731"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=72771"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/72771\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=72771"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=72771"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=72771"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=72771"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=72771"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}