{"id":25931150,"url":"https://github.com/dan96ct/sigpac-client","last_synced_at":"2025-06-14T14:06:44.410Z","repository":{"id":46265246,"uuid":"515267072","full_name":"dan96ct/sigpac-client","owner":"dan96ct","description":"Librería para la api de sigpac en javascript","archived":false,"fork":false,"pushed_at":"2025-01-25T17:22:14.000Z","size":101,"stargazers_count":13,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-07T03:39:19.285Z","etag":null,"topics":["geojson","javascript","mapa","nodejs","parcelas","recintos","sigpac"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dan96ct.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-18T16:47:51.000Z","updated_at":"2025-04-14T13:55:26.000Z","dependencies_parsed_at":"2024-01-14T03:47:09.689Z","dependency_job_id":"e6475ff4-c2fd-43a5-a12f-d033de9753d2","html_url":"https://github.com/dan96ct/sigpac-client","commit_stats":{"total_commits":13,"total_committers":4,"mean_commits":3.25,"dds":0.5384615384615384,"last_synced_commit":"91954ae6268f562895296bbe487a4ce63334b153"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dan96ct/sigpac-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan96ct%2Fsigpac-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan96ct%2Fsigpac-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan96ct%2Fsigpac-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan96ct%2Fsigpac-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dan96ct","download_url":"https://codeload.github.com/dan96ct/sigpac-client/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan96ct%2Fsigpac-client/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259827649,"owners_count":22917711,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["geojson","javascript","mapa","nodejs","parcelas","recintos","sigpac"],"created_at":"2025-03-03T23:58:07.110Z","updated_at":"2025-06-14T14:06:44.350Z","avatar_url":"https://github.com/dan96ct.png","language":"TypeScript","funding_links":[],"categories":["Agricultura"],"sub_categories":[],"readme":"\u003cdiv id=\"top\"\u003e\u003c/div\u003e\n\n\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ch3 align=\"center\"\u003eSigpac Client\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Cliente API sigpac para Javascript\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://main--thunderous-vacherin-784f63.netlify.app/\"\u003eVer Demo\u003c/a\u003e\n    \u003ca href=\"https://github.com/dan96ct/sigpac-client/issues\"\u003eReportar Bug\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\n\n\n\u003cdetails\u003e\n  \u003csummary\u003eTabla de contenido\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#sobre-el-proyecto\"\u003eSobre el proyecto\u003c/a\u003e\n    \u003cli\u003e\n      \u003ca href=\"#instalacion\"\u003eInstalación\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#ejemplo-de-uso\"\u003eEjemplo de uso\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#funciones\"\u003eFunciones\u003c/a\u003e\n      \u003cul\u003e\n          \u003cli\u003e\n            \u003ca href=\"#localizacion\"\u003elocalizacion\u003c/a\u003e\n          \u003c/li\u003e\n          \u003cli\u003e\n            \u003ca href=\"#buscar\"\u003ebuscar\u003c/a\u003e\n          \u003c/li\u003e\n          \u003cli\u003e\n            \u003ca href=\"#consulta\"\u003econsulta\u003c/a\u003e\n          \u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#librerias-usadas\"\u003eLibrerias usadas\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contacto\"\u003eContacto\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\n\n\n## Sobre el proyecto\nEl objetivo de esta libreria es usar la api de sigpac desde cualquier framework de javascript de forma sencilla para poder consultar los datos en tiempo real.\nBasicamente se ha tratado de extrapolar el funcionamiento de la \u003ca href=\"https://sigpac.mapama.gob.es/fega/visor/\"\u003epágina oficial\u003c/a\u003e a una libreria sencilla de utilizar.\n\nProbada en:\n\n[![Nodejs]][Nodejs-url]\n\n\n\u003e **⚠️ IMPORTANTE:** Se recomienda usar esta libreria en NodeJS, aunque se puede instalar en react o angular es posible que fallen las corns o de problemas con la libreria  proj4.\n\n## Instalación\n\nPuede instalar la libreria mediante npm\n\n ```sh\n  npm i sigpac-client\n  ```\n\n### Ejemplo de uso\n```js\nimport Sigpac from 'sigpac-client';\n\nSigpac.localizacion(capa, {lng: -1.8054282, lat: 38.9598049})\n      .then((geojson) =\u003e {\n          //Tu código\n      });\n```\nMediante importación de funciones individuales\n```js\nimport { localizacion } from 'sigpac-client';\n\nlocalizacion(capa, {lng: -1.8054282, lat: 38.9598049})\n.then((geojson) =\u003e {\n     //Tu código\n});\n```\n\nForma sincrona\n```js\n\nimport { localizacion } from 'sigpac-client';\n\nlet geojson = await localizacion(capa, {lng: -1.8054282, lat: 38.9598049});\n\n```\n\n## Funciones\nSe han intentado replicar exactamente las mismas funciones respetando sus nombres para evitar confusiones, asi como sus parametros.\nPor ejemplo la opción \u003cb\u003econsulta\u003c/b\u003e equivale a la función \u003ca href=\"#consulta\"\u003econsulta\u003c/a\u003e.\n### localizacion\nDevuelve un geojson con los datos de las coordenadas.\n\n|  Parametros                 | Tipo | Valores permitidos   | Ejemplo | Obligatorio\n| :------------------------ | :-------------: |:-------------:| :-------------:| :-------------:|\n| capa \t       | String |parcela, recinto, declaracion, red_natura, montanera, nitratos, fitosanitarios, pastos_permanentes, e_paisaje_linea, sie, mfe, cp_no_integradas | `'parcela'` | Si\n| coords          | Object | lat, lng | `{ lng: -1.8054282, lat: 38.9598049 }` | Si\n| config          | Object | transformCoords, projection, proxy | ` { transformCoords: true, projection: 'WGS84', proxy: false }` | No\n\nEjemplo\n```js\nimport { localizacion } from 'sigpac-client';\n\nconst coords = {lng: -1.8054282, lat: 38.9598049};\n\nlocalizacion(capa, coords)\n.then((geojson) =\u003e {\n     //Tu código\n});\n```\n\nSigpac utiliza un sistema de coordenadas distinto al que se suele usar en google maps o cualquier mapa web, por tanto se ha necesitado transformar las coordenadas antes de devolver el geojson. La proyección por defecto es WGS84 (mas info \u003ca href=\"https://es.wikipedia.org/wiki/WGS84#:~:text=El%20WGS%2084%20(World%20Geodetic,x%2Cy%2Cz).\"\u003eaquí\u003c/a\u003e) sin embargo esta se puede cambiar o directamente anular.\n\n```js\nimport { localizacion } from 'sigpac-client';\n\nconst coords = {lng: -1.8054282, lat: 38.9598049};\n\n//Anular transformación de coordenadas\nconst config = {transformCoords:  false}\n\nlocalizacion(capa, coords, config)\n.then((geojson) =\u003e {\n     //Tu código\n});\n```\n```js\nimport { localizacion } from 'sigpac-client';\n\nconst coords = {lng: -1.8054282, lat: 38.9598049};\n\n//Cambiar proyección\nconst config = {projection: 'EPSG:4326'}\n\nlocalizacion(capa, coords, config)\n.then((geojson) =\u003e {\n     //Tu código\n});\n\n```\n\nLa manipulación de las coordenadas se ha realizado gracias a la libreria \u003ca href=\"http://proj4js.org/\"\u003e\u003cb\u003eproj4js\u003c/b\u003e\u003c/a\u003e.\nMás información sobre el nombre de las proyecciones \u003ca href=\"http://proj4js.org/#named-projections\"\u003eaquí\u003c/a\u003e.\n\n\n### buscar\nDevuelve un json con la información de forma recursiva a los valores enviados, es decir si se envia como valores la comunidad y la provincia devolverá los municipios. Esta función esta pensada para filtros por tanto lo ideal es hacer peticiones recursivas en el siguiente orden comunidad -\u003e provincia -\u003e municipio -\u003e poligono -\u003e parcela\n\n|  Parametros                 | Tipo | Valores permitidos   | Ejemplo | Obligatorio\n| :------------------------ | :-------------: |:-------------:| :-------------:| :-------------:|\n| data          | Object | comunidad, provincia, municipio, poligono, parcela | `{ comunidad: 7, provincia: 2, municipio: 79, poligono: 37, parcela: 22 }` | Si\n| config          | Object |proxy | ` { proxy: false }` | No\n\nEjemplo\n```js\nimport { buscar } from 'sigpac-client';\n\nlet data = { comunidad: 7 };\n\nlet provincias = await Sigpac.buscar(data);\ndata.provincia =  provincias.features[0].properties.codigo;\n\nlet municipios = await Sigpac.buscar(data);\ndata.municipio =  municipios.features[0].properties.codigo;\n\nlet poligonos = await Sigpac.buscar(data);\ndata.poligono =  poligonos.features[0].properties.codigo;\nlet parcelas = await Sigpac.buscar(data);\n\ndata.parcela =  parcelas.features[0].properties.codigo;\nlet recintos = await Sigpac.buscar(data);\nconsole.log(recintos.features[0].properties)\n/**\n  {\n    dn_pk: '1222533953',\n    nombre: 1,\n    codigo: 1,\n    x1: -1.605634135436811,\n    y1: 39.22648224243416,\n    x2: -1.6020442700300674,\n    y2: 39.22740772865163\n  }\n */\n```\nEl número de las comunidades coinciden con los orginales, los cuales son:\nComunidad                 | Número\n:------------------------ | :-------------:\n ANDALUCIA | 1\nARAGÓN | 2\nASTURIAS | 3\nC. VALENCIANA | 17\nCANARIAS | 5\nCANTABRIA | 6\nCASTILLA-LA MANCHA | 7\nCASTILLA Y LEÓN | 8\nCATALUÑA | 9\nEXTREMADURA | 10\nGALICIA | 11\nILLES BALEARS | 4\nLA RIOJA | 16\nMADRID | 12\nMURCIA | 13\nNAVARRA | 14\nPAIS VASCO | 15\n\n### consulta\nDevuelve un json con los datos de la capa (parcela, recinto o declaración).\nDependiendo de la capa que se elija es necesario unos parametros u otros.\n\n|  Parametros                 | Tipo | Valores permitidos   | Ejemplo | Obligatorio\n| :------------------------ | :-------------: |:-------------:| :-------------:| :-------------:|\n| capa \t       | String | parcela, recinto, declaracion | `'parcela'` | Si\n| data          | Object | \u003cb\u003eparcela:\u003c/b\u003e { provincia, agregado, zona, municipio, poligono, parcela }\u003cbr /\u003e\u003cb\u003erecinto\u003c/b\u003e: { provincia, agregado, zona, municipio, poligono, parcela, recinto }\u003cbr /\u003e\u003cb\u003edeclaracion:\u003c/b\u003e { lng, lat } | `{ provincia: 2, agregado: 0, zona: 0, municipio: 79, poligono: 37, parcela: 22, recinto: 1 }` | Si\n| config          | Object | proxy | ` { proxy: false }` | No\n\nEjemplo\n```js\nimport { consulta } from 'sigpac-client';\n\nconst data = {\n               provincia: 2,\n               agregado: 0,\n               zona: 0,\n               municipio: 79,\n               poligono: 37,\n               parcela: 22,\n               recinto: 1\n             };\n\nconsulta('recinto', data)\n.then((json) =\u003e {\n  //Tu código  \n});\n```\n```js\nimport { consulta } from 'sigpac-client';\n\nconst data = {\n               lng: -1.8054282, \n               lat: 38.9598049\n             };\n\nconsulta('declaracion', data)\n.then((json) =\u003e {\n  //Tu código  \n});\n```\n\n\n## Librerias usadas\n\n* [global-mercator](https://github.com/DenisCarriere/global-mercator)\n* [node-fetch](https://github.com/node-fetch/node-fetch)\n* [proj4](http://proj4js.org/)\n* [chai](https://www.chaijs.com/)\n* [mocha](https://mochajs.org/)\n\n\n\n\n## Contacto\nPor favor, pongase en contacto conmigo para cualquier problema, duda o sugerencia.\n\nDaniel Cebrián - d.cebrian9@gmail.com\n\n[Nodejs]: https://img.shields.io/badge/Nodejs-20232A?style=for-the-badge\u0026logo=nodedotjs\u0026logoColor=green\n[Nodejs-url]: https://nodejs.org/es/\n[React.js]: https://img.shields.io/badge/React-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=61DAFB\n[React-url]: https://reactjs.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan96ct%2Fsigpac-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdan96ct%2Fsigpac-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan96ct%2Fsigpac-client/lists"}