ããŒã1ãæ²åçã ããªããããå¿
èŠãªã®ã§ããïŒïŒã
ãŠãŒã¶ãŒã®å ŽæïŒç»é²ãç»é²ïŒã«é¢ããæ£ããæ
å ±ãå
¥åããå¿
èŠæ§ãšããã®åé¡ãåžæã©ããã«ç°¡åãã€ç°¡åã«è§£æ±ºãããªããšããäºå®ã«ã©ãã«ãçŽé¢ããŸããã ãŸããèªç±åœ¢åŒã®KLADRãè©ŠããŸããã ãã¹ãŠã決å®çã«å¥œãã§ã¯ãªãã£ããšããããã§ã¯ãããŸããããå°ãªããšã1ã€ã®éåžžã«è¿·æãªç¶æ³ããããŸãã-äžéšã®ã¢ãã¬ã¹ããã£ã¬ã¯ããªã«ãããŸããã§ããã ããšãã°ã家10ããããŸããã10k1-ç³ãèš³ãããŸããããé
ä¿¡ããŸããã§ããã äžè¬ã«ãKLADRã¯ãã¢ããªã±ãŒã·ã§ã³ã«ç°¡åã«çµ±åã§ããŸãããã³ã³ãã³ãã«ãã£ãŠåçºãããã·ã³ãã«ãªAPIãšãã©ã°ã€ã³ïŒç¹ã«jQueryïŒãåããŠãããšããç¹ã§é
åçã§ããã APIããã©ã°ã€ã³ã䜿çšããŠãå®å
šã§æãé¢é£æ§ã®é«ãã¢ãã¬ã¹æ
å ±ãå«ããªãœãŒã¹ããªãå Žåãå¯äžã®æ¹æ³ã¯ãã®ãããªãªãœãŒã¹ãèªåã§äœæããããšã§ãã
ããŒã2.æ€çŽ¢ã ãç¬ã¯ã©ãã«åè¬ãããŠããŸããïŒïŒã
ãŸããFIASã«ã€ããŠãèããŸããã 圌ãã©ã®ããã«ç¡éã«ãã£ã±ãã§çŸãããã«ã€ããŠã ãããŠããããåºå£ã§ãïŒ FIAS Webãµã€ãã«ã¯ããŒã¹ããããå¿
èŠãªã®ã¯æé·ããŠããè¥ãæ
å ±ã·ã¹ãã ã ãã§ãïŒ ç¢ºãã«ãããŒã¹ã®ãµã€ãºã¯4 Gb以äžã§ããããŸããããã¯ãã¹ãŠãã·ã¢ã§ãïŒ ããŒã¿ããŒã¹ã¯å®æçã«æŽæ°ãããããã移åããå ŽæããããŸãã ãã€ã³ãã¯å°ããã§ã-ããŒã¿ããŒã¹ãæ¡åŒµããAPIãšãã©ã°ã€ã³ãåºå®ããŸãã é¢é£ããéèŠãªèšäºãããã€ãããããšã«æ³šæããŠãã ããã ããšãã°ã
ãããã®äžé£ã®
èšäºã¯ ãæåã¯éåžžã«åœ¹ç«ã¡ãŸããã
ããŒã3.ãä»çµã¿ã
åé¡ã¯ãFIASããŒã¿ããŒã¹ã.dbf圢åŒã§é
ä¿¡ããããšããäºå®ããå§ãŸããŸããããã®ããŒã¿ã¯ãäœããã®åœ¢ã§PostgreSQLã«è»¢éãããããŒã¿ããŒã¹ãšããŠäœ¿çšããããšã決å®ãããŸããã
.dbf圢åŒã«å ããŠãããŒã¿ããŒã¹ã¯xml圢åŒã§è¡šç€ºãããããšã«æ³šæããŠãã ããã ãåç¥ã®ããã«ã人ã¯ãã¹ãŠãäžåºŠã«æãã§ããŸãã é»æºãå
¥ããŠåäœããããã«ããŸãã ããããFIASãæäŸãããã®ãããã«ç解ããããšã¯ããªãåé¡ã§ãã
ãã®ãããæŽæ°ã»ã¯ã·ã§ã³ã®fias.nalog.ruã«ã¯æ¬¡ã®ãã®ããããŸãã
- ã¢ããããŒãã«é¢ããæ
å ±ïŒå
¬åŒããŒã¿ã«ãããšããããã¯å°ãªããšãé±ã«1åå
¬éãããŸãã 詳现ã¯æ¬¡ã®ãšããã§ãã å£ããæŽæ°ãåºãŠããããšããããŸãã ãµã€ãºã¯çŽ1.2 Mbã§ãããããŠã³ããŒãæã«ç Žæããã¢ãŒã«ã€ããæäŸããããããææ°ã®ã¢ããããŒãã®ã¿ã«åãããŠæ¥ãã§èª¿æŽãããšåé¡ãçããŸãã
- fias_delta_ã®åœ¢åŒã®æŽæ°ã -.dbfããã³.xml圢åŒã
- å®éã«ã¯fias_ããŒã¿ããŒã¹ã -.dbfããã³.xml圢åŒã
- KLADR圢åŒã®ããŒã¿ããŒã¹ã ãã¡ã€ã«ã®ååã¯ãBaseã*ãArjãŸãã¯7zã§ããå€ãã®ãã£ãŒã«ããæ¬ èœããŠããïŒçšããŒã¿ãªã©ã«é¢ããŠïŒãããæ€çŽ¢ã¯KLADRovsky IDã䜿çšããŠå®è¡ãããŸãã æåã¯ããã®ç¹å®ã®åœ¢åŒã䜿çšããèªæããããŸããããã¯ãåŸã§ç解ããŠå®è£
ããã®ãç°¡åã ããã§ãã ããããããŒã¿ã«ã詳ãã調ã¹ãŠã¿ããšããã®ããŒãžã§ã³ã¯2017幎æ«ãŸã§ãããµããŒãããããå»æ¢ãããããšãå€æããŠããŸãã
泚ïŒ.dbfãã¡ã€ã«ã䜿çšããã«ã¯ãphp_dbase.dllã®ãµãŒãããŒãã£ã®æ¡åŒµæ©èœãã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã.xmlãŸãã¯.dbfãããŠã³ããŒãããããã«ã©ã®ãããªããŒãžã§ã³ãéžæããã®ã§ããããïŒ éãã¯æ¬¡ã®ãšããã§ãã
- xml-ã¢ãŒã«ã€ãå
ã®åãã¡ã€ã«ã¯åå¥ã®ããŒãã«ã§ãã åé¡ã¯äœã§ããïŒ ããšãã°ãèªå®
ã§ä¿åããããHOUSEXXããã¡ã€ã«ã®ãµã€ãºã¯ã解åããã圢åŒã§20 Gbãè¶
ããŸãã 解ææ¹æ³ äžæ¹ã30 Gb以äžã®RAMãããã°ãããã¯åé¡ã«ãªããŸããã ãŸããSAX Parser for Javaãªã©ããã¡ã€ã«å
šäœãã¡ã¢ãªã«ããŒããããéšåçã«è§£æããæèœãªã©ã€ãã©ãªãçç¥ããŠããå Žåã¯ãäœããæ©èœããå¯èœæ§ããããŸãã
- dbf-ãã¡ã€ã«ã¯ããŒãã«ãšããŠåå²ãããã ãã§ãªããå°åã«ãã£ãŠãåå²ãããŸãã åºå€§ãªç¥åœã®äœæãå¿
èŠãšããã1ã€ã®å°åã®ã¿ãå¿
èŠãšããå ŽåïŒç¹å®ã®å Žåã®ããã«ïŒãããåãå
¥ãããããªãã·ã§ã³ã«ãªããŸãã
ãã®ããããã¡ã€ã«ã解åããŸããã ã©ã®ãããªæ
å ±ãå¿
èŠã§ããïŒ æ¬¡ã®ãã¡ã€ã«ã»ããã衚瀺ãããŸãã
- ADDROBXX.DBFïŒXXã¯å°åçªå·ïŒ-å°åãèªæ²»åºãéœåžããã³ãã®ä»ã®éèœãéè·¯ã«é¢ããããŒã¿ãçŽæ¥å«ãŸããŠããŸãã
- HOUSEXX.DBFãXXã¯å°åçªå·ã§ã家çªå·ã«é¢ããæ
å ±ãå«ãŸããŠããŸãã
- NORDOCXX.DBFïŒXXã¯å°åçªå·ïŒã«ã¯ãããŸããŸãªã¬ã³ãŒãã®å€æŽçç±ã«é¢ããæ
å ±ãå«ãŸããŠããŸãã
- ROOMXX.DBFãXXïŒå°åçªå·ïŒã«ã¯ãæœèšã«é¢ããæ
å ±ãå«ãŸããŠããŸãã
- STEADXX.DBFïŒXXã¯å°åçªå·ïŒã«ã¯ãåå°åºç»ã«é¢ããæ
å ±ãå«ãŸããŠããŸãã
- SOCRBASE.DBF-ç¥èªã«é¢ããæ
å ±ãå«ãŸããŠããŸãã
- STRSTAT.DBF-建ç©ã®ã¿ã€ãã«é¢ããæ
å ±ãå«ãŸããŠããŸãã
ãããã®ããŒãã«ã«å ããŠãä»ã®ããŒãã«ã®ç¥èªã«é¢ããæ
å ±ãå«ããµãŒãã¹ããŒãã«ãããã€ããããŸãã
ã»ãšãã©ã®å Žåã家ãŸã§ã®äœæãäœæããã ãã§ååã§ãã ãã ãã誰ãããããå¿
èŠãšããå Žåã¯ãããã«å
ã«é²ãããšãã§ããŸãã
ãããã£ãŠãpostgresqlããŒã¿ããŒã¹ã«2ã€ã®ããŒãã«ãäœæããŸãã
ã¢ãã¬ã¹ä»ãã®è¡šïŒ
CREATE TABLE addrs ( "ACTSTATUS" integer, "AOGUID" character varying(36) COLLATE pg_catalog."default", "AOID" character varying(36) COLLATE pg_catalog."default", "AOLEVEL" integer, "AREACODE" integer, "AUTOCODE" integer, "CENTSTATUS" integer, "CITYCODE" integer, "CODE" character varying(20) COLLATE pg_catalog."default", "CURRSTATUS" integer, "ENDDATE" timestamp, "FORMALNAME" character varying(120) COLLATE pg_catalog."default", "IFNSFL" integer, "IFNSUL" integer, "NEXTID" character varying(36) COLLATE pg_catalog."default", "OFFNAME" character varying(120) COLLATE pg_catalog."default", "OKATO" VARCHAR(11), "OKTMO" VARCHAR(11), "OPERSTATUS" integer, "PARENTGUID" character varying(36) COLLATE pg_catalog."default", "PLACECODE" integer, "PLAINCODE" character varying(20) COLLATE pg_catalog."default", "POSTALCODE" integer, "PREVID" character varying(36) COLLATE pg_catalog."default", "REGIONCODE" integer, "SHORTNAME" character varying(15) COLLATE pg_catalog."default", "STARTDATE" timestamp, "STREETCODE" integer, "TERRIFNSFL" integer, "TERRIFNSUL" integer, "UPDATEDATE" timestamp, "CTARCODE" integer, "EXTRCODE" integer, "SEXTCODE" integer, "LIVESTATUS" integer, "NORMDOC" character varying(36) COLLATE pg_catalog."default", "PLANCODE" integer, "CADNUM" integer, "DIVTYPE" integer ) WITH ( OIDS = FALSE ) TABLESPACE pg_default; ALTER TABLE address OWNER to postgres;
家çªå·ã®ããããŒãã«ïŒ
CREATE TABLE hous ( "AOGUID" character varying(36) COLLATE pg_catalog."default", "BUILDNUM" character varying(10) COLLATE pg_catalog."default", "ENDDATE" timestamp, "ESTSTATUS" integer, "HOUSEGUID" character varying(36) COLLATE pg_catalog."default", "HOUSEID" character varying(36) COLLATE pg_catalog."default", "HOUSENUM" character varying(15) COLLATE pg_catalog."default", "STATSTATUS" integer, "IFNSFL" integer, "IFNSUL" integer, "OKATO" VARCHAR(11), "OKTMO" VARCHAR(11), "POSTALCODE" integer, "STARTDATE" timestamp, "STRUCNUM" VARCHAR(15), "STRSTATUS" integer, "TERRIFNSFL" integer, "TERRIFNSUL" integer, "UPDATEDATE" timestamp, "NORMDOC" character varying(36) COLLATE pg_catalog."default", "COUNTER" integer, "CADNUM" VARCHAR(50), "DIVTYPE" integer ) WITH ( OIDS = FALSE ) TABLESPACE pg_default;
ããŒã¿ã®ã€ã³ããŒãã¯ç°¡åã§ãã Excelã§ãã¡ã€ã«ãéããcsvãšããŠä¿åããŸãã ããã«ãutf-8ãšã³ã³ãŒãã£ã³ã°ã§è¡šç€ºãããxmlãã¡ã€ã«ãšã¯ç°ãªããdbfãã¡ã€ã«ã¯win-866ãšã³ã³ãŒãã£ã³ã°ã§ããããããšã³ã³ãŒãã£ã³ã°ãå€æŽããããšããå§ãããŸãã ãšãã£ã¿ãŒã§ãã¡ã€ã«ãéãïŒã¡ã¢åž³++ããã®ç®çã«é©ããŠããŸãïŒãutf-8ã«å€æããŸãã
ã¢ãã¬ã¹ä»ãã®ã€ã³ããŒãããŒãã«ïŒ
COPY addrs FROM 'PathToTheFile\ADDROB01.csv' DELIMITER ';' CSV;
家ãå«ãã€ã³ããŒãããŒãã«ïŒ
COPY addrs FROM 'PathToTheFile\HOUSE30.csv' DELIMITER ';' CSV;
ADDROBXXããŒãã«ã¯äœã§ã§ããŠããŸããïŒè±å¯ãªãã£ãŒã«ãã«ãããããããå¿
èŠãªãã£ãŒã«ãã¯ãããããã§ãã
- ACTSTATUS-ãã£ãŒã«ãã«ã¯å€0ããã³1ãå«ãŸããŸããæ
éã«èª¿ã¹ããšãããŒãã«ã«åãååã®å€ãã®éè·¯ãããããšãããããŸãã å®éã«ã¯ã課çšããŒã¹ã«ã¯ãªããžã§ã¯ãã®å±¥æŽãå«ãŸããŠããŸãã ã¢ãã¬ã¹èŠçŽ ã«çºçããå€æŽã ããšãã°ãã¬ãŒãã³éãã¯10åã§ãã ãããã®ãã¡ã9ã¯ç¡é¢ä¿ã§ãã å¥ã®æ¹æ³ã§ååãå€æŽãŸãã¯å€æŽã§ããŸãã ACTSTATUS-0-ç¡é¢ä¿ãªã¢ãã¬ã¹ã1-çŸåšã®ã¿ã
- AOGUID-ã¬ã³ãŒãIDã ç°ãªãå±¥æŽã¬ã³ãŒãã«ã€ããŠã¯ãåãAOGUIDããããŸãã AOIDãã£ãŒã«ããç°ãªããŸãã
- AOLEVEL-ãªããžã§ã¯ãã¬ãã«ã çªå·1ã¯é£åã®äž»é¡ã4ã¯éœåžã7ã¯éããªã©ã§ãã
- CENTSTATUS-ã»ã³ã¿ãŒã®ã¹ããŒã¿ã¹ã ããšãã°ãå°åã»ã³ã¿ãŒã®éœåžã
- FORMALNAME-ãªããžã§ã¯ãã®ååã
- PARENTGUID-芪èŠçŽ ã®IDã éããå±ããéœåžãæ€çŽ¢ãããšãã PARENTGUIDéãã¯AOGUIDéããšäžèŽããŸãã
- POSTALCODE-éµäŸ¿çªå·ã
- REGIONCODE-é£åã®äž»é¡ã®ã³ãŒãã
泚ïŒfias-nalog.ruã«ã¯ããã¹ãŠã®ãã£ãŒã«ãã®è©³çŽ°ãªèª¬æããããŸããHOUSEXXããŒãã«ã§éèŠïŒ- AOGUID-家ãããADDROBXXã®ã¹ããªãŒãIDã
- HOUSEGUID-家ã®IDã
- é£ããã¯å®¶ã®ååã«ãããŸãã 4ã€ã®ãã£ãŒã«ãã§æ§æãããŸãã
- BUILDNUM-ã±ãŒã¹çªå·ã
- HOUSENUM-家çªå·ã
- STRUCNUM-建ç©çªå·ã
- STRSTATUSã¯æ§é ã®ãµã€ã³ã§ãïŒ0ãã4ãŸã§ã0ã¯ãªãã1ã¯æ§é ã2ã¯æ§é ã3ã¯æåïŒã
ãã£ãŒã«ãã«ã¯ãé¡äŒŒãŸãã¯åäžã®æ
å ±ãå«ããããšãã§ããå®éšçã«ç¶æ³ããæãåºãå¿
èŠããããŸãã QuerryControllerã¯ã©ã¹ã«ã¡ãœããïŒä»¥äžã®ãªããžããªãžã®ãªã³ã¯ïŒããããŸãïŒchooseBuildingããã®åé¡ã解決ããããšããŸããã ãã¶ã誰ããè¯ããªãã§ãããã ããŒã¿ããŒã¹ã¯ãšãªã¯åãå Žæã«ãããŸãã
ããã«ãããŒã¿ããŒã¹ãPostgresã«ã€ã³ããŒããããåŸãã·ã¹ãã çšã®APIãšãã©ã°ã€ã³ã®äœæãéå§ããŸããã
APIã§ã¯ããã£ã¹ãããªãããã«ãLaravelã䜿çšããŸããã ã¯ãšãªã¹ããŒã ã¯éåžžã«åçŽã§ããããšãå€æããŸããã ãªããžã§ã¯ãã®éå±€ã¯æ¬¡ã®ãšããã§ãã
- é£åã®äž»é¡
- é£åã®äž»é¡ã®å°å
- å±ææ§
- éã
- ããŠã¹
ãšããã§ãã·ã¹ãã ããã¹ããããšãã«ããã¹ãŠã®éèœã«éããããããã§ã¯ãªãããã¹ãŠã®éãã«å®¶ãããããã§ã¯ãªããšããäºå®ã«çŽé¢ããŸããã ãŠãŒã¶ãŒãèªåã§æ
å ±ãå
¥åããæ©äŒããŠãŒã¶ãŒã«æäŸãããšããŠãŒã¶ãŒã¯ãããæžããŠãããããã®äººã
ã¯åŠæ ¡ã§å匷ããŸãããïŒïŒã
ãããã£ãŠããŠãŒã¶ãŒã«ã€ãã·ã¢ããã®ããããªæ©äŒãäžããã®ã§ã¯ãªãããã®ãããªãæ¬ èœãã¢ãã¬ã¹ã«å¯ŸããŠãæ¬ èœããŠããã¢ãã¬ã¹ããã«ãã·ã¹ãã ã«å«ããããšãç³è«ããæ©äŒãæäŸããããšã«ããŸããã
ã¯ãšãªã¹ããŒãã¯ã·ã³ãã«ã«èŠããŸãã
æåŸã®æ®µèœã§ã¯ãæçŽã建ç©ã建ç©ãªã©ã®ãã家ã®ãªã¹ããäœæãããŸãã
ãã¹ãŠã®è©Šç·Žã®åŸããã£ã¬ã¯ããªãšjQueryã§ã®ä»£æ¿ãšããŠæ©èœããããã«ãvue.jsã§ãã©ã°ã€ã³ãäœæããŸããã
å°åãšå°åºã¯éœåžãšäžç·ã«ãŸãšããããŠãããããäžå¿
èŠã«åé€ã§ããŸãã
KLADRã®ããã«ãå
¥åæã«ãªãŒãã³ã³ããªãŒãããã³ããããããã¢ããããŸãã 確ãã«ãKLADRãã©ã°ã€ã³ã¯èªåè£å®çšã«èšèšãããŠããŸãããããã§ã¯ããã³ããããéžæãããã¢ãã¬ã¹ã®ã¿ãæå¹ãšèŠãªãããŸãã
ASPUDcomponentãã©ã«ããŒ-ã¢ãã¬ã¹ããŒã¿ããŒã¹ãæäœããããã®VueJsã³ã³ããŒãã³ãããããŸãã
ãœãŒã¹ã¯
ãªããžããªã§å
¥æã§ã
ãŸã ã
ããŒã4.ãã¹ãŠãæŽæ°ããæ¹æ³ã¯ïŒ
æŽæ°ã®ç¶æ³ã¯æ¬¡ã®ãšããã§ããæåã«ãSOAPãä»ããŠæŽæ°ããŒãžã§ã³ãååŸããå¿
èŠããããŸãã UpdateControllerã¯ã©ã¹ïŒã¡ãœããïŒfilesVersionsïŒïŒïŒã§ãããã©ã®ããã«è¡ãããããèŠãããšãã§ããŸãã
泚ïŒåä¿¡ãããªã¹ãã®æåŸã«ãªã¹ããããŠããããŒãžã§ã³ã¯ãã¡ã€ã³ããŒãžã§ããŠã³ããŒãã§ããããŒãžã§ã³ãšå¿
ãããäžèŽããŸããã ãã ããæ¥ãã§ææ°ããŒãžã§ã³ã®ã¿ãããŠã³ããŒãããªãã§ãã ããããããããã«ãªãããšããããŸãã ãã®ãããªå
äŸããããŸããã 次ã«ãææ°ããŒãžã§ã³ã®ã¢ãŒã«ã€ããããŠã³ããŒãããã解åãããŸãã åäœãããã«ã¯ãphpã®æ¡åŒµæ©èœïŒphp_rar.dllïŒã䜿çšããå¿
èŠããããŸãã
ããã§ã¯ãããŒã¿ããŒã¹ãæŽæ°ããããã«å¿
èŠãªãªãŒãžã§ã³ãã¡ã€ã«ïŒãŸãã¯å¿
èŠã«å¿ããŠãã¹ãŠã®ãã¡ã€ã«ïŒãéžæãããŸãã