{"version":3,"sources":["webpack:///./src/pages/docs/Miscellaneous/index.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,wNAE5B,IAKMC,EAAc,CAClBD,gBAEIE,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeD,EAAiBK,EAAhC,CAAuCD,WAAYA,EAAYE,QAAQ,cAC5E,iBAAQ,CACN,GAAM,qBADR,qBAGA,wOAGA,2QAGA,oXAIA,gUAGA,mHACA,uBAAK,mBAAU,CACX,WAAc,OADb,YAIL,iBAAQ,CACN,GAAM,kBADR,kBAGA,4FACA,sBAEE,iBAAQ,CACN,WAAc,MADhB,WAKA,iBAAQ,CACN,WAAc,MADhB,SAKA,iBAAQ,CACN,WAAc,MADhB,SAKA,iBAAQ,CACN,WAAc,MADhB,UAKA,iBAAQ,CACN,WAAc,MADhB,WAKA,iBAAQ,CACN,WAAc,MADhB,SAKA,iBAAQ,CACN,WAAc,MADhB,iBAKA,iBAAQ,CACN,WAAc,MADhB,WAKA,iBAAQ,CACN,WAAc,MADhB,UAKA,iBAAQ,CACN,WAAc,MADhB,aAKA,iBAAQ,CACN,WAAc,MADhB,SAKA,iBAAQ,CACN,WAAc,MADhB,eAKA,iBAAQ,CACN,WAAc,MADhB,kBAKA,iBAAQ,CACN,WAAc,MADhB,WAKA,iBAAQ,CACN,WAAc,MADhB,QAKF,iBAAQ,CACN,GAAM,wBADR,wBAGA,2GACA,sBAEE,iBAAQ,CACN,WAAc,MADhB,4FAIE,gBAAO,CACL,KAAQ,iCACR,WAAc,MAFhB,mCAMF,iBAAQ,CACN,WAAc,MADhB,4JAMA,iBAAQ,CACN,WAAc,MADhB,4FAIE,gBAAO,CACL,KAAQ,oCACR,WAAc,MAFhB,sCAMF,iBAAQ,CACN,WAAc,MADhB,sJAMA,iBAAQ,CACN,WAAc,MADhB,wDAGE,gBAAO,CACL,KAAQ,yBACR,WAAc,MAFhB,2BAMF,iBAAQ,CACN,WAAc,MADhB,cAGE,yBAAgB,CACd,WAAc,MADhB,+CAKF,iBAAQ,CACN,WAAc,MADhB,uEAKF,uBAAK,mBAAU,CACX,WAAc,OADb,ic,sNA8BTH,EAAWI,gBAAiB","file":"component---src-pages-docs-miscellaneous-index-mdx-ed21ed5e4d4ba7f1b69a.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/max/code/superset/docs/node_modules/gatsby-theme-docz/src/base/Layout.js\";\nexport const _frontmatter = {};\n\nconst makeShortcode = name => function MDXDefaultShortcode(props) {\n  console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n  return <div {...props} />;\n};\n\nconst layoutProps = {\n  _frontmatter\n};\nconst MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...layoutProps} {...props} components={components} mdxType=\"MDXLayout\">\n    <h2 {...{\n      \"id\": \"country-map-tools\"\n    }}>{`Country Map Tools`}</h2>\n    <p>{`This tool is used in slices for visualization number or string by region, province or department of\nyour countries. So, if you want to use tools, you need ISO 3166-2 code of region, province or\ndepartment.`}</p>\n    <p>{`ISO 3166-2 is part of the ISO 3166 standard published by the International Organization for\nStandardization (ISO), and defines codes for identifying the principal subdivisions (e.g., provinces\nor states) of all countries coded in ISO 3166-1`}</p>\n    <p>{`The purpose of ISO 3166-2 is to establish an international standard of short and unique alphanumeric\ncodes to represent the relevant administrative divisions and dependent territories of all countries\nin a more convenient and less ambiguous form than their full names. Each complete ISO 3166-2 code\nconsists of two parts, separated by a hyphen:`}</p>\n    <p>{`The first part is the ISO 3166-1 alpha-2 code of the country; The second part is a string of up to\nthree alphanumeric characters, which is usually obtained from national sources and stems from coding\nsystems already in use in the country concerned, but may also be developed by the ISO itself.`}</p>\n    <p>{`We can apply these concepts to specify the state of Texas in the country of United States:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`US-TX\n`}</code></pre>\n    <h3 {...{\n      \"id\": \"included-codes\"\n    }}>{`Included Codes`}</h3>\n    <p>{`The ISO codes for the following countries are included in Superset:`}</p>\n    <ul>\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Belgium`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`China`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Egypt`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`France`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Germany`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Japan`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Liechtenstein`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Morocco`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Russia`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Singapore`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Spain`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Switzerland`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`United Kingdom`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Ukraine`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`USA`}</li>\n\n    </ul>\n    <h3 {...{\n      \"id\": \"adding-new-countries\"\n    }}>{`Adding New Countries`}</h3>\n    <p>{`To add a new country in country map tools, you need to follow the following steps:`}</p>\n    <ul>\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`You need shapefiles which contain data of your map. You can get this file on this site:\n`}\n        <a {...{\n          \"href\": \"https://www.diva-gis.org/gdata\",\n          \"parentName\": \"li\"\n        }}>{`https://www.diva-gis.org/gdata`}</a></li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`You need to add ISO 3166-2 with column name ISO for all record in your file. It’s important\nbecause it’s a norm for mapping your data with geojson file`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`You need to convert shapefile to geojson file. This action can make with ogr2ogr tools:\n`}\n        <a {...{\n          \"href\": \"https://www.gdal.org/ogr2ogr.html\",\n          \"parentName\": \"li\"\n        }}>{`https://www.gdal.org/ogr2ogr.html`}</a></li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Put your geojson file in next folder : superset-frontend/src/visualizations/CountryMap/countries\nwith the next name : nameofyourcountries.geojson`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`You can to reduce size of geojson file on this site: `}\n        <a {...{\n          \"href\": \"https://mapshaper.org/\",\n          \"parentName\": \"li\"\n        }}>{`https://mapshaper.org/`}</a></li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Go in file `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`superset-frontend/src/explore/controls.jsx`}</inlineCode></li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`Add your country in component ‘select_country’. Here's an example:`}</li>\n\n    </ul>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`    type: 'SelectControl',\n    label: 'Country Name Type',\n    default: 'France',\n    choices: [\n    'Belgium',\n    'Brazil',\n    'China',\n    'Egypt',\n    'France',\n    'Germany',\n    'Italy',\n    'Japan',\n    'Korea',\n    'Morocco',\n    'Netherlands',\n    'Russia',\n    'Singapore',\n    'Spain',\n    'Uk',\n    'Usa',\n    ].map(s => [s, s]),\n    description: 'The name of country that Superset should display',\n},\n`}</code></pre>\n\n  </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}