{"version":3,"sources":["webpack:///./src/pages/docs/Miscellaneous/index.mdx"],"names":["_frontmatter","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,wNAE5B,IAKMC,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeI,EAAf,CAAsBD,WAAYA,EAAYE,QAAQ,cAC3D,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-c9292504b0eac270ca3d.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 MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...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":""}