├── .gitignore ├── data ├── json │ ├── municipios │ │ ├── df_municipios.json │ │ ├── rr_municipios.json │ │ ├── ap_municipios.json │ │ ├── ac_municipios.json │ │ ├── ro_municipios.json │ │ ├── am_municipios.json │ │ ├── se_municipios.json │ │ ├── ms_municipios.json │ │ ├── es_municipios.json │ │ ├── rj_municipios.json │ │ └── al_municipios.json │ ├── microrregioes │ │ ├── df_microrregioes.json │ │ ├── ap_microrregioes.json │ │ ├── rr_microrregioes.json │ │ ├── ac_microrregioes.json │ │ ├── ro_microrregioes.json │ │ ├── to_microrregioes.json │ │ ├── ms_microrregioes.json │ │ ├── am_microrregioes.json │ │ ├── es_microrregioes.json │ │ ├── se_microrregioes.json │ │ ├── al_microrregioes.json │ │ ├── pi_microrregioes.json │ │ ├── go_microrregioes.json │ │ ├── rj_microrregioes.json │ │ ├── rn_microrregioes.json │ │ ├── sc_microrregioes.json │ │ ├── pe_microrregioes.json │ │ ├── pa_microrregioes.json │ │ ├── mt_microrregioes.json │ │ ├── ma_microrregioes.json │ │ ├── pb_microrregioes.json │ │ ├── ba_microrregioes.json │ │ ├── ce_microrregioes.json │ │ ├── rs_microrregioes.json │ │ ├── pr_microrregioes.json │ │ ├── sp_microrregioes.json │ │ └── mg_microrregioes.json │ ├── mesorregioes │ │ ├── df_mesorregioes.json │ │ ├── ac_mesorregioes.json │ │ ├── ap_mesorregioes.json │ │ ├── rr_mesorregioes.json │ │ ├── ro_mesorregioes.json │ │ ├── to_mesorregioes.json │ │ ├── al_mesorregioes.json │ │ ├── se_mesorregioes.json │ │ ├── pb_mesorregioes.json │ │ ├── rn_mesorregioes.json │ │ ├── am_mesorregioes.json │ │ ├── pi_mesorregioes.json │ │ ├── go_mesorregioes.json │ │ ├── es_mesorregioes.json │ │ ├── ma_mesorregioes.json │ │ ├── ms_mesorregioes.json │ │ ├── pe_mesorregioes.json │ │ ├── mt_mesorregioes.json │ │ ├── sc_mesorregioes.json │ │ ├── pa_mesorregioes.json │ │ ├── rj_mesorregioes.json │ │ ├── ce_mesorregioes.json │ │ ├── ba_mesorregioes.json │ │ ├── rs_mesorregioes.json │ │ ├── pr_mesorregioes.json │ │ ├── mg_mesorregioes.json │ │ └── sp_mesorregioes.json │ └── federacao │ │ └── br_unidades_da_federacao.json └── svg │ └── low │ ├── municipios │ ├── df_municipios.svg │ ├── rr_municipios.svg │ └── ap_municipios.svg │ ├── mesorregioes │ ├── df_mesorregioes.svg │ ├── ap_mesorregioes.svg │ ├── ro_mesorregioes.svg │ ├── pb_mesorregioes.svg │ ├── rr_mesorregioes.svg │ ├── to_mesorregioes.svg │ ├── rn_mesorregioes.svg │ ├── se_mesorregioes.svg │ ├── pi_mesorregioes.svg │ ├── ac_mesorregioes.svg │ ├── al_mesorregioes.svg │ ├── ce_mesorregioes.svg │ ├── pe_mesorregioes.svg │ ├── pa_mesorregioes.svg │ ├── ma_mesorregioes.svg │ ├── ms_mesorregioes.svg │ ├── go_mesorregioes.svg │ ├── es_mesorregioes.svg │ ├── am_mesorregioes.svg │ ├── mt_mesorregioes.svg │ ├── pr_mesorregioes.svg │ └── rs_mesorregioes.svg │ └── microrregioes │ ├── df_microrregioes.svg │ ├── rr_microrregioes.svg │ ├── ap_microrregioes.svg │ ├── ro_microrregioes.svg │ ├── ac_microrregioes.svg │ ├── to_microrregioes.svg │ ├── se_microrregioes.svg │ ├── pi_microrregioes.svg │ ├── al_microrregioes.svg │ ├── rn_microrregioes.svg │ ├── pb_microrregioes.svg │ ├── pe_microrregioes.svg │ ├── ms_microrregioes.svg │ ├── ma_microrregioes.svg │ ├── pa_microrregioes.svg │ ├── go_microrregioes.svg │ ├── es_microrregioes.svg │ └── ce_microrregioes.svg ├── .editorconfig ├── exemplos ├── exemplo_001.png └── exemplo_002.png ├── webpack.prod.js ├── .npmignore ├── webpack.common.js ├── src ├── mapa-brasil.d.ts ├── core │ ├── mapa-io.js │ ├── mapa-ui.js │ ├── constantes.js │ ├── validate-options.js │ └── interactable.js └── mapa-brasil.js ├── webpack.dev.js ├── .github └── workflows │ └── nodejs.yml ├── test ├── mapa-brasil.test.js ├── validate-options.test.js └── data.test.js ├── LICENSE ├── package.json ├── README.md └── index.html /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | node_modules 3 | /dist 4 | /coverage 5 | /.nyc_output 6 | -------------------------------------------------------------------------------- /data/json/municipios/df_municipios.json: -------------------------------------------------------------------------------- 1 | [{"NM_MUNICIP":"BRASÍLIA","CD_GEOCMU":"5300108"}] -------------------------------------------------------------------------------- /data/json/microrregioes/df_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"BRASÍLIA","CD_GEOCMI":"53001"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/df_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"DISTRITO FEDERAL","CD_GEOCME":"5301"}] -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [{*.js, *.ts, *.md}] 4 | indent_style = space 5 | indent_size = 2 6 | -------------------------------------------------------------------------------- /exemplos/exemplo_001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clagomess/mapa-brasil/HEAD/exemplos/exemplo_001.png -------------------------------------------------------------------------------- /exemplos/exemplo_002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clagomess/mapa-brasil/HEAD/exemplos/exemplo_002.png -------------------------------------------------------------------------------- /data/json/mesorregioes/ac_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"VALE DO ACRE","CD_GEOCME":"1202"},{"NM_MESO":"VALE DO JURUÁ","CD_GEOCME":"1201"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/ap_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"NORTE DO AMAPÁ","CD_GEOCME":"1601"},{"NM_MESO":"SUL DO AMAPÁ","CD_GEOCME":"1602"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/rr_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"NORTE DE RORAIMA","CD_GEOCME":"1401"},{"NM_MESO":"SUL DE RORAIMA","CD_GEOCME":"1402"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/ro_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"LESTE RONDONIENSE","CD_GEOCME":"1102"},{"NM_MESO":"MADEIRA-GUAPORÉ","CD_GEOCME":"1101"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/to_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"OCIDENTAL DO TOCANTINS","CD_GEOCME":"1701"},{"NM_MESO":"ORIENTAL DO TOCANTINS","CD_GEOCME":"1702"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/al_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"LESTE ALAGOANO","CD_GEOCME":"2703"},{"NM_MESO":"SERTÃO ALAGOANO","CD_GEOCME":"2701"},{"NM_MESO":"AGRESTE ALAGOANO","CD_GEOCME":"2702"}] -------------------------------------------------------------------------------- /webpack.prod.js: -------------------------------------------------------------------------------- 1 | const { merge } = require('webpack-merge'); 2 | const common = require('./webpack.common.js'); 3 | 4 | module.exports = merge(common, { 5 | mode: "production", 6 | }); 7 | -------------------------------------------------------------------------------- /data/json/mesorregioes/se_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"LESTE SERGIPANO","CD_GEOCME":"2803"},{"NM_MESO":"AGRESTE SERGIPANO","CD_GEOCME":"2802"},{"NM_MESO":"SERTÃO SERGIPANO","CD_GEOCME":"2801"}] -------------------------------------------------------------------------------- /data/json/microrregioes/ap_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"MAZAGÃO","CD_GEOCMI":"16004"},{"NM_MICRO":"MACAPÁ","CD_GEOCMI":"16003"},{"NM_MICRO":"AMAPÁ","CD_GEOCMI":"16002"},{"NM_MICRO":"OIAPOQUE","CD_GEOCMI":"16001"}] -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | # git ignore 2 | .idea 3 | node_modules 4 | /coverage 5 | /.nyc_output 6 | 7 | # only npm publish 8 | /test 9 | webpack.* 10 | index.html 11 | .editorconfig 12 | .travis.yml 13 | exemplos 14 | .github -------------------------------------------------------------------------------- /data/json/mesorregioes/pb_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"SERTÃO PARAIBANO","CD_GEOCME":"2501"},{"NM_MESO":"MATA PARAIBANA","CD_GEOCME":"2504"},{"NM_MESO":"AGRESTE PARAIBANO","CD_GEOCME":"2503"},{"NM_MESO":"BORBOREMA","CD_GEOCME":"2502"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/rn_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"OESTE POTIGUAR","CD_GEOCME":"2401"},{"NM_MESO":"AGRESTE POTIGUAR","CD_GEOCME":"2403"},{"NM_MESO":"LESTE POTIGUAR","CD_GEOCME":"2404"},{"NM_MESO":"CENTRAL POTIGUAR","CD_GEOCME":"2402"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/am_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"CENTRO AMAZONENSE","CD_GEOCME":"1303"},{"NM_MESO":"NORTE AMAZONENSE","CD_GEOCME":"1301"},{"NM_MESO":"SUDOESTE AMAZONENSE","CD_GEOCME":"1302"},{"NM_MESO":"SUL AMAZONENSE","CD_GEOCME":"1304"}] -------------------------------------------------------------------------------- /data/json/microrregioes/rr_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"BOA VISTA","CD_GEOCMI":"14001"},{"NM_MICRO":"CARACARAÍ","CD_GEOCMI":"14003"},{"NM_MICRO":"SUDESTE DE RORAIMA","CD_GEOCMI":"14004"},{"NM_MICRO":"NORDESTE DE RORAIMA","CD_GEOCMI":"14002"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/pi_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"CENTRO-NORTE PIAUIENSE","CD_GEOCME":"2202"},{"NM_MESO":"NORTE PIAUIENSE","CD_GEOCME":"2201"},{"NM_MESO":"SUDOESTE PIAUIENSE","CD_GEOCME":"2203"},{"NM_MESO":"SUDESTE PIAUIENSE","CD_GEOCME":"2204"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/go_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"CENTRO GOIANO","CD_GEOCME":"5203"},{"NM_MESO":"NORTE GOIANO","CD_GEOCME":"5202"},{"NM_MESO":"NOROESTE GOIANO","CD_GEOCME":"5201"},{"NM_MESO":"LESTE GOIANO","CD_GEOCME":"5204"},{"NM_MESO":"SUL GOIANO","CD_GEOCME":"5205"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/es_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"LITORAL NORTE ESPÍRITO-SANTENSE","CD_GEOCME":"3202"},{"NM_MESO":"CENTRAL ESPÍRITO-SANTENSE","CD_GEOCME":"3203"},{"NM_MESO":"NOROESTE ESPÍRITO-SANTENSE","CD_GEOCME":"3201"},{"NM_MESO":"SUL ESPÍRITO-SANTENSE","CD_GEOCME":"3204"}] -------------------------------------------------------------------------------- /data/json/microrregioes/ac_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"RIO BRANCO","CD_GEOCMI":"12004"},{"NM_MICRO":"SENA MADUREIRA","CD_GEOCMI":"12003"},{"NM_MICRO":"BRASILÉIA","CD_GEOCMI":"12005"},{"NM_MICRO":"TARAUACÁ","CD_GEOCMI":"12002"},{"NM_MICRO":"CRUZEIRO DO SUL","CD_GEOCMI":"12001"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/ma_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"CENTRO MARANHENSE","CD_GEOCME":"2103"},{"NM_MESO":"OESTE MARANHENSE","CD_GEOCME":"2102"},{"NM_MESO":"NORTE MARANHENSE","CD_GEOCME":"2101"},{"NM_MESO":"SUL MARANHENSE","CD_GEOCME":"2105"},{"NM_MESO":"LESTE MARANHENSE","CD_GEOCME":"2104"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/ms_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"LESTE DE MATO GROSSO DO SUL","CD_GEOCME":"5003"},{"NM_MESO":"SUDOESTE DE MATO GROSSO DO SUL","CD_GEOCME":"5004"},{"NM_MESO":"PANTANAIS SUL MATO-GROSSENSE","CD_GEOCME":"5001"},{"NM_MESO":"CENTRO NORTE DE MATO GROSSO DO SUL","CD_GEOCME":"5002"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/pe_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"AGRESTE PERNAMBUCANO","CD_GEOCME":"2603"},{"NM_MESO":"MATA PERNAMBUCANA","CD_GEOCME":"2604"},{"NM_MESO":"SÃO FRANCISCO PERNAMBUCANO","CD_GEOCME":"2602"},{"NM_MESO":"SERTÃO PERNAMBUCANO","CD_GEOCME":"2601"},{"NM_MESO":"METROPOLITANA DE RECIFE","CD_GEOCME":"2605"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/mt_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"SUDESTE MATO-GROSSENSE","CD_GEOCME":"5105"},{"NM_MESO":"CENTRO-SUL MATO-GROSSENSE","CD_GEOCME":"5104"},{"NM_MESO":"SUDOESTE MATO-GROSSENSE","CD_GEOCME":"5103"},{"NM_MESO":"NORDESTE MATO-GROSSENSE","CD_GEOCME":"5102"},{"NM_MESO":"NORTE MATO-GROSSENSE","CD_GEOCME":"5101"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/sc_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"SUL CATARINENSE","CD_GEOCME":"4206"},{"NM_MESO":"VALE DO ITAJAÍ","CD_GEOCME":"4204"},{"NM_MESO":"GRANDE FLORIANÓPOLIS","CD_GEOCME":"4205"},{"NM_MESO":"SERRANA","CD_GEOCME":"4203"},{"NM_MESO":"NORTE CATARINENSE","CD_GEOCME":"4202"},{"NM_MESO":"OESTE CATARINENSE","CD_GEOCME":"4201"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/pa_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"METROPOLITANA DE BELÉM","CD_GEOCME":"1503"},{"NM_MESO":"SUDOESTE PARAENSE","CD_GEOCME":"1505"},{"NM_MESO":"BAIXO AMAZONAS","CD_GEOCME":"1501"},{"NM_MESO":"MARAJÓ","CD_GEOCME":"1502"},{"NM_MESO":"NORDESTE PARAENSE","CD_GEOCME":"1504"},{"NM_MESO":"SUDESTE PARAENSE","CD_GEOCME":"1506"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/rj_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"NORTE FLUMINENSE","CD_GEOCME":"3302"},{"NM_MESO":"METROPOLITANA DO RIO DE JANEIRO","CD_GEOCME":"3306"},{"NM_MESO":"SUL FLUMINENSE","CD_GEOCME":"3305"},{"NM_MESO":"BAIXADAS","CD_GEOCME":"3304"},{"NM_MESO":"CENTRO FLUMINENSE","CD_GEOCME":"3303"},{"NM_MESO":"NOROESTE FLUMINENSE","CD_GEOCME":"3301"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/ce_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"NORTE CEARENSE","CD_GEOCME":"2302"},{"NM_MESO":"CENTRO-SUL CEARENSE","CD_GEOCME":"2306"},{"NM_MESO":"NOROESTE CEARENSE","CD_GEOCME":"2301"},{"NM_MESO":"SUL CEARENSE","CD_GEOCME":"2307"},{"NM_MESO":"JAGUARIBE","CD_GEOCME":"2305"},{"NM_MESO":"SERTÕES CEARENSES","CD_GEOCME":"2304"},{"NM_MESO":"METROPOLITANA DE FORTALEZA","CD_GEOCME":"2303"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/ba_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"VALE SÃO-FRANCISCANO DA BAHIA","CD_GEOCME":"2902"},{"NM_MESO":"METROPOLITANA DE SALVADOR","CD_GEOCME":"2905"},{"NM_MESO":"CENTRO SUL BAIANO","CD_GEOCME":"2906"},{"NM_MESO":"NORDESTE BAIANO","CD_GEOCME":"2904"},{"NM_MESO":"CENTRO NORTE BAIANO","CD_GEOCME":"2903"},{"NM_MESO":"EXTREMO OESTE BAIANO","CD_GEOCME":"2901"},{"NM_MESO":"SUL BAIANO","CD_GEOCME":"2907"}] -------------------------------------------------------------------------------- /data/json/microrregioes/ro_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"GUAJARÁ-MIRIM","CD_GEOCMI":"11002"},{"NM_MICRO":"CACOAL","CD_GEOCMI":"11006"},{"NM_MICRO":"JI-PARANÁ","CD_GEOCMI":"11004"},{"NM_MICRO":"ALVORADA D'OESTE","CD_GEOCMI":"11005"},{"NM_MICRO":"COLORADO DO OESTE","CD_GEOCMI":"11008"},{"NM_MICRO":"ARIQUEMES","CD_GEOCMI":"11003"},{"NM_MICRO":"PORTO VELHO","CD_GEOCMI":"11001"},{"NM_MICRO":"VILHENA","CD_GEOCMI":"11007"}] -------------------------------------------------------------------------------- /data/json/microrregioes/to_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"JALAPÃO","CD_GEOCMI":"17007"},{"NM_MICRO":"MIRACEMA DO TOCANTINS","CD_GEOCMI":"17003"},{"NM_MICRO":"ARAGUAÍNA","CD_GEOCMI":"17002"},{"NM_MICRO":"DIANÓPOLIS","CD_GEOCMI":"17008"},{"NM_MICRO":"GURUPI","CD_GEOCMI":"17005"},{"NM_MICRO":"PORTO NACIONAL","CD_GEOCMI":"17006"},{"NM_MICRO":"BICO DO PAPAGAIO","CD_GEOCMI":"17001"},{"NM_MICRO":"RIO FORMOSO","CD_GEOCMI":"17004"}] -------------------------------------------------------------------------------- /webpack.common.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | 3 | module.exports = { 4 | entry: { 5 | "mapa-brasil": './src/mapa-brasil.js' 6 | }, 7 | 8 | output: { 9 | path: path.resolve(__dirname, 'dist'), 10 | filename: '[name].min.js', 11 | library: 'MapaBrasil', 12 | libraryTarget: "umd" 13 | }, 14 | 15 | module: { 16 | rules: [ 17 | { 18 | test: /\.js$/, 19 | exclude: /node_modules/, 20 | loader: 'babel-loader', 21 | } 22 | ] 23 | } 24 | }; 25 | -------------------------------------------------------------------------------- /data/json/mesorregioes/rs_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"CENTRO OCIDENTAL RIO-GRANDENSE","CD_GEOCME":"4303"},{"NM_MESO":"CENTRO ORIENTAL RIO-GRANDENSE","CD_GEOCME":"4304"},{"NM_MESO":"LAGOA MIRIM","CD_GEOCME":"4377"},{"NM_MESO":"NORDESTE RIO-GRANDENSE","CD_GEOCME":"4302"},{"NM_MESO":"SUDESTE RIO-GRANDENSE","CD_GEOCME":"4307"},{"NM_MESO":"NOROESTE RIO-GRANDENSE","CD_GEOCME":"4301"},{"NM_MESO":"LAGOA DOS PATOS","CD_GEOCME":"4388"},{"NM_MESO":"METROPOLITANA DE PORTO ALEGRE","CD_GEOCME":"4305"},{"NM_MESO":"SUDOESTE RIO-GRANDENSE","CD_GEOCME":"4306"}] -------------------------------------------------------------------------------- /data/json/microrregioes/ms_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"BAIXO PANTANAL","CD_GEOCMI":"50001"},{"NM_MICRO":"PARANAÍBA","CD_GEOCMI":"50006"},{"NM_MICRO":"DOURADOS","CD_GEOCMI":"50010"},{"NM_MICRO":"ALTO TAQUARI","CD_GEOCMI":"50003"},{"NM_MICRO":"CAMPO GRANDE","CD_GEOCMI":"50004"},{"NM_MICRO":"AQUIDAUANA","CD_GEOCMI":"50002"},{"NM_MICRO":"BODOQUENA","CD_GEOCMI":"50009"},{"NM_MICRO":"CASSILÂNDIA","CD_GEOCMI":"50005"},{"NM_MICRO":"IGUATEMI","CD_GEOCMI":"50011"},{"NM_MICRO":"NOVA ANDRADINA","CD_GEOCMI":"50008"},{"NM_MICRO":"TRÊS LAGOAS","CD_GEOCMI":"50007"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/pr_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"SUDESTE PARANAENSE","CD_GEOCME":"4109"},{"NM_MESO":"NORTE PIONEIRO PARANAENSE","CD_GEOCME":"4104"},{"NM_MESO":"NORTE CENTRAL PARANAENSE","CD_GEOCME":"4103"},{"NM_MESO":"CENTRO-SUL PARANAENSE","CD_GEOCME":"4108"},{"NM_MESO":"OESTE PARANAENSE","CD_GEOCME":"4106"},{"NM_MESO":"METROPOLITANA DE CURITIBA","CD_GEOCME":"4110"},{"NM_MESO":"CENTRO OCIDENTAL PARANAENSE","CD_GEOCME":"4102"},{"NM_MESO":"SUDOESTE PARANAENSE","CD_GEOCME":"4107"},{"NM_MESO":"CENTRO ORIENTAL PARANAENSE","CD_GEOCME":"4105"},{"NM_MESO":"NOROESTE PARANAENSE","CD_GEOCME":"4101"}] -------------------------------------------------------------------------------- /data/json/microrregioes/am_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"JURUÁ","CD_GEOCMI":"13004"},{"NM_MICRO":"ITACOATIARA","CD_GEOCMI":"13009"},{"NM_MICRO":"BOCA DO ACRE","CD_GEOCMI":"13011"},{"NM_MICRO":"ALTO SOLIMÕES","CD_GEOCMI":"13003"},{"NM_MICRO":"TEFÉ","CD_GEOCMI":"13005"},{"NM_MICRO":"PARINTINS","CD_GEOCMI":"13010"},{"NM_MICRO":"PURUS","CD_GEOCMI":"13012"},{"NM_MICRO":"JAPURÁ","CD_GEOCMI":"13002"},{"NM_MICRO":"COARI","CD_GEOCMI":"13006"},{"NM_MICRO":"MANAUS","CD_GEOCMI":"13007"},{"NM_MICRO":"MADEIRA","CD_GEOCMI":"13013"},{"NM_MICRO":"RIO PRETO DA EVA","CD_GEOCMI":"13008"},{"NM_MICRO":"RIO NEGRO","CD_GEOCMI":"13001"}] -------------------------------------------------------------------------------- /data/svg/low/municipios/df_municipios.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/df_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /data/svg/low/microrregioes/df_microrregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /data/json/microrregioes/es_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"ALEGRE","CD_GEOCMI":"32011"},{"NM_MICRO":"SANTA TERESA","CD_GEOCMI":"32008"},{"NM_MICRO":"VITÓRIA","CD_GEOCMI":"32009"},{"NM_MICRO":"CACHOEIRO DE ITAPEMIRIM","CD_GEOCMI":"32012"},{"NM_MICRO":"COLATINA","CD_GEOCMI":"32003"},{"NM_MICRO":"MONTANHA","CD_GEOCMI":"32004"},{"NM_MICRO":"ITAPEMIRIM","CD_GEOCMI":"32013"},{"NM_MICRO":"BARRA DE SÃO FRANCISCO","CD_GEOCMI":"32001"},{"NM_MICRO":"SÃO MATEUS","CD_GEOCMI":"32005"},{"NM_MICRO":"LINHARES","CD_GEOCMI":"32006"},{"NM_MICRO":"GUARAPARI","CD_GEOCMI":"32010"},{"NM_MICRO":"AFONSO CLÁUDIO","CD_GEOCMI":"32007"},{"NM_MICRO":"NOVA VENÉCIA","CD_GEOCMI":"32002"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/mg_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"CAMPO DAS VERTENTES","CD_GEOCME":"3111"},{"NM_MESO":"VALE DO RIO DOCE","CD_GEOCME":"3108"},{"NM_MESO":"OESTE DE MINAS","CD_GEOCME":"3109"},{"NM_MESO":"CENTRAL MINEIRA","CD_GEOCME":"3106"},{"NM_MESO":"METROPOLITANA DE BELO HORIZONTE","CD_GEOCME":"3107"},{"NM_MESO":"VALE DO MUCURI","CD_GEOCME":"3104"},{"NM_MESO":"JEQUITINHONHA","CD_GEOCME":"3103"},{"NM_MESO":"NORTE DE MINAS","CD_GEOCME":"3102"},{"NM_MESO":"TRIÂNGULO MINEIRO/ALTO PARANAÍBA","CD_GEOCME":"3105"},{"NM_MESO":"SUL/SUDOESTE DE MINAS","CD_GEOCME":"3110"},{"NM_MESO":"ZONA DA MATA","CD_GEOCME":"3112"},{"NM_MESO":"NOROESTE DE MINAS","CD_GEOCME":"3101"}] -------------------------------------------------------------------------------- /data/json/microrregioes/se_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"JAPARATUBA","CD_GEOCMI":"28009"},{"NM_MICRO":"NOSSA SENHORA DAS DORES","CD_GEOCMI":"28003"},{"NM_MICRO":"PROPRIÁ","CD_GEOCMI":"28007"},{"NM_MICRO":"AGRESTE DE LAGARTO","CD_GEOCMI":"28006"},{"NM_MICRO":"BOQUIM","CD_GEOCMI":"28012"},{"NM_MICRO":"SERGIPANA DO SERTÃO DO SÃO FRANCISCO","CD_GEOCMI":"28001"},{"NM_MICRO":"BAIXO COTINGUIBA","CD_GEOCMI":"28010"},{"NM_MICRO":"COTINGUIBA","CD_GEOCMI":"28008"},{"NM_MICRO":"CARIRA","CD_GEOCMI":"28002"},{"NM_MICRO":"ESTÂNCIA","CD_GEOCMI":"28013"},{"NM_MICRO":"ARACAJU","CD_GEOCMI":"28011"},{"NM_MICRO":"AGRESTE DE ITABAIANA","CD_GEOCMI":"28004"},{"NM_MICRO":"TOBIAS BARRETO","CD_GEOCMI":"28005"}] -------------------------------------------------------------------------------- /data/json/microrregioes/al_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"SÃO MIGUEL DOS CAMPOS","CD_GEOCMI":"27012"},{"NM_MICRO":"PALMEIRA DOS ÍNDIOS","CD_GEOCMI":"27005"},{"NM_MICRO":"MATA ALAGOANA","CD_GEOCMI":"27009"},{"NM_MICRO":"SANTANA DO IPANEMA","CD_GEOCMI":"27003"},{"NM_MICRO":"ALAGOANA DO SERTÃO DO SÃO FRANCISCO","CD_GEOCMI":"27002"},{"NM_MICRO":"ARAPIRACA","CD_GEOCMI":"27006"},{"NM_MICRO":"BATALHA","CD_GEOCMI":"27004"},{"NM_MICRO":"LITORAL NORTE ALAGOANO","CD_GEOCMI":"27010"},{"NM_MICRO":"SERRANA DO SERTÃO ALAGOANO","CD_GEOCMI":"27001"},{"NM_MICRO":"SERRANA DOS QUILOMBOS","CD_GEOCMI":"27008"},{"NM_MICRO":"PENEDO","CD_GEOCMI":"27013"},{"NM_MICRO":"MACEIÓ","CD_GEOCMI":"27011"},{"NM_MICRO":"TRAIPU","CD_GEOCMI":"27007"}] -------------------------------------------------------------------------------- /data/json/mesorregioes/sp_mesorregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MESO":"MARÍLIA","CD_GEOCME":"3509"},{"NM_MESO":"ARAÇATUBA","CD_GEOCME":"3503"},{"NM_MESO":"CAMPINAS","CD_GEOCME":"3507"},{"NM_MESO":"PRESIDENTE PRUDENTE","CD_GEOCME":"3508"},{"NM_MESO":"ASSIS","CD_GEOCME":"3510"},{"NM_MESO":"SÃO JOSÉ DO RIO PRETO","CD_GEOCME":"3501"},{"NM_MESO":"LITORAL SUL PAULISTA","CD_GEOCME":"3514"},{"NM_MESO":"ARARAQUARA","CD_GEOCME":"3505"},{"NM_MESO":"VALE DO PARAÍBA PAULISTA","CD_GEOCME":"3513"},{"NM_MESO":"MACRO METROPOLITANA PAULISTA","CD_GEOCME":"3512"},{"NM_MESO":"RIBEIRÃO PRETO","CD_GEOCME":"3502"},{"NM_MESO":"ITAPETININGA","CD_GEOCME":"3511"},{"NM_MESO":"BAURU","CD_GEOCME":"3504"},{"NM_MESO":"METROPOLITANA DE SÃO PAULO","CD_GEOCME":"3515"},{"NM_MESO":"PIRACICABA","CD_GEOCME":"3506"}] -------------------------------------------------------------------------------- /data/json/municipios/rr_municipios.json: -------------------------------------------------------------------------------- 1 | [{"NM_MUNICIP":"BONFIM","CD_GEOCMU":"1400159"},{"NM_MUNICIP":"PACARAIMA","CD_GEOCMU":"1400456"},{"NM_MUNICIP":"BOA VISTA","CD_GEOCMU":"1400100"},{"NM_MUNICIP":"NORMANDIA","CD_GEOCMU":"1400407"},{"NM_MUNICIP":"CAROEBE","CD_GEOCMU":"1400233"},{"NM_MUNICIP":"ALTO ALEGRE","CD_GEOCMU":"1400050"},{"NM_MUNICIP":"RORAINÓPOLIS","CD_GEOCMU":"1400472"},{"NM_MUNICIP":"UIRAMUTÃ","CD_GEOCMU":"1400704"},{"NM_MUNICIP":"AMAJARI","CD_GEOCMU":"1400027"},{"NM_MUNICIP":"SÃO LUIZ","CD_GEOCMU":"1400605"},{"NM_MUNICIP":"MUCAJAÍ","CD_GEOCMU":"1400308"},{"NM_MUNICIP":"CARACARAÍ","CD_GEOCMU":"1400209"},{"NM_MUNICIP":"CANTÁ","CD_GEOCMU":"1400175"},{"NM_MUNICIP":"SÃO JOÃO DA BALIZA","CD_GEOCMU":"1400506"},{"NM_MUNICIP":"IRACEMA","CD_GEOCMU":"1400282"}] -------------------------------------------------------------------------------- /src/mapa-brasil.d.ts: -------------------------------------------------------------------------------- 1 | // Type definitions for MapaBrasil 2 | 3 | type Options = { 4 | dataPath?: string, 5 | unidade?: string | number, 6 | regiao?: string, 7 | qualidade?: string, 8 | defaultFillColor?: string, 9 | defaultStrokeColor?: string, 10 | unidadeData?: 11 | { 12 | codIbge: number, 13 | fillColor?: string, 14 | strokeColor?: string, 15 | strokeWidth?: number, 16 | }[] | 17 | Promise<{ 18 | codIbge: number, 19 | fillColor: string, 20 | }[]> 21 | onClick?: (data: { codIbge: number, nomUnidade: string }) => void 22 | }; 23 | 24 | declare function MapaBrasil(element: HTMLElement, options: Options): void; 25 | 26 | export default function (element: HTMLElement, options: Options): void; 27 | -------------------------------------------------------------------------------- /data/json/microrregioes/pi_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"LITORAL PIAUIENSE","CD_GEOCMI":"22002"},{"NM_MICRO":"CAMPO MAIOR","CD_GEOCMI":"22004"},{"NM_MICRO":"TERESINA","CD_GEOCMI":"22003"},{"NM_MICRO":"SÃO RAIMUNDO NONATO","CD_GEOCMI":"22011"},{"NM_MICRO":"ALTO MÉDIO CANINDÉ","CD_GEOCMI":"22015"},{"NM_MICRO":"VALENÇA DO PIAUÍ","CD_GEOCMI":"22006"},{"NM_MICRO":"ALTO PARNAÍBA PIAUIENSE","CD_GEOCMI":"22007"},{"NM_MICRO":"FLORIANO","CD_GEOCMI":"22009"},{"NM_MICRO":"ALTO MÉDIO GURGUÉIA","CD_GEOCMI":"22010"},{"NM_MICRO":"CHAPADAS DO EXTREMO SUL PIAUIENSE","CD_GEOCMI":"22012"},{"NM_MICRO":"BERTOLÍNIA","CD_GEOCMI":"22008"},{"NM_MICRO":"PIO IX","CD_GEOCMI":"22014"},{"NM_MICRO":"BAIXO PARNAÍBA PIAUIENSE","CD_GEOCMI":"22001"},{"NM_MICRO":"PICOS","CD_GEOCMI":"22013"},{"NM_MICRO":"MÉDIO PARNAÍBA PIAUIENSE","CD_GEOCMI":"22005"}] -------------------------------------------------------------------------------- /webpack.dev.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const HtmlWebpackPlugin = require('html-webpack-plugin'); 3 | const { CleanWebpackPlugin } = require('clean-webpack-plugin'); 4 | const CopyWebpackPlugin = require('copy-webpack-plugin'); 5 | const { merge } = require('webpack-merge'); 6 | const common = require('./webpack.common.js'); 7 | 8 | module.exports = merge(common, { 9 | mode: "development", 10 | 11 | plugins: [ 12 | new CleanWebpackPlugin(), 13 | new CopyWebpackPlugin({ 14 | patterns: [{from: 'data', to: 'data'}] 15 | }), 16 | new HtmlWebpackPlugin({ 17 | template: "index.html" 18 | }), 19 | ], 20 | 21 | devServer: { 22 | static: path.join(__dirname, 'dist'), 23 | compress: true, 24 | host: '0.0.0.0', 25 | port: 3000 26 | } 27 | }); 28 | -------------------------------------------------------------------------------- /data/json/municipios/ap_municipios.json: -------------------------------------------------------------------------------- 1 | [{"NM_MUNICIP":"PRACUÚBA","CD_GEOCMU":"1600550"},{"NM_MUNICIP":"PEDRA BRANCA DO AMAPARI","CD_GEOCMU":"1600154"},{"NM_MUNICIP":"CUTIAS","CD_GEOCMU":"1600212"},{"NM_MUNICIP":"OIAPOQUE","CD_GEOCMU":"1600501"},{"NM_MUNICIP":"MAZAGÃO","CD_GEOCMU":"1600402"},{"NM_MUNICIP":"LARANJAL DO JARI","CD_GEOCMU":"1600279"},{"NM_MUNICIP":"PORTO GRANDE","CD_GEOCMU":"1600535"},{"NM_MUNICIP":"TARTARUGALZINHO","CD_GEOCMU":"1600709"},{"NM_MUNICIP":"AMAPÁ","CD_GEOCMU":"1600105"},{"NM_MUNICIP":"ITAUBAL","CD_GEOCMU":"1600253"},{"NM_MUNICIP":"FERREIRA GOMES","CD_GEOCMU":"1600238"},{"NM_MUNICIP":"VITÓRIA DO JARI","CD_GEOCMU":"1600808"},{"NM_MUNICIP":"SANTANA","CD_GEOCMU":"1600600"},{"NM_MUNICIP":"MACAPÁ","CD_GEOCMU":"1600303"},{"NM_MUNICIP":"SERRA DO NAVIO","CD_GEOCMU":"1600055"},{"NM_MUNICIP":"CALÇOENE","CD_GEOCMU":"1600204"}] -------------------------------------------------------------------------------- /.github/workflows/nodejs.yml: -------------------------------------------------------------------------------- 1 | name: Node CI 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build: 7 | timeout-minutes: 10 8 | runs-on: ubuntu-latest 9 | 10 | strategy: 11 | matrix: 12 | node-version: [14.x, 16.x, 18.x] 13 | 14 | steps: 15 | - uses: actions/checkout@v3 16 | - name: Use Node.js ${{ matrix.node-version }} 17 | uses: actions/setup-node@v3 18 | with: 19 | node-version: ${{ matrix.node-version }} 20 | 21 | - uses: actions/cache@v3 22 | with: 23 | path: ~/.npm 24 | key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} 25 | restore-keys: | 26 | ${{ runner.os }}-node- 27 | - name: npm install, build, and test 28 | run: | 29 | npm ci 30 | npm run test 31 | npm run build 32 | env: 33 | CI: true -------------------------------------------------------------------------------- /data/json/microrregioes/go_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"ANÁPOLIS","CD_GEOCMI":"52007"},{"NM_MICRO":"VÃO DO PARANÃ","CD_GEOCMI":"52011"},{"NM_MICRO":"RIO VERMELHO","CD_GEOCMI":"52002"},{"NM_MICRO":"CERES","CD_GEOCMI":"52006"},{"NM_MICRO":"CHAPADA DOS VEADEIROS","CD_GEOCMI":"52005"},{"NM_MICRO":"ANICUNS","CD_GEOCMI":"52009"},{"NM_MICRO":"MEIA PONTE","CD_GEOCMI":"52015"},{"NM_MICRO":"PIRES DO RIO","CD_GEOCMI":"52016"},{"NM_MICRO":"ENTORNO DE BRASÍLIA","CD_GEOCMI":"52012"},{"NM_MICRO":"SÃO MIGUEL DO ARAGUAIA","CD_GEOCMI":"52001"},{"NM_MICRO":"CATALÃO","CD_GEOCMI":"52017"},{"NM_MICRO":"SUDOESTE DE GOIÁS","CD_GEOCMI":"52013"},{"NM_MICRO":"ARAGARÇAS","CD_GEOCMI":"52003"},{"NM_MICRO":"PORANGATU","CD_GEOCMI":"52004"},{"NM_MICRO":"GOIÂNIA","CD_GEOCMI":"52010"},{"NM_MICRO":"IPORÁ","CD_GEOCMI":"52008"},{"NM_MICRO":"VALE DO RIO DOS BOIS","CD_GEOCMI":"52014"},{"NM_MICRO":"QUIRINÓPOLIS","CD_GEOCMI":"52018"}] -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/ap_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /data/json/microrregioes/rj_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"CAMPOS DOS GOYTACAZES","CD_GEOCMI":"33003"},{"NM_MICRO":"ITAPERUNA","CD_GEOCMI":"33001"},{"NM_MICRO":"RIO DE JANEIRO","CD_GEOCMI":"33018"},{"NM_MICRO":"BAÍA DA ILHA GRANDE","CD_GEOCMI":"33013"},{"NM_MICRO":"SANTO ANTÔNIO DE PÁDUA","CD_GEOCMI":"33002"},{"NM_MICRO":"ITAGUAÍ","CD_GEOCMI":"33017"},{"NM_MICRO":"BARRA DO PIRAÍ","CD_GEOCMI":"33012"},{"NM_MICRO":"NOVA FRIBURGO","CD_GEOCMI":"33007"},{"NM_MICRO":"MACACU-CACERIBU","CD_GEOCMI":"33016"},{"NM_MICRO":"BACIA DE SÃO JOÃO","CD_GEOCMI":"33009"},{"NM_MICRO":"SANTA MARIA MADALENA","CD_GEOCMI":"33008"},{"NM_MICRO":"CANTAGALO-CORDEIRO","CD_GEOCMI":"33006"},{"NM_MICRO":"SERRANA","CD_GEOCMI":"33015"},{"NM_MICRO":"LAGOS","CD_GEOCMI":"33010"},{"NM_MICRO":"VALE DO PARAÍBA FLUMINENSE","CD_GEOCMI":"33011"},{"NM_MICRO":"TRÊS RIOS","CD_GEOCMI":"33005"},{"NM_MICRO":"MACAÉ","CD_GEOCMI":"33004"},{"NM_MICRO":"VASSOURAS","CD_GEOCMI":"33014"}] -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/ro_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /data/json/microrregioes/rn_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"MACAU","CD_GEOCMI":"24008"},{"NM_MICRO":"SERRA DE SANTANA","CD_GEOCMI":"24010"},{"NM_MICRO":"SERIDÓ OCIDENTAL","CD_GEOCMI":"24011"},{"NM_MICRO":"NATAL","CD_GEOCMI":"24018"},{"NM_MICRO":"CHAPADA DO APODI","CD_GEOCMI":"24002"},{"NM_MICRO":"MOSSORÓ","CD_GEOCMI":"24001"},{"NM_MICRO":"ANGICOS","CD_GEOCMI":"24009"},{"NM_MICRO":"LITORAL SUL","CD_GEOCMI":"24019"},{"NM_MICRO":"MACAÍBA","CD_GEOCMI":"24017"},{"NM_MICRO":"MÉDIO OESTE","CD_GEOCMI":"24003"},{"NM_MICRO":"LITORAL NORDESTE","CD_GEOCMI":"24016"},{"NM_MICRO":"AGRESTE POTIGUAR","CD_GEOCMI":"24015"},{"NM_MICRO":"BAIXA VERDE","CD_GEOCMI":"24013"},{"NM_MICRO":"SERIDÓ ORIENTAL","CD_GEOCMI":"24012"},{"NM_MICRO":"PAU DOS FERROS","CD_GEOCMI":"24006"},{"NM_MICRO":"BORBOREMA POTIGUAR","CD_GEOCMI":"24014"},{"NM_MICRO":"SERRA DE SÃO MIGUEL","CD_GEOCMI":"24005"},{"NM_MICRO":"VALE DO AÇU","CD_GEOCMI":"24004"},{"NM_MICRO":"UMARIZAL","CD_GEOCMI":"24007"}] -------------------------------------------------------------------------------- /data/json/microrregioes/sc_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"JOAÇABA","CD_GEOCMI":"42004"},{"NM_MICRO":"SÃO MIGUEL DO OESTE","CD_GEOCMI":"42001"},{"NM_MICRO":"CRICIÚMA","CD_GEOCMI":"42019"},{"NM_MICRO":"CANOINHAS","CD_GEOCMI":"42006"},{"NM_MICRO":"ITAJAÍ","CD_GEOCMI":"42013"},{"NM_MICRO":"TUBARÃO","CD_GEOCMI":"42018"},{"NM_MICRO":"XANXERÊ","CD_GEOCMI":"42003"},{"NM_MICRO":"ARARANGUÁ","CD_GEOCMI":"42020"},{"NM_MICRO":"ITUPORANGA","CD_GEOCMI":"42014"},{"NM_MICRO":"FLORIANÓPOLIS","CD_GEOCMI":"42016"},{"NM_MICRO":"CAMPOS DE LAGES","CD_GEOCMI":"42010"},{"NM_MICRO":"JOINVILLE","CD_GEOCMI":"42008"},{"NM_MICRO":"RIO DO SUL","CD_GEOCMI":"42011"},{"NM_MICRO":"CURITIBANOS","CD_GEOCMI":"42009"},{"NM_MICRO":"TIJUCAS","CD_GEOCMI":"42015"},{"NM_MICRO":"TABULEIRO","CD_GEOCMI":"42017"},{"NM_MICRO":"BLUMENAU","CD_GEOCMI":"42012"},{"NM_MICRO":"CHAPECÓ","CD_GEOCMI":"42002"},{"NM_MICRO":"CONCÓRDIA","CD_GEOCMI":"42005"},{"NM_MICRO":"SÃO BENTO DO SUL","CD_GEOCMI":"42007"}] -------------------------------------------------------------------------------- /test/mapa-brasil.test.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | const fs = require('fs'); 4 | const assert = require('assert'); 5 | const path = require('path'); 6 | const jsdom = require("jsdom"); 7 | const mapaBrasil = require('../src/mapa-brasil'); 8 | 9 | const { JSDOM } = jsdom; 10 | const dom = new JSDOM(`
`); 11 | 12 | describe('MapaBrasil', () => { 13 | it('draw', () => { 14 | mapaBrasil(dom.window.document.getElementById('mapa'), { 15 | dataPath: path.resolve(__dirname, '../data'), 16 | dataFileLoader: (isJson, path) => { 17 | return new Promise((resolve, reject) => { 18 | const content = fs.readFileSync(path).toString(); 19 | resolve(isJson ? JSON.stringify(content) : content); 20 | }); 21 | }, 22 | onDrawComplete: (el, data) => { 23 | assert.ok(data.length > 0); 24 | assert.ok(el.innerHTML.length > 0); 25 | } 26 | }); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/pb_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /data/json/microrregioes/pe_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"PETROLINA","CD_GEOCMI":"26005"},{"NM_MICRO":"GARANHUNS","CD_GEOCMI":"26011"},{"NM_MICRO":"FERNANDO DE NORONHA","CD_GEOCMI":"26019"},{"NM_MICRO":"ALTO CAPIBARIBE","CD_GEOCMI":"26009"},{"NM_MICRO":"SALGUEIRO","CD_GEOCMI":"26002"},{"NM_MICRO":"ITAPARICA","CD_GEOCMI":"26006"},{"NM_MICRO":"ITAMARACÁ","CD_GEOCMI":"26016"},{"NM_MICRO":"SERTÃO DO MOXOTÓ","CD_GEOCMI":"26004"},{"NM_MICRO":"VALE DO IPOJUCA","CD_GEOCMI":"26008"},{"NM_MICRO":"SUAPE","CD_GEOCMI":"26018"},{"NM_MICRO":"MATA SETENTRIONAL PERNAMBUCANA","CD_GEOCMI":"26013"},{"NM_MICRO":"MÉDIO CAPIBARIBE","CD_GEOCMI":"26010"},{"NM_MICRO":"MATA MERIDIONAL PERNAMBUCANA","CD_GEOCMI":"26015"},{"NM_MICRO":"ARARIPINA","CD_GEOCMI":"26001"},{"NM_MICRO":"PAJEÚ","CD_GEOCMI":"26003"},{"NM_MICRO":"VITÓRIA DE SANTO ANTÃO","CD_GEOCMI":"26014"},{"NM_MICRO":"RECIFE","CD_GEOCMI":"26017"},{"NM_MICRO":"VALE DO IPANEMA","CD_GEOCMI":"26007"},{"NM_MICRO":"BREJO PERNAMBUCANO","CD_GEOCMI":"26012"}] -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/rr_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/to_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /data/json/microrregioes/pa_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"PARAUAPEBAS","CD_GEOCMI":"15019"},{"NM_MICRO":"ALMEIRIM","CD_GEOCMI":"15003"},{"NM_MICRO":"MARABÁ","CD_GEOCMI":"15020"},{"NM_MICRO":"ARARI","CD_GEOCMI":"15006"},{"NM_MICRO":"CONCEIÇÃO DO ARAGUAIA","CD_GEOCMI":"15022"},{"NM_MICRO":"ÓBIDOS","CD_GEOCMI":"15001"},{"NM_MICRO":"SALGADO","CD_GEOCMI":"15009"},{"NM_MICRO":"FUROS DE BREVES","CD_GEOCMI":"15005"},{"NM_MICRO":"PORTEL","CD_GEOCMI":"15004"},{"NM_MICRO":"SANTARÉM","CD_GEOCMI":"15002"},{"NM_MICRO":"CAMETÁ","CD_GEOCMI":"15011"},{"NM_MICRO":"TOMÉ-AÇU","CD_GEOCMI":"15012"},{"NM_MICRO":"GUAMÁ","CD_GEOCMI":"15013"},{"NM_MICRO":"TUCURUÍ","CD_GEOCMI":"15016"},{"NM_MICRO":"CASTANHAL","CD_GEOCMI":"15008"},{"NM_MICRO":"PARAGOMINAS","CD_GEOCMI":"15017"},{"NM_MICRO":"BRAGANTINA","CD_GEOCMI":"15010"},{"NM_MICRO":"ALTAMIRA","CD_GEOCMI":"15015"},{"NM_MICRO":"REDENÇÃO","CD_GEOCMI":"15021"},{"NM_MICRO":"SÃO FÉLIX DO XINGU","CD_GEOCMI":"15018"},{"NM_MICRO":"BELÉM","CD_GEOCMI":"15007"},{"NM_MICRO":"ITAITUBA","CD_GEOCMI":"15014"}] -------------------------------------------------------------------------------- /src/core/mapa-io.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | const constantes = require("./constantes"); 4 | 5 | module.exports = { 6 | getPath: (options, isJson) => { 7 | let path = options.dataPath; 8 | 9 | if(isJson) { 10 | path += `/json/${constantes.mapPath[options.regiao]}/`; 11 | }else{ 12 | path += `/svg/${options.qualidade}/${constantes.mapPath[options.regiao]}/`; 13 | } 14 | 15 | if(options.regiao === "federacao"){ 16 | path += "br_unidades_da_federacao"; 17 | }else { 18 | path += options.unidade + "_" + constantes.mapPath[options.regiao]; 19 | } 20 | 21 | path += (isJson ? ".json" : ".svg"); 22 | 23 | return path; 24 | }, 25 | 26 | loadDataFile: (isJson, path) => { 27 | return new Promise((resolve, reject) => { 28 | fetch(path).then((response) => { 29 | return isJson ? response.json() : response.text(); 30 | }).then((content) => { 31 | resolve(content); 32 | }).catch((e) => reject(e)); 33 | }); 34 | } 35 | }; 36 | -------------------------------------------------------------------------------- /data/json/microrregioes/mt_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"ALTO TELES PIRES","CD_GEOCMI":"51006"},{"NM_MICRO":"CANARANA","CD_GEOCMI":"51010"},{"NM_MICRO":"NORTE ARAGUAIA","CD_GEOCMI":"51009"},{"NM_MICRO":"ALTA FLORESTA","CD_GEOCMI":"51002"},{"NM_MICRO":"ALTO ARAGUAIA","CD_GEOCMI":"51022"},{"NM_MICRO":"COLÍDER","CD_GEOCMI":"51003"},{"NM_MICRO":"PRIMAVERA DO LESTE","CD_GEOCMI":"51019"},{"NM_MICRO":"ARINOS","CD_GEOCMI":"51005"},{"NM_MICRO":"ALTO PARAGUAI","CD_GEOCMI":"51015"},{"NM_MICRO":"JAURU","CD_GEOCMI":"51014"},{"NM_MICRO":"RONDONÓPOLIS","CD_GEOCMI":"51021"},{"NM_MICRO":"PARANATINGA","CD_GEOCMI":"51008"},{"NM_MICRO":"ALTO GUAPORÉ","CD_GEOCMI":"51012"},{"NM_MICRO":"MÉDIO ARAGUAIA","CD_GEOCMI":"51011"},{"NM_MICRO":"ARIPUANÃ","CD_GEOCMI":"51001"},{"NM_MICRO":"ALTO PANTANAL","CD_GEOCMI":"51018"},{"NM_MICRO":"SINOP","CD_GEOCMI":"51007"},{"NM_MICRO":"ROSÁRIO OESTE","CD_GEOCMI":"51016"},{"NM_MICRO":"CUIABÁ","CD_GEOCMI":"51017"},{"NM_MICRO":"PARECIS","CD_GEOCMI":"51004"},{"NM_MICRO":"TANGARÁ DA SERRA","CD_GEOCMI":"51013"},{"NM_MICRO":"TESOURO","CD_GEOCMI":"51020"}] -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/rn_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/se_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /data/json/microrregioes/ma_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"COELHO NETO","CD_GEOCMI":"21016"},{"NM_MICRO":"PRESIDENTE DUTRA","CD_GEOCMI":"21012"},{"NM_MICRO":"CODÓ","CD_GEOCMI":"21015"},{"NM_MICRO":"MÉDIO MEARIM","CD_GEOCMI":"21010"},{"NM_MICRO":"PORTO FRANCO","CD_GEOCMI":"21019"},{"NM_MICRO":"CHAPADAS DO ALTO ITAPECURU","CD_GEOCMI":"21018"},{"NM_MICRO":"LITORAL OCIDENTAL MARANHENSE","CD_GEOCMI":"21001"},{"NM_MICRO":"PINDARÉ","CD_GEOCMI":"21008"},{"NM_MICRO":"ITAPECURU MIRIM","CD_GEOCMI":"21006"},{"NM_MICRO":"CHAPADAS DAS MANGABEIRAS","CD_GEOCMI":"21021"},{"NM_MICRO":"ROSÁRIO","CD_GEOCMI":"21003"},{"NM_MICRO":"CAXIAS","CD_GEOCMI":"21017"},{"NM_MICRO":"LENÇÓIS MARANHENSES","CD_GEOCMI":"21004"},{"NM_MICRO":"BAIXO PARNAÍBA MARANHENSE","CD_GEOCMI":"21013"},{"NM_MICRO":"ALTO MEARIM E GRAJAÚ","CD_GEOCMI":"21011"},{"NM_MICRO":"IMPERATRIZ","CD_GEOCMI":"21009"},{"NM_MICRO":"GURUPI","CD_GEOCMI":"21007"},{"NM_MICRO":"GERAIS DE BALSAS","CD_GEOCMI":"21020"},{"NM_MICRO":"BAIXADA MARANHENSE","CD_GEOCMI":"21005"},{"NM_MICRO":"CHAPADINHA","CD_GEOCMI":"21014"},{"NM_MICRO":"AGLOMERAÇÃO URBANA DE SÃO LUÍS","CD_GEOCMI":"21002"}] -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/pi_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /data/json/microrregioes/pb_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"CURIMATAÚ ORIENTAL","CD_GEOCMI":"25013"},{"NM_MICRO":"SAPÉ","CD_GEOCMI":"25021"},{"NM_MICRO":"ITABAIANA","CD_GEOCMI":"25018"},{"NM_MICRO":"SERIDÓ OCIDENTAL PARAIBANO","CD_GEOCMI":"25008"},{"NM_MICRO":"SERIDÓ ORIENTAL PARAIBANO","CD_GEOCMI":"25009"},{"NM_MICRO":"LITORAL SUL","CD_GEOCMI":"25023"},{"NM_MICRO":"PIANCÓ","CD_GEOCMI":"25005"},{"NM_MICRO":"SOUSA","CD_GEOCMI":"25003"},{"NM_MICRO":"GUARABIRA","CD_GEOCMI":"25016"},{"NM_MICRO":"UMBUZEIRO","CD_GEOCMI":"25019"},{"NM_MICRO":"CAMPINA GRANDE","CD_GEOCMI":"25017"},{"NM_MICRO":"CAJAZEIRAS","CD_GEOCMI":"25002"},{"NM_MICRO":"BREJO PARAIBANO","CD_GEOCMI":"25015"},{"NM_MICRO":"CURIMATAÚ OCIDENTAL","CD_GEOCMI":"25012"},{"NM_MICRO":"JOÃO PESSOA","CD_GEOCMI":"25022"},{"NM_MICRO":"LITORAL NORTE","CD_GEOCMI":"25020"},{"NM_MICRO":"PATOS","CD_GEOCMI":"25004"},{"NM_MICRO":"SERRA DO TEIXEIRA","CD_GEOCMI":"25007"},{"NM_MICRO":"ITAPORANGA","CD_GEOCMI":"25006"},{"NM_MICRO":"ESPERANÇA","CD_GEOCMI":"25014"},{"NM_MICRO":"CARIRI ORIENTAL","CD_GEOCMI":"25011"},{"NM_MICRO":"CARIRI OCIDENTAL","CD_GEOCMI":"25010"},{"NM_MICRO":"CATOLÉ DO ROCHA","CD_GEOCMI":"25001"}] -------------------------------------------------------------------------------- /data/json/municipios/ac_municipios.json: -------------------------------------------------------------------------------- 1 | [{"NM_MUNICIP":"BRASILÉIA","CD_GEOCMU":"1200104"},{"NM_MUNICIP":"PORTO WALTER","CD_GEOCMU":"1200393"},{"NM_MUNICIP":"SENADOR GUIOMARD","CD_GEOCMU":"1200450"},{"NM_MUNICIP":"SENA MADUREIRA","CD_GEOCMU":"1200500"},{"NM_MUNICIP":"MÂNCIO LIMA","CD_GEOCMU":"1200336"},{"NM_MUNICIP":"ACRELÂNDIA","CD_GEOCMU":"1200013"},{"NM_MUNICIP":"BUJARI","CD_GEOCMU":"1200138"},{"NM_MUNICIP":"RIO BRANCO","CD_GEOCMU":"1200401"},{"NM_MUNICIP":"CRUZEIRO DO SUL","CD_GEOCMU":"1200203"},{"NM_MUNICIP":"FEIJÓ","CD_GEOCMU":"1200302"},{"NM_MUNICIP":"PLÁCIDO DE CASTRO","CD_GEOCMU":"1200385"},{"NM_MUNICIP":"XAPURI","CD_GEOCMU":"1200708"},{"NM_MUNICIP":"PORTO ACRE","CD_GEOCMU":"1200807"},{"NM_MUNICIP":"EPITACIOLÂNDIA","CD_GEOCMU":"1200252"},{"NM_MUNICIP":"TARAUACÁ","CD_GEOCMU":"1200609"},{"NM_MUNICIP":"MANOEL URBANO","CD_GEOCMU":"1200344"},{"NM_MUNICIP":"CAPIXABA","CD_GEOCMU":"1200179"},{"NM_MUNICIP":"JORDÃO","CD_GEOCMU":"1200328"},{"NM_MUNICIP":"ASSIS BRASIL","CD_GEOCMU":"1200054"},{"NM_MUNICIP":"RODRIGUES ALVES","CD_GEOCMU":"1200427"},{"NM_MUNICIP":"MARECHAL THAUMATURGO","CD_GEOCMU":"1200351"},{"NM_MUNICIP":"SANTA ROSA DO PURUS","CD_GEOCMU":"1200435"}] -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Cláudio Gomes 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/ac_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/core/mapa-ui.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | const constantes = require("./constantes"); 4 | 5 | module.exports = { 6 | closeLoader: (element) => { 7 | const loader = element.getElementsByClassName("loader")[0]; 8 | const svgContainer = element.getElementsByClassName("svg-container")[0]; 9 | 10 | loader.style.display = "none"; 11 | svgContainer.style.display = "block"; 12 | }, 13 | 14 | initDom: (element) => { 15 | let createCssHeader = () => { 16 | if(document.getElementById("mapa-brasil-css")){ 17 | return; 18 | } 19 | 20 | let style = document.createElement("style"); 21 | style.setAttribute("type", "text/css"); 22 | style.setAttribute("id", "mapa-brasil-css"); 23 | style.innerHTML = constantes.css; 24 | 25 | document.head.appendChild(style); 26 | }; 27 | 28 | element.classList.add("mapa-brasil"); 29 | element.innerHTML = '
'; 30 | element.style.position = "relative"; 31 | element.style.overflow = "hidden"; 32 | 33 | if(!constantes.IS_NODE) { 34 | createCssHeader(); 35 | } 36 | } 37 | }; 38 | -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/al_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mapa-brasil", 3 | "version": "1.0.6", 4 | "description": "Gráfico dinámico do mapa do Brasil", 5 | "main": "src/mapa-brasil.js", 6 | "keywords": [ 7 | "svg", 8 | "ibge", 9 | "mapa", 10 | "chart", 11 | "brasil" 12 | ], 13 | "scripts": { 14 | "test": "mocha", 15 | "serve": "webpack-dev-server --config webpack.dev.js", 16 | "build": "webpack --config webpack.prod.js" 17 | }, 18 | "author": "Cláudio Gomes", 19 | "homepage": "https://github.com/clagomess/mapa-brasil", 20 | "repository": { 21 | "type": "git", 22 | "url": "https://github.com/clagomess/mapa-brasil.git" 23 | }, 24 | "license": "MIT", 25 | "dependencies": { 26 | "whatwg-fetch": "^3.6.2" 27 | }, 28 | "devDependencies": { 29 | "@babel/core": "^7.20.5", 30 | "babel-loader": "^9.1.0", 31 | "clean-webpack-plugin": "^4.0.0", 32 | "copy-webpack-plugin": "^11.0.0", 33 | "html-webpack-plugin": "^5.5.0", 34 | "jsdom": "^20.0.3", 35 | "mocha": "^10.1.0", 36 | "mocha-lcov-reporter": "^1.3.0", 37 | "webpack": "^5.75.0", 38 | "webpack-cli": "^5.0.0", 39 | "webpack-dev-server": "^4.11.1", 40 | "webpack-merge": "^5.8.0", 41 | "xml-js": "^1.6.11" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /data/svg/low/microrregioes/rr_microrregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /data/svg/low/microrregioes/ap_microrregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /data/json/microrregioes/ba_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"IRECÊ","CD_GEOCMI":"29009"},{"NM_MICRO":"SEABRA","CD_GEOCMI":"29023"},{"NM_MICRO":"VALENÇA","CD_GEOCMI":"29030"},{"NM_MICRO":"RIBEIRA DO POMBAL","CD_GEOCMI":"29015"},{"NM_MICRO":"JEREMOABO","CD_GEOCMI":"29013"},{"NM_MICRO":"GUANAMBI","CD_GEOCMI":"29026"},{"NM_MICRO":"ITABERABA","CD_GEOCMI":"29011"},{"NM_MICRO":"SERRINHA","CD_GEOCMI":"29016"},{"NM_MICRO":"PORTO SEGURO","CD_GEOCMI":"29032"},{"NM_MICRO":"ENTRE RIOS","CD_GEOCMI":"29018"},{"NM_MICRO":"PAULO AFONSO","CD_GEOCMI":"29005"},{"NM_MICRO":"JACOBINA","CD_GEOCMI":"29010"},{"NM_MICRO":"ILHÉUS-ITABUNA","CD_GEOCMI":"29031"},{"NM_MICRO":"JEQUIÉ","CD_GEOCMI":"29024"},{"NM_MICRO":"BARRA","CD_GEOCMI":"29006"},{"NM_MICRO":"SANTO ANTÔNIO DE JESUS","CD_GEOCMI":"29020"},{"NM_MICRO":"SENHOR DO BONFIM","CD_GEOCMI":"29008"},{"NM_MICRO":"ITAPETINGA","CD_GEOCMI":"29029"},{"NM_MICRO":"BARREIRAS","CD_GEOCMI":"29001"},{"NM_MICRO":"JUAZEIRO","CD_GEOCMI":"29004"},{"NM_MICRO":"BOQUIRA","CD_GEOCMI":"29022"},{"NM_MICRO":"VITÓRIA DA CONQUISTA","CD_GEOCMI":"29028"},{"NM_MICRO":"BOM JESUS DA LAPA","CD_GEOCMI":"29007"},{"NM_MICRO":"COTEGIPE","CD_GEOCMI":"29002"},{"NM_MICRO":"LIVRAMENTO DO BRUMADO","CD_GEOCMI":"29025"},{"NM_MICRO":"BRUMADO","CD_GEOCMI":"29027"},{"NM_MICRO":"CATU","CD_GEOCMI":"29019"},{"NM_MICRO":"FEIRA DE SANTANA","CD_GEOCMI":"29012"},{"NM_MICRO":"EUCLIDES DA CUNHA","CD_GEOCMI":"29014"},{"NM_MICRO":"SALVADOR","CD_GEOCMI":"29021"},{"NM_MICRO":"ALAGOINHAS","CD_GEOCMI":"29017"},{"NM_MICRO":"SANTA MARIA DA VITÓRIA","CD_GEOCMI":"29003"}] -------------------------------------------------------------------------------- /data/json/microrregioes/ce_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"SERRA DO PEREIRO","CD_GEOCMI":"23025"},{"NM_MICRO":"BAIXO CURU","CD_GEOCMI":"23009"},{"NM_MICRO":"BATURITÉ","CD_GEOCMI":"23013"},{"NM_MICRO":"MERUOCA","CD_GEOCMI":"23004"},{"NM_MICRO":"SANTA QUITÉRIA","CD_GEOCMI":"23007"},{"NM_MICRO":"PACAJUS","CD_GEOCMI":"23017"},{"NM_MICRO":"MÉDIO CURU","CD_GEOCMI":"23011"},{"NM_MICRO":"MÉDIO JAGUARIBE","CD_GEOCMI":"23024"},{"NM_MICRO":"LITORAL DE ARACATI","CD_GEOCMI":"23022"},{"NM_MICRO":"LITORAL DE CAMOCIM E ACARAÚ","CD_GEOCMI":"23001"},{"NM_MICRO":"CARIRI","CD_GEOCMI":"23032"},{"NM_MICRO":"CANINDÉ","CD_GEOCMI":"23012"},{"NM_MICRO":"CHAPADA DO ARARIPE","CD_GEOCMI":"23029"},{"NM_MICRO":"CHOROZINHO","CD_GEOCMI":"23014"},{"NM_MICRO":"CARIRIAÇU","CD_GEOCMI":"23030"},{"NM_MICRO":"BARRO","CD_GEOCMI":"23031"},{"NM_MICRO":"SOBRAL","CD_GEOCMI":"23005"},{"NM_MICRO":"LAVRAS DA MANGABEIRA","CD_GEOCMI":"23028"},{"NM_MICRO":"BAIXO JAGUARIBE","CD_GEOCMI":"23023"},{"NM_MICRO":"SERTÃO DE INHAMUNS","CD_GEOCMI":"23020"},{"NM_MICRO":"IPU","CD_GEOCMI":"23006"},{"NM_MICRO":"ITAPIPOCA","CD_GEOCMI":"23008"},{"NM_MICRO":"COREAÚ","CD_GEOCMI":"23003"},{"NM_MICRO":"SERTÃO DE QUIXERAMOBIM","CD_GEOCMI":"23019"},{"NM_MICRO":"BREJO SANTO","CD_GEOCMI":"23033"},{"NM_MICRO":"SERTÃO DE SENADOR POMPEU","CD_GEOCMI":"23021"},{"NM_MICRO":"SERTÃO DE CRATÉUS","CD_GEOCMI":"23018"},{"NM_MICRO":"IGUATU","CD_GEOCMI":"23026"},{"NM_MICRO":"VÁRZEA ALEGRE","CD_GEOCMI":"23027"},{"NM_MICRO":"URUBURETAMA","CD_GEOCMI":"23010"},{"NM_MICRO":"IBIAPABA","CD_GEOCMI":"23002"},{"NM_MICRO":"FORTALEZA","CD_GEOCMI":"23016"},{"NM_MICRO":"CASCAVEL","CD_GEOCMI":"23015"}] -------------------------------------------------------------------------------- /data/json/microrregioes/rs_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"OSÓRIO","CD_GEOCMI":"43027"},{"NM_MICRO":"PORTO ALEGRE","CD_GEOCMI":"43026"},{"NM_MICRO":"ERECHIM","CD_GEOCMI":"43004"},{"NM_MICRO":"SANTIAGO","CD_GEOCMI":"43017"},{"NM_MICRO":"CRUZ ALTA","CD_GEOCMI":"43011"},{"NM_MICRO":"SANTO ÂNGELO","CD_GEOCMI":"43007"},{"NM_MICRO":"MONTENEGRO","CD_GEOCMI":"43023"},{"NM_MICRO":"TRÊS PASSOS","CD_GEOCMI":"43002"},{"NM_MICRO":"CARAZINHO","CD_GEOCMI":"43009"},{"NM_MICRO":"PELOTAS","CD_GEOCMI":"43033"},{"NM_MICRO":"SERRAS DE SUDESTE","CD_GEOCMI":"43032"},{"NM_MICRO":"LAGOA MIRIM","CD_GEOCMI":"43777"},{"NM_MICRO":"CAMPANHA MERIDIONAL","CD_GEOCMI":"43031"},{"NM_MICRO":"SANTA MARIA","CD_GEOCMI":"43018"},{"NM_MICRO":"LITORAL LAGUNAR","CD_GEOCMI":"43035"},{"NM_MICRO":"CAMAQUÃ","CD_GEOCMI":"43028"},{"NM_MICRO":"CAMPANHA OCIDENTAL","CD_GEOCMI":"43029"},{"NM_MICRO":"LAGOA DOS PATOS","CD_GEOCMI":"43888"},{"NM_MICRO":"CAMPANHA CENTRAL","CD_GEOCMI":"43030"},{"NM_MICRO":"VACARIA","CD_GEOCMI":"43015"},{"NM_MICRO":"SANTA ROSA","CD_GEOCMI":"43001"},{"NM_MICRO":"IJUÍ","CD_GEOCMI":"43008"},{"NM_MICRO":"SANTA CRUZ DO SUL","CD_GEOCMI":"43020"},{"NM_MICRO":"LAJEADO-ESTRELA","CD_GEOCMI":"43021"},{"NM_MICRO":"SOLEDADE","CD_GEOCMI":"43013"},{"NM_MICRO":"SÃO JERÔNIMO","CD_GEOCMI":"43025"},{"NM_MICRO":"GUAPORÉ","CD_GEOCMI":"43014"},{"NM_MICRO":"JAGUARÃO","CD_GEOCMI":"43034"},{"NM_MICRO":"GRAMADO-CANELA","CD_GEOCMI":"43024"},{"NM_MICRO":"RESTINGA SECA","CD_GEOCMI":"43019"},{"NM_MICRO":"CACHOEIRA DO SUL","CD_GEOCMI":"43022"},{"NM_MICRO":"CAXIAS DO SUL","CD_GEOCMI":"43016"},{"NM_MICRO":"FREDERICO WESTPHALEN","CD_GEOCMI":"43003"},{"NM_MICRO":"NÃO-ME-TOQUE","CD_GEOCMI":"43012"},{"NM_MICRO":"CERRO LARGO","CD_GEOCMI":"43006"},{"NM_MICRO":"SANANDUVA","CD_GEOCMI":"43005"},{"NM_MICRO":"PASSO FUNDO","CD_GEOCMI":"43010"}] -------------------------------------------------------------------------------- /data/json/federacao/br_unidades_da_federacao.json: -------------------------------------------------------------------------------- 1 | [{"NM_ESTADO":"SERGIPE","NM_REGIAO":"NORDESTE","CD_GEOCUF":"28"},{"NM_ESTADO":"MARANHÃO","NM_REGIAO":"NORDESTE","CD_GEOCUF":"21"},{"NM_ESTADO":"ESPÍRITO SANTO","NM_REGIAO":"SUDESTE","CD_GEOCUF":"32"},{"NM_ESTADO":"AMAZONAS","NM_REGIAO":"NORTE","CD_GEOCUF":"13"},{"NM_ESTADO":"RORAIMA","NM_REGIAO":"NORTE","CD_GEOCUF":"14"},{"NM_ESTADO":"GOIÁS","NM_REGIAO":"CENTRO-OESTE","CD_GEOCUF":"52"},{"NM_ESTADO":"AMAPÁ","NM_REGIAO":"NORTE","CD_GEOCUF":"16"},{"NM_ESTADO":"RIO GRANDE DO SUL","NM_REGIAO":"SUL","CD_GEOCUF":"43"},{"NM_ESTADO":"PARAÍBA","NM_REGIAO":"NORDESTE","CD_GEOCUF":"25"},{"NM_ESTADO":"PIAUÍ","NM_REGIAO":"NORDESTE","CD_GEOCUF":"22"},{"NM_ESTADO":"SÃO PAULO","NM_REGIAO":"SUDESTE","CD_GEOCUF":"35"},{"NM_ESTADO":"SANTA CATARINA","NM_REGIAO":"SUL","CD_GEOCUF":"42"},{"NM_ESTADO":"PERNAMBUCO","NM_REGIAO":"NORDESTE","CD_GEOCUF":"26"},{"NM_ESTADO":"RIO DE JANEIRO","NM_REGIAO":"SUDESTE","CD_GEOCUF":"33"},{"NM_ESTADO":"MATO GROSSO DO SUL","NM_REGIAO":"CENTRO-OESTE","CD_GEOCUF":"50"},{"NM_ESTADO":"MATO GROSSO","NM_REGIAO":"CENTRO-OESTE","CD_GEOCUF":"51"},{"NM_ESTADO":"BAHIA","NM_REGIAO":"NORDESTE","CD_GEOCUF":"29"},{"NM_ESTADO":"MINAS GERAIS","NM_REGIAO":"SUDESTE","CD_GEOCUF":"31"},{"NM_ESTADO":"ALAGOAS","NM_REGIAO":"NORDESTE","CD_GEOCUF":"27"},{"NM_ESTADO":"CEARÁ","NM_REGIAO":"NORDESTE","CD_GEOCUF":"23"},{"NM_ESTADO":"RIO GRANDE DO NORTE","NM_REGIAO":"NORDESTE","CD_GEOCUF":"24"},{"NM_ESTADO":"PARANÁ","NM_REGIAO":"SUL","CD_GEOCUF":"41"},{"NM_ESTADO":"RONDÔNIA","NM_REGIAO":"NORTE","CD_GEOCUF":"11"},{"NM_ESTADO":"DISTRITO FEDERAL","NM_REGIAO":"CENTRO-OESTE","CD_GEOCUF":"53"},{"NM_ESTADO":"ACRE","NM_REGIAO":"NORTE","CD_GEOCUF":"12"},{"NM_ESTADO":"PARÁ","NM_REGIAO":"NORTE","CD_GEOCUF":"15"},{"NM_ESTADO":"TOCANTINS","NM_REGIAO":"NORTE","CD_GEOCUF":"17"}] -------------------------------------------------------------------------------- /data/json/microrregioes/pr_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"CAMPO MOURÃO","CD_GEOCMI":"41005"},{"NM_MICRO":"IVAIPORÃ","CD_GEOCMI":"41013"},{"NM_MICRO":"ASTORGA","CD_GEOCMI":"41006"},{"NM_MICRO":"FLORAÍ","CD_GEOCMI":"41008"},{"NM_MICRO":"CORNÉLIO PROCÓPIO","CD_GEOCMI":"41015"},{"NM_MICRO":"FAXINAL","CD_GEOCMI":"41012"},{"NM_MICRO":"CERRO AZUL","CD_GEOCMI":"41035"},{"NM_MICRO":"WENCESLAU BRAZ","CD_GEOCMI":"41018"},{"NM_MICRO":"PALMAS","CD_GEOCMI":"41030"},{"NM_MICRO":"LONDRINA","CD_GEOCMI":"41011"},{"NM_MICRO":"UNIÃO DA VITÓRIA","CD_GEOCMI":"41033"},{"NM_MICRO":"JAGUARIAÍVA","CD_GEOCMI":"41020"},{"NM_MICRO":"APUCARANA","CD_GEOCMI":"41010"},{"NM_MICRO":"PARANAGUÁ","CD_GEOCMI":"41038"},{"NM_MICRO":"ASSAÍ","CD_GEOCMI":"41014"},{"NM_MICRO":"CASCAVEL","CD_GEOCMI":"41023"},{"NM_MICRO":"TELÊMACO BORBA","CD_GEOCMI":"41019"},{"NM_MICRO":"PRUDENTÓPOLIS","CD_GEOCMI":"41031"},{"NM_MICRO":"GOIOERÊ","CD_GEOCMI":"41004"},{"NM_MICRO":"CIANORTE","CD_GEOCMI":"41003"},{"NM_MICRO":"IBAITI","CD_GEOCMI":"41017"},{"NM_MICRO":"IRATI","CD_GEOCMI":"41032"},{"NM_MICRO":"RIO NEGRO","CD_GEOCMI":"41039"},{"NM_MICRO":"TOLEDO","CD_GEOCMI":"41022"},{"NM_MICRO":"GUARAPUAVA","CD_GEOCMI":"41029"},{"NM_MICRO":"FOZ DO IGUAÇU","CD_GEOCMI":"41024"},{"NM_MICRO":"PONTA GROSSA","CD_GEOCMI":"41021"},{"NM_MICRO":"PARANAVAÍ","CD_GEOCMI":"41001"},{"NM_MICRO":"LAPA","CD_GEOCMI":"41036"},{"NM_MICRO":"FRANCISCO BELTRÃO","CD_GEOCMI":"41026"},{"NM_MICRO":"CAPANEMA","CD_GEOCMI":"41025"},{"NM_MICRO":"PATO BRANCO","CD_GEOCMI":"41027"},{"NM_MICRO":"PITANGA","CD_GEOCMI":"41028"},{"NM_MICRO":"UMUARAMA","CD_GEOCMI":"41002"},{"NM_MICRO":"CURITIBA","CD_GEOCMI":"41037"},{"NM_MICRO":"PORECATU","CD_GEOCMI":"41007"},{"NM_MICRO":"JACAREZINHO","CD_GEOCMI":"41016"},{"NM_MICRO":"MARINGÁ","CD_GEOCMI":"41009"},{"NM_MICRO":"SÃO MATEUS DO SUL","CD_GEOCMI":"41034"}] -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/ce_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/pe_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /data/svg/low/microrregioes/ro_microrregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /data/svg/low/microrregioes/ac_microrregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /test/validate-options.test.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | const validateOptions = require('../src/core/validate-options'); 4 | const assert = require('assert'); 5 | 6 | describe('ValidateOptions', () => { 7 | const listThrowsObjects = [1234, 'ceilandia', [], null, undefined, new Promise((resolve) => resolve(true))]; 8 | const listThrowsObjectsB = [1234, 'ceilandia', null, undefined]; 9 | 10 | it('validateUnidade', () => { 11 | assert.strictEqual(validateOptions({}).unidade, 'br'); 12 | assert.strictEqual(validateOptions({unidade: 'df'}).unidade, 'df'); 13 | assert.strictEqual(validateOptions({unidade: 31}).unidade, 'mg'); 14 | assert.strictEqual(validateOptions({unidade: 'BA'}).unidade, 'ba'); 15 | 16 | listThrowsObjects.forEach(item => { 17 | assert.throws(() => validateOptions({unidade: item}).unidade); 18 | }); 19 | }); 20 | 21 | it('validateRegiao', () => { 22 | assert.strictEqual(validateOptions({}).regiao, 'federacao'); 23 | assert.strictEqual(validateOptions({regiao: 'municipio'}).regiao, 'municipio'); 24 | 25 | listThrowsObjects.forEach(item => { 26 | assert.throws(() => validateOptions({regiao: item}).unidade); 27 | }); 28 | }); 29 | 30 | it('validateQualidade', () => { 31 | assert.strictEqual(validateOptions({}).qualidade, 'low'); 32 | assert.strictEqual(validateOptions({qualidade: 'low'}).qualidade, 'low'); 33 | 34 | listThrowsObjects.forEach(item => { 35 | assert.throws(() => validateOptions({qualidade: item}).qualidade); 36 | }); 37 | }); 38 | 39 | it('validateUnidadeData', () => { 40 | assert.ok(validateOptions({}).unidadeData instanceof Promise); 41 | assert.ok(validateOptions({unidadeData: []}).unidadeData instanceof Promise); 42 | assert.ok(validateOptions({unidadeData: new Promise(() => null)}).unidadeData instanceof Promise); 43 | 44 | listThrowsObjectsB.forEach(item => { 45 | assert.throws(() => validateOptions({unidadeData: item}).unidadeData); 46 | }); 47 | }); 48 | 49 | }); 50 | -------------------------------------------------------------------------------- /data/svg/low/microrregioes/to_microrregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/pa_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/ma_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/ms_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /data/json/municipios/ro_municipios.json: -------------------------------------------------------------------------------- 1 | [{"NM_MUNICIP":"URUPÁ","CD_GEOCMU":"1101708"},{"NM_MUNICIP":"OURO PRETO DO OESTE","CD_GEOCMU":"1100155"},{"NM_MUNICIP":"GOVERNADOR JORGE TEIXEIRA","CD_GEOCMU":"1101005"},{"NM_MUNICIP":"ROLIM DE MOURA","CD_GEOCMU":"1100288"},{"NM_MUNICIP":"CAMPO NOVO DE RONDÔNIA","CD_GEOCMU":"1100700"},{"NM_MUNICIP":"ESPIGÃO D'OESTE","CD_GEOCMU":"1100098"},{"NM_MUNICIP":"SÃO FRANCISCO DO GUAPORÉ","CD_GEOCMU":"1101492"},{"NM_MUNICIP":"RIO CRESPO","CD_GEOCMU":"1100262"},{"NM_MUNICIP":"NOVO HORIZONTE DO OESTE","CD_GEOCMU":"1100502"},{"NM_MUNICIP":"PARECIS","CD_GEOCMU":"1101450"},{"NM_MUNICIP":"SERINGUEIRAS","CD_GEOCMU":"1101500"},{"NM_MUNICIP":"CEREJEIRAS","CD_GEOCMU":"1100056"},{"NM_MUNICIP":"CABIXI","CD_GEOCMU":"1100031"},{"NM_MUNICIP":"JI-PARANÁ","CD_GEOCMU":"1100122"},{"NM_MUNICIP":"MIRANTE DA SERRA","CD_GEOCMU":"1101302"},{"NM_MUNICIP":"CANDEIAS DO JAMARI","CD_GEOCMU":"1100809"},{"NM_MUNICIP":"SÃO MIGUEL DO GUAPORÉ","CD_GEOCMU":"1100320"},{"NM_MUNICIP":"THEOBROMA","CD_GEOCMU":"1101609"},{"NM_MUNICIP":"CORUMBIARA","CD_GEOCMU":"1100072"},{"NM_MUNICIP":"CUJUBIM","CD_GEOCMU":"1100940"},{"NM_MUNICIP":"MINISTRO ANDREAZZA","CD_GEOCMU":"1101203"},{"NM_MUNICIP":"ALTA FLORESTA D'OESTE","CD_GEOCMU":"1100015"},{"NM_MUNICIP":"MONTE NEGRO","CD_GEOCMU":"1101401"},{"NM_MUNICIP":"ALVORADA D'OESTE","CD_GEOCMU":"1100346"},{"NM_MUNICIP":"ITAPUÃ DO OESTE","CD_GEOCMU":"1101104"},{"NM_MUNICIP":"ALTO PARAÍSO","CD_GEOCMU":"1100403"},{"NM_MUNICIP":"TEIXEIRÓPOLIS","CD_GEOCMU":"1101559"},{"NM_MUNICIP":"VALE DO ANARI","CD_GEOCMU":"1101757"},{"NM_MUNICIP":"PIMENTA BUENO","CD_GEOCMU":"1100189"},{"NM_MUNICIP":"NOVA MAMORÉ","CD_GEOCMU":"1100338"},{"NM_MUNICIP":"PIMENTEIRAS DO OESTE","CD_GEOCMU":"1101468"},{"NM_MUNICIP":"NOVA UNIÃO","CD_GEOCMU":"1101435"},{"NM_MUNICIP":"PRIMAVERA DE RONDÔNIA","CD_GEOCMU":"1101476"},{"NM_MUNICIP":"COSTA MARQUES","CD_GEOCMU":"1100080"},{"NM_MUNICIP":"ARIQUEMES","CD_GEOCMU":"1100023"},{"NM_MUNICIP":"VILHENA","CD_GEOCMU":"1100304"},{"NM_MUNICIP":"ALTO ALEGRE DOS PARECIS","CD_GEOCMU":"1100379"},{"NM_MUNICIP":"BURITIS","CD_GEOCMU":"1100452"},{"NM_MUNICIP":"PORTO VELHO","CD_GEOCMU":"1100205"},{"NM_MUNICIP":"JARU","CD_GEOCMU":"1100114"},{"NM_MUNICIP":"NOVA BRASILÂNDIA D'OESTE","CD_GEOCMU":"1100148"},{"NM_MUNICIP":"VALE DO PARAÍSO","CD_GEOCMU":"1101807"},{"NM_MUNICIP":"CHUPINGUAIA","CD_GEOCMU":"1100924"},{"NM_MUNICIP":"PRESIDENTE MÉDICI","CD_GEOCMU":"1100254"},{"NM_MUNICIP":"SANTA LUZIA D'OESTE","CD_GEOCMU":"1100296"},{"NM_MUNICIP":"COLORADO DO OESTE","CD_GEOCMU":"1100064"},{"NM_MUNICIP":"CASTANHEIRAS","CD_GEOCMU":"1100908"},{"NM_MUNICIP":"MACHADINHO D'OESTE","CD_GEOCMU":"1100130"},{"NM_MUNICIP":"GUAJARÁ-MIRIM","CD_GEOCMU":"1100106"},{"NM_MUNICIP":"SÃO FELIPE D'OESTE","CD_GEOCMU":"1101484"},{"NM_MUNICIP":"CACAULÂNDIA","CD_GEOCMU":"1100601"},{"NM_MUNICIP":"CACOAL","CD_GEOCMU":"1100049"}] -------------------------------------------------------------------------------- /data/svg/low/microrregioes/se_microrregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /data/json/microrregioes/sp_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"FRANCO DA ROCHA","CD_GEOCMI":"35058"},{"NM_MICRO":"RIBEIRÃO PRETO","CD_GEOCMI":"35014"},{"NM_MICRO":"TUPÃ","CD_GEOCMI":"35037"},{"NM_MICRO":"SÃO JOAQUIM DA BARRA","CD_GEOCMI":"35010"},{"NM_MICRO":"PIEDADE","CD_GEOCMI":"35045"},{"NM_MICRO":"BOTUCATU","CD_GEOCMI":"35023"},{"NM_MICRO":"AURIFLAMA","CD_GEOCMI":"35006"},{"NM_MICRO":"GUARULHOS","CD_GEOCMI":"35059"},{"NM_MICRO":"CATANDUVA","CD_GEOCMI":"35005"},{"NM_MICRO":"PIRACICABA","CD_GEOCMI":"35028"},{"NM_MICRO":"JALES","CD_GEOCMI":"35001"},{"NM_MICRO":"SÃO PAULO","CD_GEOCMI":"35061"},{"NM_MICRO":"BAURU","CD_GEOCMI":"35020"},{"NM_MICRO":"LIMEIRA","CD_GEOCMI":"35027"},{"NM_MICRO":"MOGI MIRIM","CD_GEOCMI":"35031"},{"NM_MICRO":"CAMPOS DO JORDÃO","CD_GEOCMI":"35049"},{"NM_MICRO":"CAMPINAS","CD_GEOCMI":"35032"},{"NM_MICRO":"SOROCABA","CD_GEOCMI":"35046"},{"NM_MICRO":"AMPARO","CD_GEOCMI":"35033"},{"NM_MICRO":"BARRETOS","CD_GEOCMI":"35009"},{"NM_MICRO":"ANDRADINA","CD_GEOCMI":"35016"},{"NM_MICRO":"ADAMANTINA","CD_GEOCMI":"35035"},{"NM_MICRO":"BRAGANÇA PAULISTA","CD_GEOCMI":"35048"},{"NM_MICRO":"LINS","CD_GEOCMI":"35019"},{"NM_MICRO":"RIO CLARO","CD_GEOCMI":"35026"},{"NM_MICRO":"SÃO JOSÉ DO RIO PRETO","CD_GEOCMI":"35004"},{"NM_MICRO":"BANANAL","CD_GEOCMI":"35052"},{"NM_MICRO":"ITAPEVA","CD_GEOCMI":"35041"},{"NM_MICRO":"PIRASSUNUNGA","CD_GEOCMI":"35029"},{"NM_MICRO":"CARAGUATATUBA","CD_GEOCMI":"35054"},{"NM_MICRO":"REGISTRO","CD_GEOCMI":"35055"},{"NM_MICRO":"AVARÉ","CD_GEOCMI":"35022"},{"NM_MICRO":"ITANHAÉM","CD_GEOCMI":"35056"},{"NM_MICRO":"SÃO JOSÉ DOS CAMPOS","CD_GEOCMI":"35050"},{"NM_MICRO":"MOGI DAS CRUZES","CD_GEOCMI":"35062"},{"NM_MICRO":"SÃO JOÃO DA BOA VISTA","CD_GEOCMI":"35030"},{"NM_MICRO":"JAÚ","CD_GEOCMI":"35021"},{"NM_MICRO":"PARAIBUNA/PARAITINGA","CD_GEOCMI":"35053"},{"NM_MICRO":"PRESIDENTE PRUDENTE","CD_GEOCMI":"35036"},{"NM_MICRO":"BIRIGUI","CD_GEOCMI":"35018"},{"NM_MICRO":"FRANCA","CD_GEOCMI":"35012"},{"NM_MICRO":"ITAPECERICA DA SERRA","CD_GEOCMI":"35060"},{"NM_MICRO":"ARAÇATUBA","CD_GEOCMI":"35017"},{"NM_MICRO":"ARARAQUARA","CD_GEOCMI":"35024"},{"NM_MICRO":"NOVO HORIZONTE","CD_GEOCMI":"35008"},{"NM_MICRO":"SANTOS","CD_GEOCMI":"35063"},{"NM_MICRO":"NHANDEARA","CD_GEOCMI":"35007"},{"NM_MICRO":"JABOTICABAL","CD_GEOCMI":"35013"},{"NM_MICRO":"VOTUPORANGA","CD_GEOCMI":"35003"},{"NM_MICRO":"ITAPETININGA","CD_GEOCMI":"35042"},{"NM_MICRO":"TATUÍ","CD_GEOCMI":"35043"},{"NM_MICRO":"ASSIS","CD_GEOCMI":"35039"},{"NM_MICRO":"OSASCO","CD_GEOCMI":"35057"},{"NM_MICRO":"SÃO CARLOS","CD_GEOCMI":"35025"},{"NM_MICRO":"ITUVERAVA","CD_GEOCMI":"35011"},{"NM_MICRO":"BATATAIS","CD_GEOCMI":"35015"},{"NM_MICRO":"GUARATINGUETÁ","CD_GEOCMI":"35051"},{"NM_MICRO":"MARÍLIA","CD_GEOCMI":"35038"},{"NM_MICRO":"FERNANDÓPOLIS","CD_GEOCMI":"35002"},{"NM_MICRO":"OURINHOS","CD_GEOCMI":"35040"},{"NM_MICRO":"DRACENA","CD_GEOCMI":"35034"},{"NM_MICRO":"JUNDIAÍ","CD_GEOCMI":"35047"},{"NM_MICRO":"CAPÃO BONITO","CD_GEOCMI":"35044"}] -------------------------------------------------------------------------------- /src/mapa-brasil.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | const validateOptions = require("./core/validate-options"); 4 | const constantes = require("./core/constantes"); 5 | const interactable = require("./core/interactable"); 6 | const mapaUi = require("./core/mapa-ui"); 7 | const mapaIo = require("./core/mapa-io"); 8 | 9 | if(!constantes.IS_NODE) { // not Node 10 | require("whatwg-fetch"); 11 | } 12 | 13 | let draw = (element, options) => { 14 | options = validateOptions(options); 15 | mapaUi.initDom(element); 16 | 17 | const pathJson = mapaIo.getPath(options, false); 18 | const pathSvg = mapaIo.getPath(options, true); 19 | 20 | Promise.all([ 21 | options.hasOwnProperty("dataFileLoader") ? options.dataFileLoader(false, pathJson) : mapaIo.loadDataFile(false, pathJson), 22 | options.hasOwnProperty("dataFileLoader") ? options.dataFileLoader(true, pathSvg) : mapaIo.loadDataFile(true, pathSvg), 23 | options.unidadeData 24 | ]).then(result => { 25 | // container 26 | element.getElementsByClassName("svg-container")[0].innerHTML = result[0]; 27 | 28 | // interactable 29 | interactable(element); 30 | 31 | // SVG 32 | let svgEl = element.getElementsByClassName("svg-container")[0].getElementsByTagName("svg")[0]; 33 | 34 | // paths 35 | let listPath = svgEl.getElementsByTagName("g")[0].getElementsByTagName("path"); 36 | for (let i = 0; i < listPath.length; i++) { 37 | const codIbge = parseInt(result[1][i][constantes.codIbgeAttr[options.regiao]]); 38 | const nomUnidade = result[1][i][constantes.nomeUnidadeAttr[options.regiao]]; 39 | 40 | let unidadeData = result[2].filter(item => item.codIbge == codIbge || (codIbge + "").substr(0, 6) == item.codIbge); 41 | unidadeData = unidadeData.length > 0 ? unidadeData[0] : {}; 42 | 43 | listPath[i].style.fill = (unidadeData.hasOwnProperty("fillColor") ? unidadeData.fillColor : options.defaultFillColor); 44 | listPath[i].style.stroke = (unidadeData.hasOwnProperty("strokeColor") ? unidadeData.strokeColor : options.defaultStrokeColor); 45 | listPath[i].style.strokeWidth = (unidadeData.hasOwnProperty("strokeWidth") ? unidadeData.strokeWidth : 1); 46 | listPath[i].innerHTML = `${nomUnidade}`; 47 | 48 | if(options.hasOwnProperty("onClick")){ 49 | listPath[i].onclick = (evt) => { 50 | evt.preventDefault(); 51 | options.onClick({codIbge: codIbge, nomUnidade: nomUnidade}); 52 | } 53 | } 54 | } 55 | 56 | // trigger 57 | if(options.hasOwnProperty("onDrawComplete")){ 58 | options.onDrawComplete(element, result[1]); 59 | } 60 | 61 | // close-loader 62 | mapaUi.closeLoader(element); 63 | }).catch((e) => { 64 | console.error(e); 65 | mapaUi.closeLoader(element); 66 | }); 67 | }; 68 | 69 | module.exports = (element, options) => { 70 | draw(element, options); 71 | }; 72 | -------------------------------------------------------------------------------- /data/svg/low/microrregioes/pi_microrregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /data/json/microrregioes/mg_microrregioes.json: -------------------------------------------------------------------------------- 1 | [{"NM_MICRO":"LAVRAS","CD_GEOCMI":"31057"},{"NM_MICRO":"ARAÇUAÍ","CD_GEOCMI":"31012"},{"NM_MICRO":"ITUIUTABA","CD_GEOCMI":"31017"},{"NM_MICRO":"ITAGUARA","CD_GEOCMI":"31032"},{"NM_MICRO":"PATROCÍNIO","CD_GEOCMI":"31019"},{"NM_MICRO":"NANUQUE","CD_GEOCMI":"31016"},{"NM_MICRO":"UBÁ","CD_GEOCMI":"31064"},{"NM_MICRO":"ANDRELÂNDIA","CD_GEOCMI":"31055"},{"NM_MICRO":"FORMIGA","CD_GEOCMI":"31044"},{"NM_MICRO":"CURVELO","CD_GEOCMI":"31025"},{"NM_MICRO":"BELO HORIZONTE","CD_GEOCMI":"31030"},{"NM_MICRO":"VARGINHA","CD_GEOCMI":"31050"},{"NM_MICRO":"TRÊS MARIAS","CD_GEOCMI":"31024"},{"NM_MICRO":"SÃO JOÃO DEL REI","CD_GEOCMI":"31058"},{"NM_MICRO":"TEÓFILO OTONI","CD_GEOCMI":"31015"},{"NM_MICRO":"MANHUAÇU","CD_GEOCMI":"31061"},{"NM_MICRO":"ALMENARA","CD_GEOCMI":"31014"},{"NM_MICRO":"GOVERNADOR VALADARES","CD_GEOCMI":"31037"},{"NM_MICRO":"SÃO LOURENÇO","CD_GEOCMI":"31054"},{"NM_MICRO":"BARBACENA","CD_GEOCMI":"31059"},{"NM_MICRO":"SÃO SEBASTIÃO DO PARAÍSO","CD_GEOCMI":"31048"},{"NM_MICRO":"ITABIRA","CD_GEOCMI":"31031"},{"NM_MICRO":"SALINAS","CD_GEOCMI":"31005"},{"NM_MICRO":"CONSELHEIRO LAFAIETE","CD_GEOCMI":"31034"},{"NM_MICRO":"PEÇANHA","CD_GEOCMI":"31036"},{"NM_MICRO":"CATAGUASES","CD_GEOCMI":"31066"},{"NM_MICRO":"PIRAPORA","CD_GEOCMI":"31006"},{"NM_MICRO":"OURO PRETO","CD_GEOCMI":"31033"},{"NM_MICRO":"POÇOS DE CALDAS","CD_GEOCMI":"31051"},{"NM_MICRO":"PATOS DE MINAS","CD_GEOCMI":"31020"},{"NM_MICRO":"ITAJUBÁ","CD_GEOCMI":"31056"},{"NM_MICRO":"MANTENA","CD_GEOCMI":"31038"},{"NM_MICRO":"ARAXÁ","CD_GEOCMI":"31023"},{"NM_MICRO":"BOCAIÚVA","CD_GEOCMI":"31009"},{"NM_MICRO":"CAMPO BELO","CD_GEOCMI":"31045"},{"NM_MICRO":"JANUÁRIA","CD_GEOCMI":"31003"},{"NM_MICRO":"GUANHÃES","CD_GEOCMI":"31035"},{"NM_MICRO":"SANTA RITA DO SAPUCAÍ","CD_GEOCMI":"31053"},{"NM_MICRO":"CARATINGA","CD_GEOCMI":"31040"},{"NM_MICRO":"FRUTAL","CD_GEOCMI":"31021"},{"NM_MICRO":"VIÇOSA","CD_GEOCMI":"31062"},{"NM_MICRO":"DIVINÓPOLIS","CD_GEOCMI":"31043"},{"NM_MICRO":"UBERLÂNDIA","CD_GEOCMI":"31018"},{"NM_MICRO":"OLIVEIRA","CD_GEOCMI":"31046"},{"NM_MICRO":"SETE LAGOAS","CD_GEOCMI":"31027"},{"NM_MICRO":"UNAÍ","CD_GEOCMI":"31001"},{"NM_MICRO":"PARÁ DE MINAS","CD_GEOCMI":"31029"},{"NM_MICRO":"MONTES CLAROS","CD_GEOCMI":"31007"},{"NM_MICRO":"ALFENAS","CD_GEOCMI":"31049"},{"NM_MICRO":"JUIZ DE FORA","CD_GEOCMI":"31065"},{"NM_MICRO":"BOM DESPACHO","CD_GEOCMI":"31026"},{"NM_MICRO":"PASSOS","CD_GEOCMI":"31047"},{"NM_MICRO":"POUSO ALEGRE","CD_GEOCMI":"31052"},{"NM_MICRO":"JANAÚBA","CD_GEOCMI":"31004"},{"NM_MICRO":"DIAMANTINA","CD_GEOCMI":"31010"},{"NM_MICRO":"PEDRA AZUL","CD_GEOCMI":"31013"},{"NM_MICRO":"CAPELINHA","CD_GEOCMI":"31011"},{"NM_MICRO":"AIMORÉS","CD_GEOCMI":"31041"},{"NM_MICRO":"PONTE NOVA","CD_GEOCMI":"31060"},{"NM_MICRO":"MURIAÉ","CD_GEOCMI":"31063"},{"NM_MICRO":"PIUÍ","CD_GEOCMI":"31042"},{"NM_MICRO":"CONCEIÇÃO DO MATO DENTRO","CD_GEOCMI":"31028"},{"NM_MICRO":"UBERABA","CD_GEOCMI":"31022"},{"NM_MICRO":"IPATINGA","CD_GEOCMI":"31039"},{"NM_MICRO":"PARACATU","CD_GEOCMI":"31002"},{"NM_MICRO":"GRÃO MOGOL","CD_GEOCMI":"31008"}] -------------------------------------------------------------------------------- /src/core/constantes.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | module.exports = { 4 | IS_NODE: (typeof window === "undefined"), 5 | listUfSigla: [ 6 | "br", 7 | "ac", "al", "am", "ap", 8 | "ba", "ce", "df", "es", 9 | "go", "ma", "mg", "ms", 10 | "mt", "pa", "pb", "pe", 11 | "pi", "pr", "rj", "rn", 12 | "ro", "rr", "rs", "sc", 13 | "se", "sp", "to" 14 | ], 15 | 16 | codIbgeEstadoToSigla: { 17 | 12: "ac", 13: "am", 14: "rr", 11: "ro", 18 | 15: "pa", 16: "ap", 17: "to", 21: "ma", 19 | 22: "pi", 23: "ce", 24: "rn", 25: "pb", 20 | 26: "pe", 27: "al", 28: "se", 29: "ba", 21 | 31: "mg", 32: "es", 33: "rj", 35: "sp", 22 | 41: "pr", 42: "sc", 43: "rs", 50: "ms", 23 | 51: "mt", 52: "go", 53: "df", 24 | }, 25 | 26 | codIbgeAttr: { 27 | "federacao": "CD_GEOCUF", 28 | "mesorregiao": "CD_GEOCME", 29 | "microrregiao": "CD_GEOCMI", 30 | "municipio": "CD_GEOCMU", 31 | }, 32 | 33 | nomeUnidadeAttr: { 34 | "federacao": "NM_ESTADO", 35 | "mesorregiao": "NM_MESO", 36 | "microrregiao": "NM_MICRO", 37 | "municipio": "NM_MUNICIP", 38 | }, 39 | 40 | mapPath: { 41 | "mesorregiao": "mesorregioes", 42 | "microrregiao": "microrregioes", 43 | "municipio": "municipios", 44 | "federacao": "federacao", 45 | }, 46 | 47 | css: ` 48 | .mapa-brasil .loader{ 49 | position: absolute; 50 | z-index: 3000; 51 | top: calc(50% - 7px); 52 | left: calc(50% - 7px); 53 | width: 14px; 54 | height: 14px; 55 | border: solid 2px transparent; 56 | border-top-color: #29d; 57 | border-left-color: #29d; 58 | border-radius: 10px; 59 | -webkit-animation: pace-spinner 400ms linear infinite; 60 | -moz-animation: pace-spinner 400ms linear infinite; 61 | -ms-animation: pace-spinner 400ms linear infinite; 62 | -o-animation: pace-spinner 400ms linear infinite; 63 | animation: pace-spinner 400ms linear infinite; 64 | } 65 | 66 | @-webkit-keyframes pace-spinner { 67 | 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } 68 | 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } 69 | } 70 | @-moz-keyframes pace-spinner { 71 | 0% { -moz-transform: rotate(0deg); transform: rotate(0deg); } 72 | 100% { -moz-transform: rotate(360deg); transform: rotate(360deg); } 73 | } 74 | @-o-keyframes pace-spinner { 75 | 0% { -o-transform: rotate(0deg); transform: rotate(0deg); } 76 | 100% { -o-transform: rotate(360deg); transform: rotate(360deg); } 77 | } 78 | @-ms-keyframes pace-spinner { 79 | 0% { -ms-transform: rotate(0deg); transform: rotate(0deg); } 80 | 100% { -ms-transform: rotate(360deg); transform: rotate(360deg); } 81 | } 82 | @keyframes pace-spinner { 83 | 0% { transform: rotate(0deg); transform: rotate(0deg); } 84 | 100% { transform: rotate(360deg); transform: rotate(360deg); } 85 | } 86 | ` 87 | }; 88 | -------------------------------------------------------------------------------- /src/core/validate-options.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | const constantes = require("./constantes"); 4 | 5 | // unidade 6 | let validateUnidade = (unidade) => { 7 | if((typeof unidade) != "number" && (typeof unidade) != "string"){ 8 | throw new Error("options.unidade: esperado {number} ou {string}"); 9 | } 10 | 11 | if(Number.isInteger(unidade)){ 12 | unidade = constantes.codIbgeEstadoToSigla[unidade]; 13 | }else{ 14 | unidade = unidade.toLowerCase(); 15 | } 16 | 17 | if(!unidade || constantes.listUfSigla.indexOf(unidade) === -1){ 18 | throw new Error(`options.unidade: "${unidade}" => valor invalido`); 19 | } 20 | 21 | return unidade; 22 | }; 23 | 24 | // regiao 25 | let validateRegiao = (regiao) => { 26 | if((typeof regiao) != "string"){ 27 | throw new Error("options.regiao: esperado {string}"); 28 | } 29 | 30 | if(!constantes.mapPath[regiao]){ 31 | throw new Error(`options.regiao: "${regiao}" => valor invalido`); 32 | } 33 | 34 | return regiao; 35 | }; 36 | 37 | // qualidade 38 | let validateQualidade = (qualidade) => { 39 | if((typeof qualidade) != "string"){ 40 | throw new Error("options.qualidade: esperado {string}"); 41 | } 42 | 43 | if(qualidade !== "low"){ 44 | throw new Error(`options.qualidade: "${qualidade}" => valor invalido`); 45 | } 46 | 47 | return qualidade; 48 | }; 49 | 50 | // unidadeData 51 | let validateUnidadeData = (unidadeData) => { 52 | if(!(unidadeData instanceof Array) && !(unidadeData instanceof Promise)){ 53 | throw new Error("options.unidadeData: esperado {Array} ou {Promise}"); 54 | } 55 | }; 56 | 57 | module.exports = (options) => { 58 | // check 59 | if (!options.hasOwnProperty("dataPath")) { 60 | options.dataPath = "/data"; 61 | } 62 | 63 | if (!options.hasOwnProperty("unidade")) { 64 | options.unidade = "br"; 65 | }else{ 66 | options.unidade = validateUnidade(options.unidade); 67 | } 68 | 69 | if (!options.hasOwnProperty("regiao")) { 70 | options.regiao = "federacao"; 71 | }else{ 72 | options.regiao = validateRegiao(options.regiao); 73 | } 74 | 75 | if (!options.hasOwnProperty("qualidade")) { 76 | options.qualidade = "low"; 77 | }else{ 78 | options.qualidade = validateQualidade(options.qualidade); 79 | } 80 | 81 | if (!options.hasOwnProperty("defaultFillColor")) { 82 | options.defaultFillColor = "#FFF3E3"; 83 | } 84 | 85 | if (!options.hasOwnProperty("defaultStrokeColor")) { 86 | options.defaultStrokeColor = "#1F1A17"; 87 | } 88 | 89 | if (!options.hasOwnProperty("unidadeData")) { 90 | options.unidadeData = new Promise((resolve => { 91 | resolve([]); 92 | })); 93 | }else{ 94 | validateUnidadeData(options.unidadeData); 95 | 96 | if(options.unidadeData instanceof Array){ 97 | options.unidadeData = new Promise((resolve => { 98 | resolve(options.unidadeData); 99 | })); 100 | } 101 | } 102 | 103 | return options; 104 | }; 105 | -------------------------------------------------------------------------------- /data/json/municipios/am_municipios.json: -------------------------------------------------------------------------------- 1 | [{"NM_MUNICIP":"BARCELOS","CD_GEOCMU":"1300409"},{"NM_MUNICIP":"BORBA","CD_GEOCMU":"1300805"},{"NM_MUNICIP":"JUTAÍ","CD_GEOCMU":"1302306"},{"NM_MUNICIP":"PARINTINS","CD_GEOCMU":"1303403"},{"NM_MUNICIP":"BOCA DO ACRE","CD_GEOCMU":"1300706"},{"NM_MUNICIP":"CAREIRO","CD_GEOCMU":"1301100"},{"NM_MUNICIP":"URUCARÁ","CD_GEOCMU":"1304302"},{"NM_MUNICIP":"TABATINGA","CD_GEOCMU":"1304062"},{"NM_MUNICIP":"MANACAPURU","CD_GEOCMU":"1302504"},{"NM_MUNICIP":"ATALAIA DO NORTE","CD_GEOCMU":"1300201"},{"NM_MUNICIP":"PAUINI","CD_GEOCMU":"1303502"},{"NM_MUNICIP":"SÃO SEBASTIÃO DO UATUMÃ","CD_GEOCMU":"1303957"},{"NM_MUNICIP":"MANICORÉ","CD_GEOCMU":"1302702"},{"NM_MUNICIP":"LÁBREA","CD_GEOCMU":"1302405"},{"NM_MUNICIP":"URUCURITUBA","CD_GEOCMU":"1304401"},{"NM_MUNICIP":"ANAMÃ","CD_GEOCMU":"1300086"},{"NM_MUNICIP":"MARAÃ","CD_GEOCMU":"1302801"},{"NM_MUNICIP":"APUÍ","CD_GEOCMU":"1300144"},{"NM_MUNICIP":"BERURI","CD_GEOCMU":"1300631"},{"NM_MUNICIP":"MANAUS","CD_GEOCMU":"1302603"},{"NM_MUNICIP":"CARAUARI","CD_GEOCMU":"1301001"},{"NM_MUNICIP":"IPIXUNA","CD_GEOCMU":"1301803"},{"NM_MUNICIP":"AUTAZES","CD_GEOCMU":"1300300"},{"NM_MUNICIP":"TONANTINS","CD_GEOCMU":"1304237"},{"NM_MUNICIP":"NOVO ARIPUANÃ","CD_GEOCMU":"1303304"},{"NM_MUNICIP":"GUAJARÁ","CD_GEOCMU":"1301654"},{"NM_MUNICIP":"MANAQUIRI","CD_GEOCMU":"1302553"},{"NM_MUNICIP":"PRESIDENTE FIGUEIREDO","CD_GEOCMU":"1303536"},{"NM_MUNICIP":"UARINI","CD_GEOCMU":"1304260"},{"NM_MUNICIP":"CAREIRO DA VÁRZEA","CD_GEOCMU":"1301159"},{"NM_MUNICIP":"NOVO AIRÃO","CD_GEOCMU":"1303205"},{"NM_MUNICIP":"AMATURÁ","CD_GEOCMU":"1300060"},{"NM_MUNICIP":"HUMAITÁ","CD_GEOCMU":"1301704"},{"NM_MUNICIP":"SANTA ISABEL DO RIO NEGRO","CD_GEOCMU":"1303601"},{"NM_MUNICIP":"BARREIRINHA","CD_GEOCMU":"1300508"},{"NM_MUNICIP":"COARI","CD_GEOCMU":"1301209"},{"NM_MUNICIP":"CANUTAMA","CD_GEOCMU":"1300904"},{"NM_MUNICIP":"ITAMARATI","CD_GEOCMU":"1301951"},{"NM_MUNICIP":"ENVIRA","CD_GEOCMU":"1301506"},{"NM_MUNICIP":"SÃO PAULO DE OLIVENÇA","CD_GEOCMU":"1303908"},{"NM_MUNICIP":"TEFÉ","CD_GEOCMU":"1304203"},{"NM_MUNICIP":"SILVES","CD_GEOCMU":"1304005"},{"NM_MUNICIP":"TAPAUÁ","CD_GEOCMU":"1304104"},{"NM_MUNICIP":"JAPURÁ","CD_GEOCMU":"1302108"},{"NM_MUNICIP":"NHAMUNDÁ","CD_GEOCMU":"1303007"},{"NM_MUNICIP":"RIO PRETO DA EVA","CD_GEOCMU":"1303569"},{"NM_MUNICIP":"NOVA OLINDA DO NORTE","CD_GEOCMU":"1303106"},{"NM_MUNICIP":"FONTE BOA","CD_GEOCMU":"1301605"},{"NM_MUNICIP":"ITACOATIARA","CD_GEOCMU":"1301902"},{"NM_MUNICIP":"CAAPIRANGA","CD_GEOCMU":"1300839"},{"NM_MUNICIP":"ITAPIRANGA","CD_GEOCMU":"1302009"},{"NM_MUNICIP":"BENJAMIN CONSTANT","CD_GEOCMU":"1300607"},{"NM_MUNICIP":"MAUÉS","CD_GEOCMU":"1302900"},{"NM_MUNICIP":"BOA VISTA DO RAMOS","CD_GEOCMU":"1300680"},{"NM_MUNICIP":"ALVARÃES","CD_GEOCMU":"1300029"},{"NM_MUNICIP":"ANORI","CD_GEOCMU":"1300102"},{"NM_MUNICIP":"CODAJÁS","CD_GEOCMU":"1301308"},{"NM_MUNICIP":"SANTO ANTÔNIO DO IÇÁ","CD_GEOCMU":"1303700"},{"NM_MUNICIP":"IRANDUBA","CD_GEOCMU":"1301852"},{"NM_MUNICIP":"SÃO GABRIEL DA CACHOEIRA","CD_GEOCMU":"1303809"},{"NM_MUNICIP":"EIRUNEPÉ","CD_GEOCMU":"1301407"},{"NM_MUNICIP":"JURUÁ","CD_GEOCMU":"1302207"}] -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/go_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /data/svg/low/microrregioes/al_microrregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /data/svg/low/microrregioes/rn_microrregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/es_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /data/svg/low/municipios/rr_municipios.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/am_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /test/data.test.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | const assert = require('assert'); 4 | const fs = require('fs'); 5 | const xmlJs = require('xml-js'); 6 | const constantes = require('../src/core/constantes'); 7 | 8 | describe('JsonEstrutura', () => { 9 | it('mesorregiao', () => { 10 | constantes.listUfSigla.forEach((sgl) => { 11 | let filename = sgl === 'br' ? 'br_mesorregioes.json' : sgl + '_mesorregioes.json'; 12 | let json = JSON.parse(fs.readFileSync('data/json/mesorregioes/' + filename).toString()); 13 | 14 | assert.ok(json.length); 15 | 16 | json.forEach(item => { 17 | assert.ok(item.hasOwnProperty("NM_MESO")); 18 | assert.ok(item.hasOwnProperty("CD_GEOCME")); 19 | }); 20 | }); 21 | }); 22 | 23 | it('microrregiao', () => { 24 | constantes.listUfSigla.forEach((sgl) => { 25 | let filename = sgl === 'br' ? 'br_microrregioes.json' : sgl + '_microrregioes.json'; 26 | let json = JSON.parse(fs.readFileSync('data/json/microrregioes/' + filename).toString()); 27 | 28 | assert.ok(json.length); 29 | 30 | json.forEach(item => { 31 | assert.ok(item.hasOwnProperty("NM_MICRO")); 32 | assert.ok(item.hasOwnProperty("CD_GEOCMI")); 33 | }); 34 | }); 35 | }); 36 | 37 | it('municipio', () => { 38 | constantes.listUfSigla.forEach((sgl) => { 39 | let filename = sgl === 'br' ? 'br_municipios.json' : sgl + '_municipios.json'; 40 | let json = JSON.parse(fs.readFileSync('data/json/municipios/' + filename).toString()); 41 | 42 | assert.ok(json.length); 43 | 44 | json.forEach(item => { 45 | assert.ok(item.hasOwnProperty("NM_MUNICIP")); 46 | assert.ok(item.hasOwnProperty("CD_GEOCMU")); 47 | }); 48 | }); 49 | }); 50 | 51 | it('unidadeFederacao', () => { 52 | let filename = 'br_unidades_da_federacao.json'; 53 | let json = JSON.parse(fs.readFileSync('data/json/federacao/' + filename).toString()); 54 | 55 | assert.ok(json.length); 56 | 57 | json.forEach(item => { 58 | assert.ok(item.hasOwnProperty("NM_ESTADO")); 59 | assert.ok(item.hasOwnProperty("NM_REGIAO")); 60 | assert.ok(item.hasOwnProperty("CD_GEOCUF")); 61 | }); 62 | }); 63 | }); 64 | 65 | describe('SvgEstrutura', () => { 66 | let fnCompare = (filename) => { 67 | // SVG 68 | let svgRaw = fs.readFileSync('data/svg/low/' + filename + '.svg').toString(); 69 | let svgJson = JSON.parse(xmlJs.xml2json(svgRaw, {compact: true, spaces: 2})); 70 | 71 | // JSON 72 | let json = JSON.parse(fs.readFileSync('data/json/' + filename + '.json').toString()); 73 | 74 | // COMPARE 75 | let path = svgJson['svg']['g']['path']; 76 | assert.strictEqual(path instanceof Array ? path.length : 1, json.length); 77 | }; 78 | 79 | it('mesorregiao', () => { 80 | constantes.listUfSigla.forEach((sgl) => { 81 | fnCompare('mesorregioes/' + sgl + '_mesorregioes'); 82 | }); 83 | }); 84 | 85 | it('microrregiao', () => { 86 | constantes.listUfSigla.forEach((sgl) => { 87 | fnCompare('microrregioes/' + sgl + '_microrregioes'); 88 | }); 89 | }); 90 | 91 | it('municipio', () => { 92 | constantes.listUfSigla.forEach((sgl) => { 93 | fnCompare('municipios/' + sgl + '_municipios'); 94 | }); 95 | }); 96 | 97 | it('unidadeFederacao', () => { 98 | let filename = 'federacao/br_unidades_da_federacao'; 99 | fnCompare(filename); 100 | }); 101 | }); 102 | -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/mt_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /data/svg/low/microrregioes/pb_microrregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/pr_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /data/json/municipios/se_municipios.json: -------------------------------------------------------------------------------- 1 | [{"NM_MUNICIP":"GARARU","CD_GEOCMU":"2802403"},{"NM_MUNICIP":"MALHADOR","CD_GEOCMU":"2803906"},{"NM_MUNICIP":"ITAPORANGA D'AJUDA","CD_GEOCMU":"2803203"},{"NM_MUNICIP":"DIVINA PASTORA","CD_GEOCMU":"2802007"},{"NM_MUNICIP":"ROSÁRIO DO CATETE","CD_GEOCMU":"2806107"},{"NM_MUNICIP":"SÃO MIGUEL DO ALEIXO","CD_GEOCMU":"2807006"},{"NM_MUNICIP":"UMBAÚBA","CD_GEOCMU":"2807600"},{"NM_MUNICIP":"RIBEIRÓPOLIS","CD_GEOCMU":"2806008"},{"NM_MUNICIP":"BARRA DOS COQUEIROS","CD_GEOCMU":"2800605"},{"NM_MUNICIP":"NOSSA SENHORA APARECIDA","CD_GEOCMU":"2804458"},{"NM_MUNICIP":"SANTA ROSA DE LIMA","CD_GEOCMU":"2806503"},{"NM_MUNICIP":"ITABAIANINHA","CD_GEOCMU":"2803005"},{"NM_MUNICIP":"SÃO DOMINGOS","CD_GEOCMU":"2806800"},{"NM_MUNICIP":"SANTO AMARO DAS BROTAS","CD_GEOCMU":"2806602"},{"NM_MUNICIP":"MONTE ALEGRE DE SERGIPE","CD_GEOCMU":"2804201"},{"NM_MUNICIP":"RIACHUELO","CD_GEOCMU":"2805901"},{"NM_MUNICIP":"SALGADO","CD_GEOCMU":"2806206"},{"NM_MUNICIP":"CEDRO DE SÃO JOÃO","CD_GEOCMU":"2801603"},{"NM_MUNICIP":"SANTA LUZIA DO ITANHY","CD_GEOCMU":"2806305"},{"NM_MUNICIP":"MURIBECA","CD_GEOCMU":"2804300"},{"NM_MUNICIP":"AREIA BRANCA","CD_GEOCMU":"2800506"},{"NM_MUNICIP":"NOSSA SENHORA DE LOURDES","CD_GEOCMU":"2804706"},{"NM_MUNICIP":"CAMPO DO BRITO","CD_GEOCMU":"2801009"},{"NM_MUNICIP":"MALHADA DOS BOIS","CD_GEOCMU":"2803807"},{"NM_MUNICIP":"TOMAR DO GERU","CD_GEOCMU":"2807501"},{"NM_MUNICIP":"TELHA","CD_GEOCMU":"2807303"},{"NM_MUNICIP":"JAPOATÃ","CD_GEOCMU":"2803401"},{"NM_MUNICIP":"PROPRIÁ","CD_GEOCMU":"2805703"},{"NM_MUNICIP":"CRISTINÁPOLIS","CD_GEOCMU":"2801702"},{"NM_MUNICIP":"ITABAIANA","CD_GEOCMU":"2802908"},{"NM_MUNICIP":"LARANJEIRAS","CD_GEOCMU":"2803609"},{"NM_MUNICIP":"CANINDÉ DE SÃO FRANCISCO","CD_GEOCMU":"2801207"},{"NM_MUNICIP":"ILHA DAS FLORES","CD_GEOCMU":"2802700"},{"NM_MUNICIP":"PORTO DA FOLHA","CD_GEOCMU":"2805604"},{"NM_MUNICIP":"MARUIM","CD_GEOCMU":"2804003"},{"NM_MUNICIP":"NOSSA SENHORA DAS DORES","CD_GEOCMU":"2804607"},{"NM_MUNICIP":"POÇO REDONDO","CD_GEOCMU":"2805406"},{"NM_MUNICIP":"CUMBE","CD_GEOCMU":"2801900"},{"NM_MUNICIP":"BOQUIM","CD_GEOCMU":"2800670"},{"NM_MUNICIP":"RIACHÃO DO DANTAS","CD_GEOCMU":"2805802"},{"NM_MUNICIP":"CAPELA","CD_GEOCMU":"2801306"},{"NM_MUNICIP":"AQUIDABÃ","CD_GEOCMU":"2800209"},{"NM_MUNICIP":"SIRIRI","CD_GEOCMU":"2807204"},{"NM_MUNICIP":"ARACAJU","CD_GEOCMU":"2800308"},{"NM_MUNICIP":"SÃO CRISTÓVÃO","CD_GEOCMU":"2806701"},{"NM_MUNICIP":"PACATUBA","CD_GEOCMU":"2804904"},{"NM_MUNICIP":"PEDRA MOLE","CD_GEOCMU":"2805000"},{"NM_MUNICIP":"PEDRINHAS","CD_GEOCMU":"2805109"},{"NM_MUNICIP":"SANTANA DO SÃO FRANCISCO","CD_GEOCMU":"2806404"},{"NM_MUNICIP":"MACAMBIRA","CD_GEOCMU":"2803708"},{"NM_MUNICIP":"GRACHO CARDOSO","CD_GEOCMU":"2802601"},{"NM_MUNICIP":"NEÓPOLIS","CD_GEOCMU":"2804409"},{"NM_MUNICIP":"ITABI","CD_GEOCMU":"2803104"},{"NM_MUNICIP":"ESTÂNCIA","CD_GEOCMU":"2802106"},{"NM_MUNICIP":"LAGARTO","CD_GEOCMU":"2803500"},{"NM_MUNICIP":"SÃO FRANCISCO","CD_GEOCMU":"2806909"},{"NM_MUNICIP":"MOITA BONITA","CD_GEOCMU":"2804102"},{"NM_MUNICIP":"GENERAL MAYNARD","CD_GEOCMU":"2802502"},{"NM_MUNICIP":"POÇO VERDE","CD_GEOCMU":"2805505"},{"NM_MUNICIP":"PINHÃO","CD_GEOCMU":"2805208"},{"NM_MUNICIP":"TOBIAS BARRETO","CD_GEOCMU":"2807402"},{"NM_MUNICIP":"AMPARO DE SÃO FRANCISCO","CD_GEOCMU":"2800100"},{"NM_MUNICIP":"CARMÓPOLIS","CD_GEOCMU":"2801504"},{"NM_MUNICIP":"CARIRA","CD_GEOCMU":"2801405"},{"NM_MUNICIP":"NOSSA SENHORA DO SOCORRO","CD_GEOCMU":"2804805"},{"NM_MUNICIP":"BREJO GRANDE","CD_GEOCMU":"2800704"},{"NM_MUNICIP":"CANHOBA","CD_GEOCMU":"2801108"},{"NM_MUNICIP":"NOSSA SENHORA DA GLÓRIA","CD_GEOCMU":"2804508"},{"NM_MUNICIP":"SIMÃO DIAS","CD_GEOCMU":"2807105"},{"NM_MUNICIP":"FEIRA NOVA","CD_GEOCMU":"2802205"},{"NM_MUNICIP":"PIRAMBU","CD_GEOCMU":"2805307"},{"NM_MUNICIP":"INDIAROBA","CD_GEOCMU":"2802809"},{"NM_MUNICIP":"FREI PAULO","CD_GEOCMU":"2802304"},{"NM_MUNICIP":"ARAUÁ","CD_GEOCMU":"2800407"},{"NM_MUNICIP":"JAPARATUBA","CD_GEOCMU":"2803302"}] -------------------------------------------------------------------------------- /data/json/municipios/ms_municipios.json: -------------------------------------------------------------------------------- 1 | [{"NM_MUNICIP":"INOCÊNCIA","CD_GEOCMU":"5004403"},{"NM_MUNICIP":"LAGUNA CARAPÃ","CD_GEOCMU":"5005251"},{"NM_MUNICIP":"NIOAQUE","CD_GEOCMU":"5005806"},{"NM_MUNICIP":"DOURADOS","CD_GEOCMU":"5003702"},{"NM_MUNICIP":"NOVA ANDRADINA","CD_GEOCMU":"5006200"},{"NM_MUNICIP":"SIDROLÂNDIA","CD_GEOCMU":"5007901"},{"NM_MUNICIP":"ROCHEDO","CD_GEOCMU":"5007505"},{"NM_MUNICIP":"PONTA PORÃ","CD_GEOCMU":"5006606"},{"NM_MUNICIP":"ANASTÁCIO","CD_GEOCMU":"5000708"},{"NM_MUNICIP":"SONORA","CD_GEOCMU":"5007935"},{"NM_MUNICIP":"JATEÍ","CD_GEOCMU":"5005103"},{"NM_MUNICIP":"JARAGUARI","CD_GEOCMU":"5004908"},{"NM_MUNICIP":"VICENTINA","CD_GEOCMU":"5008404"},{"NM_MUNICIP":"RIO NEGRO","CD_GEOCMU":"5007307"},{"NM_MUNICIP":"PEDRO GOMES","CD_GEOCMU":"5006408"},{"NM_MUNICIP":"SETE QUEDAS","CD_GEOCMU":"5007703"},{"NM_MUNICIP":"DOIS IRMÃOS DO BURITI","CD_GEOCMU":"5003488"},{"NM_MUNICIP":"LADÁRIO","CD_GEOCMU":"5005202"},{"NM_MUNICIP":"COXIM","CD_GEOCMU":"5003306"},{"NM_MUNICIP":"CAMAPUÃ","CD_GEOCMU":"5002605"},{"NM_MUNICIP":"CORUMBÁ","CD_GEOCMU":"5003207"},{"NM_MUNICIP":"ANAURILÂNDIA","CD_GEOCMU":"5000807"},{"NM_MUNICIP":"ANTÔNIO JOÃO","CD_GEOCMU":"5000906"},{"NM_MUNICIP":"JARDIM","CD_GEOCMU":"5005004"},{"NM_MUNICIP":"CORGUINHO","CD_GEOCMU":"5003108"},{"NM_MUNICIP":"TERENOS","CD_GEOCMU":"5008008"},{"NM_MUNICIP":"MIRANDA","CD_GEOCMU":"5005608"},{"NM_MUNICIP":"SÃO GABRIEL DO OESTE","CD_GEOCMU":"5007695"},{"NM_MUNICIP":"BRASILÂNDIA","CD_GEOCMU":"5002308"},{"NM_MUNICIP":"RIBAS DO RIO PARDO","CD_GEOCMU":"5007109"},{"NM_MUNICIP":"DOURADINA","CD_GEOCMU":"5003504"},{"NM_MUNICIP":"RIO VERDE DE MATO GROSSO","CD_GEOCMU":"5007406"},{"NM_MUNICIP":"CORONEL SAPUCAIA","CD_GEOCMU":"5003157"},{"NM_MUNICIP":"SELVÍRIA","CD_GEOCMU":"5007802"},{"NM_MUNICIP":"BELA VISTA","CD_GEOCMU":"5002100"},{"NM_MUNICIP":"PARAÍSO DAS ÁGUAS","CD_GEOCMU":"5006275"},{"NM_MUNICIP":"ELDORADO","CD_GEOCMU":"5003751"},{"NM_MUNICIP":"IGUATEMI","CD_GEOCMU":"5004304"},{"NM_MUNICIP":"COSTA RICA","CD_GEOCMU":"5003256"},{"NM_MUNICIP":"JUTI","CD_GEOCMU":"5005152"},{"NM_MUNICIP":"APARECIDA DO TABOADO","CD_GEOCMU":"5001003"},{"NM_MUNICIP":"GUIA LOPES DA LAGUNA","CD_GEOCMU":"5004106"},{"NM_MUNICIP":"GLÓRIA DE DOURADOS","CD_GEOCMU":"5004007"},{"NM_MUNICIP":"TAQUARUSSU","CD_GEOCMU":"5007976"},{"NM_MUNICIP":"BATAYPORÃ","CD_GEOCMU":"5002001"},{"NM_MUNICIP":"CARACOL","CD_GEOCMU":"5002803"},{"NM_MUNICIP":"AMAMBAI","CD_GEOCMU":"5000609"},{"NM_MUNICIP":"BODOQUENA","CD_GEOCMU":"5002159"},{"NM_MUNICIP":"AQUIDAUANA","CD_GEOCMU":"5001102"},{"NM_MUNICIP":"CHAPADÃO DO SUL","CD_GEOCMU":"5002951"},{"NM_MUNICIP":"MUNDO NOVO","CD_GEOCMU":"5005681"},{"NM_MUNICIP":"DEODÁPOLIS","CD_GEOCMU":"5003454"},{"NM_MUNICIP":"IVINHEMA","CD_GEOCMU":"5004700"},{"NM_MUNICIP":"SANTA RITA DO PARDO","CD_GEOCMU":"5007554"},{"NM_MUNICIP":"ARAL MOREIRA","CD_GEOCMU":"5001243"},{"NM_MUNICIP":"NOVA ALVORADA DO SUL","CD_GEOCMU":"5006002"},{"NM_MUNICIP":"JAPORÃ","CD_GEOCMU":"5004809"},{"NM_MUNICIP":"CAMPO GRANDE","CD_GEOCMU":"5002704"},{"NM_MUNICIP":"PARANHOS","CD_GEOCMU":"5006358"},{"NM_MUNICIP":"PORTO MURTINHO","CD_GEOCMU":"5006903"},{"NM_MUNICIP":"ITAQUIRAÍ","CD_GEOCMU":"5004601"},{"NM_MUNICIP":"MARACAJU","CD_GEOCMU":"5005400"},{"NM_MUNICIP":"BANDEIRANTES","CD_GEOCMU":"5001508"},{"NM_MUNICIP":"ALCINÓPOLIS","CD_GEOCMU":"5000252"},{"NM_MUNICIP":"BONITO","CD_GEOCMU":"5002209"},{"NM_MUNICIP":"NAVIRAÍ","CD_GEOCMU":"5005707"},{"NM_MUNICIP":"NOVO HORIZONTE DO SUL","CD_GEOCMU":"5006259"},{"NM_MUNICIP":"BATAGUASSU","CD_GEOCMU":"5001904"},{"NM_MUNICIP":"TACURU","CD_GEOCMU":"5007950"},{"NM_MUNICIP":"RIO BRILHANTE","CD_GEOCMU":"5007208"},{"NM_MUNICIP":"CASSILÂNDIA","CD_GEOCMU":"5002902"},{"NM_MUNICIP":"CAARAPÓ","CD_GEOCMU":"5002407"},{"NM_MUNICIP":"ITAPORÃ","CD_GEOCMU":"5004502"},{"NM_MUNICIP":"FIGUEIRÃO","CD_GEOCMU":"5003900"},{"NM_MUNICIP":"ÁGUA CLARA","CD_GEOCMU":"5000203"},{"NM_MUNICIP":"PARANAÍBA","CD_GEOCMU":"5006309"},{"NM_MUNICIP":"FÁTIMA DO SUL","CD_GEOCMU":"5003801"},{"NM_MUNICIP":"TRÊS LAGOAS","CD_GEOCMU":"5008305"},{"NM_MUNICIP":"ANGÉLICA","CD_GEOCMU":"5000856"}] -------------------------------------------------------------------------------- /data/svg/low/microrregioes/pe_microrregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /data/json/municipios/es_municipios.json: -------------------------------------------------------------------------------- 1 | [{"NM_MUNICIP":"ECOPORANGA","CD_GEOCMU":"3202108"},{"NM_MUNICIP":"GUARAPARI","CD_GEOCMU":"3202405"},{"NM_MUNICIP":"ATÍLIO VIVACQUA","CD_GEOCMU":"3200706"},{"NM_MUNICIP":"PIÚMA","CD_GEOCMU":"3204203"},{"NM_MUNICIP":"JOÃO NEIVA","CD_GEOCMU":"3203130"},{"NM_MUNICIP":"ITAGUAÇU","CD_GEOCMU":"3202702"},{"NM_MUNICIP":"LINHARES","CD_GEOCMU":"3203205"},{"NM_MUNICIP":"VILA PAVÃO","CD_GEOCMU":"3205150"},{"NM_MUNICIP":"NOVA VENÉCIA","CD_GEOCMU":"3203908"},{"NM_MUNICIP":"ICONHA","CD_GEOCMU":"3202603"},{"NM_MUNICIP":"ANCHIETA","CD_GEOCMU":"3200409"},{"NM_MUNICIP":"SANTA LEOPOLDINA","CD_GEOCMU":"3204500"},{"NM_MUNICIP":"CASTELO","CD_GEOCMU":"3201407"},{"NM_MUNICIP":"VIANA","CD_GEOCMU":"3205101"},{"NM_MUNICIP":"FUNDÃO","CD_GEOCMU":"3202207"},{"NM_MUNICIP":"CARIACICA","CD_GEOCMU":"3201308"},{"NM_MUNICIP":"BREJETUBA","CD_GEOCMU":"3201159"},{"NM_MUNICIP":"APIACÁ","CD_GEOCMU":"3200508"},{"NM_MUNICIP":"ITARANA","CD_GEOCMU":"3202900"},{"NM_MUNICIP":"DORES DO RIO PRETO","CD_GEOCMU":"3202009"},{"NM_MUNICIP":"BOM JESUS DO NORTE","CD_GEOCMU":"3201100"},{"NM_MUNICIP":"SÃO ROQUE DO CANAÃ","CD_GEOCMU":"3204955"},{"NM_MUNICIP":"SÃO JOSÉ DO CALÇADO","CD_GEOCMU":"3204807"},{"NM_MUNICIP":"DOMINGOS MARTINS","CD_GEOCMU":"3201902"},{"NM_MUNICIP":"PANCAS","CD_GEOCMU":"3204005"},{"NM_MUNICIP":"MIMOSO DO SUL","CD_GEOCMU":"3203403"},{"NM_MUNICIP":"ÁGUA DOCE DO NORTE","CD_GEOCMU":"3200169"},{"NM_MUNICIP":"ITAPEMIRIM","CD_GEOCMU":"3202801"},{"NM_MUNICIP":"ALFREDO CHAVES","CD_GEOCMU":"3200300"},{"NM_MUNICIP":"AFONSO CLÁUDIO","CD_GEOCMU":"3200102"},{"NM_MUNICIP":"SÃO GABRIEL DA PALHA","CD_GEOCMU":"3204708"},{"NM_MUNICIP":"MANTENÓPOLIS","CD_GEOCMU":"3203304"},{"NM_MUNICIP":"PINHEIROS","CD_GEOCMU":"3204104"},{"NM_MUNICIP":"VILA VALÉRIO","CD_GEOCMU":"3205176"},{"NM_MUNICIP":"SÃO MATEUS","CD_GEOCMU":"3204906"},{"NM_MUNICIP":"JAGUARÉ","CD_GEOCMU":"3203056"},{"NM_MUNICIP":"CACHOEIRO DE ITAPEMIRIM","CD_GEOCMU":"3201209"},{"NM_MUNICIP":"BAIXO GUANDU","CD_GEOCMU":"3200805"},{"NM_MUNICIP":"GUAÇUÍ","CD_GEOCMU":"3202306"},{"NM_MUNICIP":"JERÔNIMO MONTEIRO","CD_GEOCMU":"3203106"},{"NM_MUNICIP":"MONTANHA","CD_GEOCMU":"3203502"},{"NM_MUNICIP":"PEDRO CANÁRIO","CD_GEOCMU":"3204054"},{"NM_MUNICIP":"SÃO DOMINGOS DO NORTE","CD_GEOCMU":"3204658"},{"NM_MUNICIP":"PRESIDENTE KENNEDY","CD_GEOCMU":"3204302"},{"NM_MUNICIP":"VILA VELHA","CD_GEOCMU":"3205200"},{"NM_MUNICIP":"ÁGUIA BRANCA","CD_GEOCMU":"3200136"},{"NM_MUNICIP":"MUQUI","CD_GEOCMU":"3203809"},{"NM_MUNICIP":"ALTO RIO NOVO","CD_GEOCMU":"3200359"},{"NM_MUNICIP":"CONCEIÇÃO DO CASTELO","CD_GEOCMU":"3201704"},{"NM_MUNICIP":"MARECHAL FLORIANO","CD_GEOCMU":"3203346"},{"NM_MUNICIP":"MUNIZ FREIRE","CD_GEOCMU":"3203700"},{"NM_MUNICIP":"SOORETAMA","CD_GEOCMU":"3205010"},{"NM_MUNICIP":"IÚNA","CD_GEOCMU":"3203007"},{"NM_MUNICIP":"VITÓRIA","CD_GEOCMU":"3205309"},{"NM_MUNICIP":"RIO NOVO DO SUL","CD_GEOCMU":"3204401"},{"NM_MUNICIP":"LARANJA DA TERRA","CD_GEOCMU":"3203163"},{"NM_MUNICIP":"MARILÂNDIA","CD_GEOCMU":"3203353"},{"NM_MUNICIP":"IBITIRAMA","CD_GEOCMU":"3202553"},{"NM_MUNICIP":"BARRA DE SÃO FRANCISCO","CD_GEOCMU":"3200904"},{"NM_MUNICIP":"SANTA TERESA","CD_GEOCMU":"3204609"},{"NM_MUNICIP":"DIVINO DE SÃO LOURENÇO","CD_GEOCMU":"3201803"},{"NM_MUNICIP":"BOA ESPERANÇA","CD_GEOCMU":"3201001"},{"NM_MUNICIP":"CONCEIÇÃO DA BARRA","CD_GEOCMU":"3201605"},{"NM_MUNICIP":"VARGEM ALTA","CD_GEOCMU":"3205036"},{"NM_MUNICIP":"PONTO BELO","CD_GEOCMU":"3204252"},{"NM_MUNICIP":"IRUPI","CD_GEOCMU":"3202652"},{"NM_MUNICIP":"IBIRAÇU","CD_GEOCMU":"3202504"},{"NM_MUNICIP":"ALEGRE","CD_GEOCMU":"3200201"},{"NM_MUNICIP":"COLATINA","CD_GEOCMU":"3201506"},{"NM_MUNICIP":"IBATIBA","CD_GEOCMU":"3202454"},{"NM_MUNICIP":"ARACRUZ","CD_GEOCMU":"3200607"},{"NM_MUNICIP":"SERRA","CD_GEOCMU":"3205002"},{"NM_MUNICIP":"SANTA MARIA DE JETIBÁ","CD_GEOCMU":"3204559"},{"NM_MUNICIP":"GOVERNADOR LINDENBERG","CD_GEOCMU":"3202256"},{"NM_MUNICIP":"MUCURICI","CD_GEOCMU":"3203601"},{"NM_MUNICIP":"RIO BANANAL","CD_GEOCMU":"3204351"},{"NM_MUNICIP":"VENDA NOVA DO IMIGRANTE","CD_GEOCMU":"3205069"},{"NM_MUNICIP":"MARATAÍZES","CD_GEOCMU":"3203320"}] -------------------------------------------------------------------------------- /data/svg/low/mesorregioes/rs_mesorregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # mapa-brasil 2 | ![GitHub release](https://img.shields.io/github/release/clagomess/mapa-brasil) 3 | ![GitHub package.json version](https://img.shields.io/github/package-json/v/clagomess/mapa-brasil) 4 | ![GitHub Action](https://img.shields.io/github/workflow/status/clagomess/mapa-brasil/Node%20CI) 5 | 6 | ## Instalação 7 | ``` 8 | npm install mapa-brasil 9 | ``` 10 | 11 | ## Uso 12 | ### Html 13 | ```html 14 |
15 | 16 | 17 | 22 | ``` 23 | 24 | ### Javascript 25 | ```javascript 26 | const mapaBrasil = require('mapa-brasil'); 27 | 28 | mapaBrasil(document.getElementById('mapa'), {}) 29 | ``` 30 | 31 | ### Typescript 32 | ```typescript 33 | import {Component} from '@angular/core'; 34 | import mapaBrasil from 'mapa-brasil'; 35 | 36 | @Component({ 37 | selector: 'app-home', 38 | templateUrl: './home.component.html' 39 | }) 40 | export class HomeComponent { 41 | carregarMapa(){ 42 | mapaBrasil(document.getElementById('mapa'), {}) 43 | } 44 | } 45 | ``` 46 | 47 | 48 | ## Documentação 49 | ### Main 50 | `MapaBrasil(element: HTMLElement, options: Options)` 51 | 52 | ### Options 53 | | Atributo | Tipo | Valor Padrão | Descrição | 54 | |--------------------|---------------------------------------------|---------------|-----------------------------------------------------------------------------------------------------------------------------| 55 | | dataPath | `string` | `'/data'` | URL dos assets | 56 | | unidade | | `'br'` | Cód. IBGE ou sigla da UF. Ex.: `52`, `'df'` | 57 | | regiao | `string` | `'federacao'` | Valores permitidos: | 58 | | defaultFillColor | `string` | `'#FFF3E3'` | - | 59 | | defaultStrokeColor | `string` | `'#1F1A17'` | - | 60 | | unidadeData | | - | - | 61 | | onClick | `function` | - | Ex.: `(data) => {}` | 62 | 63 | ## Exemplos 64 | Mais exemplos podem ser vistos em `index.html` no repositório. 65 | 66 | ### Personalização 67 | ```javascript 68 | MapaBrasil(document.getElementById('mapa'), { 69 | unidadeData: [ 70 | {codIbge: 52, fillColor: '#d82b40'}, 71 | {codIbge: 43, fillColor: '#d82b40'}, 72 | {codIbge: 11, fillColor: '#ffa700', strokeColor: '#008744', strokeWidth: 4}, 73 | ], 74 | onClick: function (data) {console.log(data)} 75 | }); 76 | ``` 77 | 78 | ![Exemplo 001](https://raw.githubusercontent.com/clagomess/mapa-brasil/master/exemplos/exemplo_001.png) 79 | 80 | ### Brasil -> Município 81 | ```javascript 82 | MapaBrasil(document.getElementById('mapa'), { 83 | onClick: function (data) { 84 | MapaBrasil(document.getElementById('mapa'), { 85 | unidade: data.codIbge, 86 | regiao: 'municipio', 87 | onClick: function (data) { 88 | console.log(data) 89 | } 90 | }); 91 | } 92 | }); 93 | ``` 94 | 95 | ![Exemplo 002](https://raw.githubusercontent.com/clagomess/mapa-brasil/master/exemplos/exemplo_002.png) 96 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Mapa Brasil 6 | 7 | 8 | 9 |
10 |
11 | 12 | 13 | 14 | 15 |
16 |
17 | 18 | 19 | 20 | 21 | 22 | 118 | 119 | 120 | 121 | -------------------------------------------------------------------------------- /src/core/interactable.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | let dragClientY = 0; 4 | let dragClientX = 0; 5 | let dragPosY = 0; 6 | let dragPosX = 0; 7 | 8 | let canSvgPathClickEvents = (svgContainer, can) => { 9 | let svgEl = svgContainer.getElementsByTagName("svg")[0]; 10 | let listPath = svgEl.getElementsByTagName("g")[0].getElementsByTagName("path"); 11 | 12 | for (let i = 0; i < listPath.length; i++) { 13 | listPath[i].style.pointerEvents = can ? '' : 'none'; 14 | } 15 | }; 16 | 17 | let dragEvent = (svgContainer) => { 18 | let moving = false; 19 | 20 | let onDragStart = (evt) => { 21 | evt.preventDefault(); 22 | moving = true; 23 | 24 | dragClientY = evt.clientY - dragPosY; 25 | dragClientX = evt.clientX - dragPosX; 26 | }; 27 | 28 | let onDrag = (evt) => { 29 | evt.preventDefault(); 30 | 31 | if(!moving){ 32 | return; 33 | } 34 | 35 | svgContainer.style.cursor = "grab"; 36 | 37 | canSvgPathClickEvents(svgContainer, false); 38 | 39 | dragPosY = (evt.clientY - dragClientY); 40 | dragPosX = (evt.clientX - dragClientX); 41 | 42 | svgContainer.style.top = dragPosY + "px"; 43 | svgContainer.style.left = dragPosX + "px"; 44 | }; 45 | 46 | let onDragEnd = (evt) => { 47 | svgContainer.style.cursor = "pointer"; 48 | moving = false; 49 | canSvgPathClickEvents(svgContainer, true); 50 | }; 51 | 52 | svgContainer.addEventListener("mousedown", onDragStart); 53 | svgContainer.addEventListener("mousemove", onDrag); 54 | svgContainer.addEventListener("mouseup", onDragEnd); 55 | svgContainer.addEventListener("mouseleave", onDragEnd); 56 | }; 57 | 58 | let mouseWheelEvent = (element) => { 59 | const svgEl = element.getElementsByClassName("svg-container")[0].getElementsByTagName("svg")[0]; 60 | let svgWidth = svgEl.clientWidth !== 0 ? svgEl.clientWidth : element.clientWidth; 61 | 62 | element.addEventListener("wheel", (evt) => { 63 | evt.preventDefault(); 64 | svgWidth = (svgWidth - evt.deltaY) > 0 ? svgWidth - evt.deltaY : svgWidth; 65 | svgEl.style.width = svgWidth + "px"; 66 | }); 67 | }; 68 | 69 | let touchEvent = (svgContainer) => { 70 | let onStart = (evt) => { 71 | evt.preventDefault(); 72 | dragClientY = evt.changedTouches[0].clientY - dragPosY; 73 | dragClientX = evt.changedTouches[0].clientX - dragPosX; 74 | }; 75 | 76 | let onDrag = (evt) => { 77 | evt.preventDefault(); 78 | dragPosY = (evt.changedTouches[0].clientY - dragClientY); 79 | dragPosX = (evt.changedTouches[0].clientX - dragClientX); 80 | 81 | svgContainer.style.top = dragPosY + "px"; 82 | svgContainer.style.left = dragPosX + "px"; 83 | }; 84 | 85 | svgContainer.addEventListener("touchstart", onStart); 86 | svgContainer.addEventListener("touchmove", onDrag); 87 | svgContainer.addEventListener("touchend", onDrag); 88 | }; 89 | 90 | let fitSvgIntoContainer = (element) => { 91 | let svgContainer = element.getElementsByClassName("svg-container")[0]; 92 | let svgEl = svgContainer.getElementsByTagName("svg")[0]; 93 | 94 | const containerWidth = element.clientWidth; 95 | const containerHeight = element.clientHeight; 96 | let svgWidth = +svgEl.getAttribute('width'); 97 | let svgHeight = +svgEl.getAttribute('height'); 98 | 99 | svgContainer.style.position = "absolute"; 100 | svgContainer.style.top = "0px"; 101 | svgContainer.style.left = "0px"; 102 | svgContainer.style.cursor = "pointer"; 103 | svgContainer.setAttribute("draggable", "true"); 104 | 105 | if(((containerWidth * svgHeight) / svgWidth) > containerHeight){ 106 | svgWidth = (containerHeight * svgWidth) / svgHeight; 107 | } 108 | 109 | svgEl.style.width = (svgWidth >= containerWidth ? containerWidth : svgWidth) + 'px'; 110 | svgEl.style.height = 'auto'; 111 | 112 | // margim left 113 | dragPosX = ((containerWidth - svgWidth) / 2); 114 | svgContainer.style.left = dragPosX + 'px'; 115 | }; 116 | 117 | module.exports = (element) => { 118 | let svgContainer = element.getElementsByClassName("svg-container")[0]; 119 | 120 | // RESET VARS 121 | dragClientY = 0; 122 | dragClientX = 0; 123 | dragPosY = 0; 124 | dragPosX = 0; 125 | 126 | // FIT 127 | fitSvgIntoContainer(element); 128 | 129 | // DRAG EVENT 130 | dragEvent(svgContainer); 131 | 132 | // MOUSE WHEEL 133 | mouseWheelEvent(element); 134 | 135 | // TOUCH EVENT 136 | touchEvent(svgContainer); 137 | }; 138 | -------------------------------------------------------------------------------- /data/svg/low/municipios/ap_municipios.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /data/json/municipios/rj_municipios.json: -------------------------------------------------------------------------------- 1 | [{"NM_MUNICIP":"COMENDADOR LEVY GASPARIAN","CD_GEOCMU":"3300951"},{"NM_MUNICIP":"PATY DO ALFERES","CD_GEOCMU":"3303856"},{"NM_MUNICIP":"SAQUAREMA","CD_GEOCMU":"3305505"},{"NM_MUNICIP":"TRÊS RIOS","CD_GEOCMU":"3306008"},{"NM_MUNICIP":"SANTO ANTÔNIO DE PÁDUA","CD_GEOCMU":"3304706"},{"NM_MUNICIP":"ITAOCARA","CD_GEOCMU":"3302106"},{"NM_MUNICIP":"CAMBUCI","CD_GEOCMU":"3300902"},{"NM_MUNICIP":"RIO DAS OSTRAS","CD_GEOCMU":"3304524"},{"NM_MUNICIP":"TANGUÁ","CD_GEOCMU":"3305752"},{"NM_MUNICIP":"BELFORD ROXO","CD_GEOCMU":"3300456"},{"NM_MUNICIP":"ARARUAMA","CD_GEOCMU":"3300209"},{"NM_MUNICIP":"PETRÓPOLIS","CD_GEOCMU":"3303906"},{"NM_MUNICIP":"VOLTA REDONDA","CD_GEOCMU":"3306305"},{"NM_MUNICIP":"RIO CLARO","CD_GEOCMU":"3304409"},{"NM_MUNICIP":"CARMO","CD_GEOCMU":"3301207"},{"NM_MUNICIP":"MARICÁ","CD_GEOCMU":"3302700"},{"NM_MUNICIP":"IGUABA GRANDE","CD_GEOCMU":"3301876"},{"NM_MUNICIP":"RIO DE JANEIRO","CD_GEOCMU":"3304557"},{"NM_MUNICIP":"DUQUE DE CAXIAS","CD_GEOCMU":"3301702"},{"NM_MUNICIP":"MACUCO","CD_GEOCMU":"3302452"},{"NM_MUNICIP":"MACAÉ","CD_GEOCMU":"3302403"},{"NM_MUNICIP":"NATIVIDADE","CD_GEOCMU":"3303104"},{"NM_MUNICIP":"RIO DAS FLORES","CD_GEOCMU":"3304508"},{"NM_MUNICIP":"MIGUEL PEREIRA","CD_GEOCMU":"3302908"},{"NM_MUNICIP":"ITAGUAÍ","CD_GEOCMU":"3302007"},{"NM_MUNICIP":"CACHOEIRAS DE MACACU","CD_GEOCMU":"3300803"},{"NM_MUNICIP":"JAPERI","CD_GEOCMU":"3302270"},{"NM_MUNICIP":"ITALVA","CD_GEOCMU":"3302056"},{"NM_MUNICIP":"ITAPERUNA","CD_GEOCMU":"3302205"},{"NM_MUNICIP":"VARRE-SAI","CD_GEOCMU":"3306156"},{"NM_MUNICIP":"NOVA FRIBURGO","CD_GEOCMU":"3303401"},{"NM_MUNICIP":"PARATY","CD_GEOCMU":"3303807"},{"NM_MUNICIP":"MIRACEMA","CD_GEOCMU":"3303005"},{"NM_MUNICIP":"AREAL","CD_GEOCMU":"3300225"},{"NM_MUNICIP":"SAPUCAIA","CD_GEOCMU":"3305406"},{"NM_MUNICIP":"BOM JESUS DO ITABAPOANA","CD_GEOCMU":"3300605"},{"NM_MUNICIP":"SÃO FIDÉLIS","CD_GEOCMU":"3304805"},{"NM_MUNICIP":"CASIMIRO DE ABREU","CD_GEOCMU":"3301306"},{"NM_MUNICIP":"CARDOSO MOREIRA","CD_GEOCMU":"3301157"},{"NM_MUNICIP":"ITABORAÍ","CD_GEOCMU":"3301900"},{"NM_MUNICIP":"CANTAGALO","CD_GEOCMU":"3301108"},{"NM_MUNICIP":"PORCIÚNCULA","CD_GEOCMU":"3304102"},{"NM_MUNICIP":"BOM JARDIM","CD_GEOCMU":"3300506"},{"NM_MUNICIP":"SILVA JARDIM","CD_GEOCMU":"3305604"},{"NM_MUNICIP":"NOVA IGUAÇU","CD_GEOCMU":"3303500"},{"NM_MUNICIP":"TRAJANO DE MORAES","CD_GEOCMU":"3305901"},{"NM_MUNICIP":"RESENDE","CD_GEOCMU":"3304201"},{"NM_MUNICIP":"CABO FRIO","CD_GEOCMU":"3300704"},{"NM_MUNICIP":"CARAPEBUS","CD_GEOCMU":"3300936"},{"NM_MUNICIP":"SÃO SEBASTIÃO DO ALTO","CD_GEOCMU":"3305307"},{"NM_MUNICIP":"QUISSAMÃ","CD_GEOCMU":"3304151"},{"NM_MUNICIP":"APERIBÉ","CD_GEOCMU":"3300159"},{"NM_MUNICIP":"ANGRA DOS REIS","CD_GEOCMU":"3300100"},{"NM_MUNICIP":"BARRA MANSA","CD_GEOCMU":"3300407"},{"NM_MUNICIP":"RIO BONITO","CD_GEOCMU":"3304300"},{"NM_MUNICIP":"CONCEIÇÃO DE MACABU","CD_GEOCMU":"3301405"},{"NM_MUNICIP":"QUEIMADOS","CD_GEOCMU":"3304144"},{"NM_MUNICIP":"SÃO JOÃO DA BARRA","CD_GEOCMU":"3305000"},{"NM_MUNICIP":"PIRAÍ","CD_GEOCMU":"3304003"},{"NM_MUNICIP":"ARRAIAL DO CABO","CD_GEOCMU":"3300258"},{"NM_MUNICIP":"VASSOURAS","CD_GEOCMU":"3306206"},{"NM_MUNICIP":"MESQUITA","CD_GEOCMU":"3302858"},{"NM_MUNICIP":"ENGENHEIRO PAULO DE FRONTIN","CD_GEOCMU":"3301801"},{"NM_MUNICIP":"MANGARATIBA","CD_GEOCMU":"3302601"},{"NM_MUNICIP":"PORTO REAL","CD_GEOCMU":"3304110"},{"NM_MUNICIP":"BARRA DO PIRAÍ","CD_GEOCMU":"3300308"},{"NM_MUNICIP":"PINHEIRAL","CD_GEOCMU":"3303955"},{"NM_MUNICIP":"SÃO GONÇALO","CD_GEOCMU":"3304904"},{"NM_MUNICIP":"TERESÓPOLIS","CD_GEOCMU":"3305802"},{"NM_MUNICIP":"DUAS BARRAS","CD_GEOCMU":"3301603"},{"NM_MUNICIP":"SÃO JOSÉ DO VALE DO RIO PRETO","CD_GEOCMU":"3305158"},{"NM_MUNICIP":"MENDES","CD_GEOCMU":"3302809"},{"NM_MUNICIP":"NILÓPOLIS","CD_GEOCMU":"3303203"},{"NM_MUNICIP":"NITERÓI","CD_GEOCMU":"3303302"},{"NM_MUNICIP":"SÃO PEDRO DA ALDEIA","CD_GEOCMU":"3305208"},{"NM_MUNICIP":"PARACAMBI","CD_GEOCMU":"3303609"},{"NM_MUNICIP":"QUATIS","CD_GEOCMU":"3304128"},{"NM_MUNICIP":"ARMAÇÃO DOS BÚZIOS","CD_GEOCMU":"3300233"},{"NM_MUNICIP":"SÃO JOSÉ DE UBÁ","CD_GEOCMU":"3305133"},{"NM_MUNICIP":"MAGÉ","CD_GEOCMU":"3302502"},{"NM_MUNICIP":"SANTA MARIA MADALENA","CD_GEOCMU":"3304607"},{"NM_MUNICIP":"SÃO JOÃO DE MERITI","CD_GEOCMU":"3305109"},{"NM_MUNICIP":"SUMIDOURO","CD_GEOCMU":"3305703"},{"NM_MUNICIP":"SÃO FRANCISCO DE ITABAPOANA","CD_GEOCMU":"3304755"},{"NM_MUNICIP":"VALENÇA","CD_GEOCMU":"3306107"},{"NM_MUNICIP":"ITATIAIA","CD_GEOCMU":"3302254"},{"NM_MUNICIP":"PARAÍBA DO SUL","CD_GEOCMU":"3303708"},{"NM_MUNICIP":"CORDEIRO","CD_GEOCMU":"3301504"},{"NM_MUNICIP":"CAMPOS DOS GOYTACAZES","CD_GEOCMU":"3301009"},{"NM_MUNICIP":"LAJE DO MURIAÉ","CD_GEOCMU":"3302304"},{"NM_MUNICIP":"SEROPÉDICA","CD_GEOCMU":"3305554"},{"NM_MUNICIP":"GUAPIMIRIM","CD_GEOCMU":"3301850"}] -------------------------------------------------------------------------------- /data/svg/low/microrregioes/ms_microrregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /data/json/municipios/al_municipios.json: -------------------------------------------------------------------------------- 1 | [{"NM_MUNICIP":"MARAVILHA","CD_GEOCMU":"2704609"},{"NM_MUNICIP":"BELÉM","CD_GEOCMU":"2700805"},{"NM_MUNICIP":"MESSIAS","CD_GEOCMU":"2705200"},{"NM_MUNICIP":"ANADIA","CD_GEOCMU":"2700201"},{"NM_MUNICIP":"MARAGOGI","CD_GEOCMU":"2704500"},{"NM_MUNICIP":"OLHO D'ÁGUA GRANDE","CD_GEOCMU":"2705903"},{"NM_MUNICIP":"SÃO LUÍS DO QUITUNDE","CD_GEOCMU":"2708501"},{"NM_MUNICIP":"MINADOR DO NEGRÃO","CD_GEOCMU":"2705309"},{"NM_MUNICIP":"INHAPI","CD_GEOCMU":"2703304"},{"NM_MUNICIP":"LAGOA DA CANOA","CD_GEOCMU":"2704104"},{"NM_MUNICIP":"MARIBONDO","CD_GEOCMU":"2704807"},{"NM_MUNICIP":"JUNQUEIRO","CD_GEOCMU":"2704005"},{"NM_MUNICIP":"RIO LARGO","CD_GEOCMU":"2707701"},{"NM_MUNICIP":"MATRIZ DE CAMARAGIBE","CD_GEOCMU":"2705101"},{"NM_MUNICIP":"TAQUARANA","CD_GEOCMU":"2709103"},{"NM_MUNICIP":"PÃO DE AÇÚCAR","CD_GEOCMU":"2706406"},{"NM_MUNICIP":"PIRANHAS","CD_GEOCMU":"2707107"},{"NM_MUNICIP":"OLHO D'ÁGUA DAS FLORES","CD_GEOCMU":"2705705"},{"NM_MUNICIP":"PARIPUEIRA","CD_GEOCMU":"2706448"},{"NM_MUNICIP":"DOIS RIACHOS","CD_GEOCMU":"2702504"},{"NM_MUNICIP":"PALESTINA","CD_GEOCMU":"2706208"},{"NM_MUNICIP":"SANTA LUZIA DO NORTE","CD_GEOCMU":"2707909"},{"NM_MUNICIP":"PILAR","CD_GEOCMU":"2706901"},{"NM_MUNICIP":"JUNDIÁ","CD_GEOCMU":"2703908"},{"NM_MUNICIP":"MAJOR ISIDORO","CD_GEOCMU":"2704401"},{"NM_MUNICIP":"MURICI","CD_GEOCMU":"2705507"},{"NM_MUNICIP":"PIAÇABUÇU","CD_GEOCMU":"2706802"},{"NM_MUNICIP":"SANTANA DO MUNDAÚ","CD_GEOCMU":"2708105"},{"NM_MUNICIP":"MACEIÓ","CD_GEOCMU":"2704302"},{"NM_MUNICIP":"ROTEIRO","CD_GEOCMU":"2707800"},{"NM_MUNICIP":"LIMOEIRO DE ANADIA","CD_GEOCMU":"2704203"},{"NM_MUNICIP":"POÇO DAS TRINCHEIRAS","CD_GEOCMU":"2707206"},{"NM_MUNICIP":"PORTO DE PEDRAS","CD_GEOCMU":"2707404"},{"NM_MUNICIP":"CAJUEIRO","CD_GEOCMU":"2701308"},{"NM_MUNICIP":"FEIRA GRANDE","CD_GEOCMU":"2702603"},{"NM_MUNICIP":"MARECHAL DEODORO","CD_GEOCMU":"2704708"},{"NM_MUNICIP":"PARICONHA","CD_GEOCMU":"2706422"},{"NM_MUNICIP":"SÃO MIGUEL DOS CAMPOS","CD_GEOCMU":"2708600"},{"NM_MUNICIP":"JARAMATAIA","CD_GEOCMU":"2703700"},{"NM_MUNICIP":"DELMIRO GOUVEIA","CD_GEOCMU":"2702405"},{"NM_MUNICIP":"CAMPO ALEGRE","CD_GEOCMU":"2701407"},{"NM_MUNICIP":"ATALAIA","CD_GEOCMU":"2700409"},{"NM_MUNICIP":"PENEDO","CD_GEOCMU":"2706703"},{"NM_MUNICIP":"SÃO SEBASTIÃO","CD_GEOCMU":"2708808"},{"NM_MUNICIP":"FLEXEIRAS","CD_GEOCMU":"2702801"},{"NM_MUNICIP":"OURO BRANCO","CD_GEOCMU":"2706109"},{"NM_MUNICIP":"SÃO BRÁS","CD_GEOCMU":"2708204"},{"NM_MUNICIP":"CAMPESTRE","CD_GEOCMU":"2701357"},{"NM_MUNICIP":"COQUEIRO SECO","CD_GEOCMU":"2702207"},{"NM_MUNICIP":"IBATEGUARA","CD_GEOCMU":"2703007"},{"NM_MUNICIP":"QUEBRANGULO","CD_GEOCMU":"2707602"},{"NM_MUNICIP":"PASSO DE CAMARAGIBE","CD_GEOCMU":"2706505"},{"NM_MUNICIP":"JOAQUIM GOMES","CD_GEOCMU":"2703809"},{"NM_MUNICIP":"JACUÍPE","CD_GEOCMU":"2703502"},{"NM_MUNICIP":"FELIZ DESERTO","CD_GEOCMU":"2702702"},{"NM_MUNICIP":"MATA GRANDE","CD_GEOCMU":"2705002"},{"NM_MUNICIP":"CAMPO GRANDE","CD_GEOCMU":"2701506"},{"NM_MUNICIP":"TRAIPU","CD_GEOCMU":"2709202"},{"NM_MUNICIP":"JACARÉ DOS HOMENS","CD_GEOCMU":"2703403"},{"NM_MUNICIP":"SÃO JOSÉ DA TAPERA","CD_GEOCMU":"2708402"},{"NM_MUNICIP":"UNIÃO DOS PALMARES","CD_GEOCMU":"2709301"},{"NM_MUNICIP":"PAULO JACINTO","CD_GEOCMU":"2706604"},{"NM_MUNICIP":"SÃO MIGUEL DOS MILAGRES","CD_GEOCMU":"2708709"},{"NM_MUNICIP":"PORTO CALVO","CD_GEOCMU":"2707305"},{"NM_MUNICIP":"BARRA DE SANTO ANTÔNIO","CD_GEOCMU":"2700508"},{"NM_MUNICIP":"PORTO REAL DO COLÉGIO","CD_GEOCMU":"2707503"},{"NM_MUNICIP":"CARNEIROS","CD_GEOCMU":"2701803"},{"NM_MUNICIP":"CHÃ PRETA","CD_GEOCMU":"2701902"},{"NM_MUNICIP":"CAPELA","CD_GEOCMU":"2701704"},{"NM_MUNICIP":"BELO MONTE","CD_GEOCMU":"2700904"},{"NM_MUNICIP":"IGREJA NOVA","CD_GEOCMU":"2703205"},{"NM_MUNICIP":"COLÔNIA LEOPOLDINA","CD_GEOCMU":"2702108"},{"NM_MUNICIP":"MAR VERMELHO","CD_GEOCMU":"2704906"},{"NM_MUNICIP":"OLHO D'ÁGUA DO CASADO","CD_GEOCMU":"2705804"},{"NM_MUNICIP":"PINDOBA","CD_GEOCMU":"2707008"},{"NM_MUNICIP":"ARAPIRACA","CD_GEOCMU":"2700300"},{"NM_MUNICIP":"ESTRELA DE ALAGOAS","CD_GEOCMU":"2702553"},{"NM_MUNICIP":"COITÉ DO NÓIA","CD_GEOCMU":"2702009"},{"NM_MUNICIP":"NOVO LINO","CD_GEOCMU":"2705606"},{"NM_MUNICIP":"BARRA DE SÃO MIGUEL","CD_GEOCMU":"2700607"},{"NM_MUNICIP":"SENADOR RUI PALMEIRA","CD_GEOCMU":"2708956"},{"NM_MUNICIP":"CORURIPE","CD_GEOCMU":"2702306"},{"NM_MUNICIP":"BATALHA","CD_GEOCMU":"2700706"},{"NM_MUNICIP":"BRANQUINHA","CD_GEOCMU":"2701100"},{"NM_MUNICIP":"GIRAU DO PONCIANO","CD_GEOCMU":"2702900"},{"NM_MUNICIP":"CANAPI","CD_GEOCMU":"2701605"},{"NM_MUNICIP":"SATUBA","CD_GEOCMU":"2708907"},{"NM_MUNICIP":"CRAÍBAS","CD_GEOCMU":"2702355"},{"NM_MUNICIP":"TANQUE D'ARCA","CD_GEOCMU":"2709004"},{"NM_MUNICIP":"BOCA DA MATA","CD_GEOCMU":"2701001"},{"NM_MUNICIP":"SÃO JOSÉ DA LAJE","CD_GEOCMU":"2708303"},{"NM_MUNICIP":"SANTANA DO IPANEMA","CD_GEOCMU":"2708006"},{"NM_MUNICIP":"OLIVENÇA","CD_GEOCMU":"2706000"},{"NM_MUNICIP":"MONTEIRÓPOLIS","CD_GEOCMU":"2705408"},{"NM_MUNICIP":"VIÇOSA","CD_GEOCMU":"2709400"},{"NM_MUNICIP":"IGACI","CD_GEOCMU":"2703106"},{"NM_MUNICIP":"CACIMBINHAS","CD_GEOCMU":"2701209"},{"NM_MUNICIP":"JAPARATINGA","CD_GEOCMU":"2703601"},{"NM_MUNICIP":"JEQUIÁ DA PRAIA","CD_GEOCMU":"2703759"},{"NM_MUNICIP":"TEOTÔNIO VILELA","CD_GEOCMU":"2709152"},{"NM_MUNICIP":"ÁGUA BRANCA","CD_GEOCMU":"2700102"},{"NM_MUNICIP":"PALMEIRA DOS ÍNDIOS","CD_GEOCMU":"2706307"}] -------------------------------------------------------------------------------- /data/svg/low/microrregioes/ma_microrregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /data/svg/low/microrregioes/pa_microrregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /data/svg/low/microrregioes/go_microrregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /data/svg/low/microrregioes/es_microrregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /data/svg/low/microrregioes/ce_microrregioes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | --------------------------------------------------------------------------------