├── .gitignore ├── README.md ├── babel.config.js ├── docs ├── css │ ├── app.bc0bddf1.css │ └── chunk-vendors.d3bc3889.css ├── favicon.ico ├── heatmap.html ├── index.html └── js │ ├── app.89cfdbde.js │ └── chunk-vendors.4228fc2f.js ├── package.json ├── public ├── favicon.ico └── index.html ├── raw ├── area-location.json └── neighborhood_taipei │ ├── G97_A_CALIN_P.dbf │ ├── G97_A_CALIN_P.shp │ ├── G97_A_CALIN_P.shx │ └── neighborhood_taipei_2020. geo.json ├── src ├── App.vue ├── assets │ └── logo.png ├── components │ ├── HelloWorld.vue │ ├── VueLeaflet.vue │ └── infoPopup.vue ├── main.js ├── resource │ └── map-settings.json ├── store │ └── index.js └── styles │ └── reset.scss ├── vue.config.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | package-lock.json 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # mask-map 2 | 3 | ## Project setup 4 | ``` 5 | yarn install 6 | ``` 7 | 8 | ### Compiles and hot-reloads for development 9 | ``` 10 | yarn serve 11 | ``` 12 | 13 | ### Compiles and minifies for production 14 | ``` 15 | yarn build 16 | ``` 17 | 18 | ### Lints and fixes files 19 | ``` 20 | yarn lint 21 | ``` 22 | 23 | ### Customize configuration 24 | See [Configuration Reference](https://cli.vuejs.org/config/). 25 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /docs/css/app.bc0bddf1.css: -------------------------------------------------------------------------------- 1 | .vue-leaflet[data-v-09085cdc]{display:block;position:absolute;width:100%;height:100%}.map-info[data-v-09085cdc]{display:block;padding:.75em 1.75em;background-color:#fff;border:1px solid #000;position:absolute;z-index:10;top:0;right:0}.map[data-v-09085cdc]{display:block;position:absolute;width:100%;height:100%;z-index:1}[data-v-09085cdc] .store-title{font-size:1.5em;line-height:1.7em;font-weight:900;margin-bottom:6px;text-align:center}[data-v-09085cdc] .store-info{font-size:1.3em;line-height:1.5}.fa-directions[data-v-09085cdc],[data-v-09085cdc] .fa-phone{font-size:.85em;font-weight:600}.popup[data-v-57955541]{-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:10px;position:fixed;display:block;width:90%;min-height:150px;background-color:#fff;top:15%;left:5%;padding:1.5rem;line-height:1.5;z-index:100;border:2px solid #999}.popup p[data-v-57955541]{margin-bottom:1em}.popup .popup-close[data-v-57955541]{top:-.5em;right:-.25em;font-size:2rem;position:absolute;color:#333}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}.info{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 1em;position:fixed;display:block;width:100%;height:2.2em;line-height:2.2em;background-color:#fff;z-index:10}.info h1{display:inline-block}.fa-info-circle{margin-left:1em} -------------------------------------------------------------------------------- /docs/css/chunk-vendors.d3bc3889.css: -------------------------------------------------------------------------------- 1 | .leaflet-cluster-anim .leaflet-marker-icon,.leaflet-cluster-anim .leaflet-marker-shadow{-webkit-transition:-webkit-transform .3s ease-out,opacity .3s ease-in;-webkit-transition:opacity .3s ease-in,-webkit-transform .3s ease-out;transition:opacity .3s ease-in,-webkit-transform .3s ease-out;transition:transform .3s ease-out,opacity .3s ease-in;transition:transform .3s ease-out,opacity .3s ease-in,-webkit-transform .3s ease-out}.leaflet-cluster-spider-leg{-webkit-transition:-webkit-stroke-dashoffset .3s ease-out,-webkit-stroke-opacity .3s ease-in;-webkit-transition:stroke-dashoffset .3s ease-out,stroke-opacity .3s ease-in;transition:stroke-dashoffset .3s ease-out,stroke-opacity .3s ease-in}.marker-cluster-small{background-color:rgba(181,226,140,.6)}.marker-cluster-small div{background-color:rgba(110,204,57,.6)}.marker-cluster-medium{background-color:rgba(241,211,87,.6)}.marker-cluster-medium div{background-color:rgba(240,194,12,.6)}.marker-cluster-large{background-color:rgba(253,156,115,.6)}.marker-cluster-large div{background-color:rgba(241,128,23,.6)}.leaflet-oldie .marker-cluster-small{background-color:#b5e28c}.leaflet-oldie .marker-cluster-small div{background-color:#6ecc39}.leaflet-oldie .marker-cluster-medium{background-color:#f1d357}.leaflet-oldie .marker-cluster-medium div{background-color:#f0c20c}.leaflet-oldie .marker-cluster-large{background-color:#fd9c73}.leaflet-oldie .marker-cluster-large div{background-color:#f18017}.marker-cluster{background-clip:padding-box;border-radius:20px}.marker-cluster div{width:30px;height:30px;margin-left:5px;margin-top:5px;text-align:center;border-radius:15px;font:12px Helvetica Neue,Arial,Helvetica,sans-serif}.marker-cluster span{line-height:30px}.leaflet-image-layer,.leaflet-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane,.leaflet-pane>canvas,.leaflet-pane>svg,.leaflet-tile,.leaflet-tile-container,.leaflet-zoom-box{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::-moz-selection{background:transparent}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-overlay-pane svg,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer{max-width:none!important;max-height:none!important}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{-webkit-filter:inherit;filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-webkit-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-bottom,.leaflet-top{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-tile{will-change:opacity}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;transform-origin:0 0}.leaflet-zoom-anim .leaflet-zoom-animated{will-change:transform;-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1),-webkit-transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-zoom-anim .leaflet-tile{-webkit-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:grabbing}.leaflet-image-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-image-layer.leaflet-interactive,.leaflet-marker-icon.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline:0}.leaflet-container a{color:#0078a8}.leaflet-container a.leaflet-active{outline:2px solid orange}.leaflet-zoom-box{border:2px dotted #38f;background:hsla(0,0%,100%,.5)}.leaflet-container{font:12px/1.5 Helvetica Neue,Arial,Helvetica,sans-serif}.leaflet-bar{-webkit-box-shadow:0 1px 5px rgba(0,0,0,.65);box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:4px}.leaflet-bar a,.leaflet-bar a:hover{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{-webkit-box-shadow:0 1px 5px rgba(0,0,0,.4);box-shadow:0 1px 5px rgba(0,0,0,.4);background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers-expanded .leaflet-control-layers-toggle,.leaflet-control-layers .leaflet-control-layers-list{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:hsla(0,0%,100%,.7);margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-container .leaflet-control-attribution,.leaflet-container .leaflet-control-scale{font-size:11px}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;font-size:11px;white-space:nowrap;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;background:#fff;background:hsla(0,0%,100%,.5)}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{-webkit-box-shadow:none;box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 19px;line-height:1.4}.leaflet-popup-content p{margin:18px 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;-webkit-box-shadow:0 3px 14px rgba(0,0,0,.4);box-shadow:0 3px 14px rgba(0,0,0,.4)}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;padding:4px 4px 0 0;border:none;text-align:center;width:18px;height:14px;font:16px/14px Tahoma,Verdana,sans-serif;color:#c3c3c3;text-decoration:none;font-weight:700;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover{color:#999}.leaflet-popup-scrolled{overflow:auto;border-bottom:1px solid #ddd;border-top:1px solid #ddd}.leaflet-oldie .leaflet-popup-content-wrapper{zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678,M12=0.70710678,M21=-0.70710678,M22=0.70710678)}.leaflet-oldie .leaflet-popup-tip-container{margin-top:-1px}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.4);box-shadow:0 1px 3px rgba(0,0,0,.4)}.leaflet-tooltip.leaflet-clickable{cursor:pointer;pointer-events:auto}.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before,.leaflet-tooltip-top:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff} -------------------------------------------------------------------------------- /docs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kurotanshi/mask-map/9cd4ea2d487ccb86b549b82f98243c2b8d1e7419/docs/favicon.ico -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 口罩供需資訊平台 & 健保特約醫事機構地圖
-------------------------------------------------------------------------------- /docs/js/app.89cfdbde.js: -------------------------------------------------------------------------------- 1 | (function(t){function e(e){for(var o,c,i=e[0],s=e[1],u=e[2],l=0,f=[];lOpenStreetMap contributors, CC-BY-SA, Imagery © Mapbox","icon":{"iconUrl":"https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-violet.png","shadowUrl":"https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png","iconSize":[25,41],"iconAnchor":[12,41],"popupAnchor":[1,-34],"shadowSize":[41,41]}}')},"41d2":function(t,e,n){},"56d7":function(t,e,n){"use strict";n.r(e);n("e260"),n("e6cf"),n("cca6"),n("a79d");var o=n("2b0e"),r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"app"}},[n("div",{staticClass:"info",on:{click:function(e){e.preventDefault(),t.isPopupShow=!0}}},[n("h1",[t._v("口罩供需資訊平台 & 健保特約醫事機構地圖")]),n("i",{staticClass:"fas fa-info-circle"})]),n("infoPopup",{directives:[{name:"show",rawName:"v-show",value:t.isPopupShow,expression:"isPopupShow"}],on:{close:function(e){t.isPopupShow=!1}}}),n("vue-leaflet")],1)},a=[],c=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"vue-leaflet"},[n("div",{staticClass:"map"},[n("l-map",{ref:"myMap",attrs:{zoom:t.zoom,center:t.center,options:{zoomControl:!1}}},[n("l-tile-layer",{attrs:{url:t.url,attribution:t.attribution}}),n("l-marker",{ref:"hereMarker",attrs:{"lat-lng":t.center,icon:t.icon}}),n("v-marker-cluster",{attrs:{options:t.clusterOptions}},t._l(t.stores,(function(e){return n("l-geo-json",{key:e.id,attrs:{geojson:e,options:t.geoJsonOptions}})})),1)],1)],1)])},i=[],s=(n("a4d3"),n("99af"),n("4de4"),n("4160"),n("b0c0"),n("e439"),n("dbb4"),n("b64b"),n("ac1f"),n("5319"),n("159b"),n("ade3")),u=n("2699"),p=n("a40a"),l=n("044a"),f=n("4e2b"),d=n("ca9f"),h=n.n(d),m=n("1ccd");function v(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,o)}return n}function b(t){for(var e=1;e'.concat(t.name,'\n
\n
').concat(e,'
\n
').concat(t.address,"
\n
\n
成人口罩: ").concat(t.mask_adult,"
\n
小孩口罩: ").concat(t.mask_child,"
\n
更新時間: ").concat(""===t.updated?"(不明)":t.updated,"
\n
\n ")},customIcon:function(t){return g.icon(b({},m.icon,{iconUrl:"https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-".concat(t,".png")}))},createCustomIcon:function(t,e){var n=t.properties,o=n.mask_adult,r=this.icons.grey;return o>100?r=this.icons.green:o>50?r=this.icons.yellow:o>0&&(r=this.icons.red),g.marker(e,{icon:r})}},mounted:function(){var t=this;this.$store.dispatch("fetchPharmacies"),this.$nextTick((function(){var e=t.$refs.myMap.mapObject;g.control.zoom({position:"bottomright"}).addTo(e),navigator.geolocation.getCurrentPosition((function(e){var n=e.coords;t.center=g.latLng(n.latitude,n.longitude),t.$refs.hereMarker.mapObject.bindTooltip("You",{offset:[0,-36],permanent:!0,direction:"top"})}))}))}},y=w,O=(n("0525"),n("2877")),j=Object(O["a"])(y,c,i,!1,null,"09085cdc",null),_=j.exports,k=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"popup"},[n("a",{staticClass:"popup-close",attrs:{href:""},on:{click:function(e){return e.preventDefault(),t.$emit("close")}}},[n("i",{staticClass:"fas fa-times-circle"})]),n("p",[t._v("您好:")]),n("p",[t._v("口罩的取得須依政府頒布的規則辦理。 庫存數量僅供參考,資訊約每分鐘更新一次,實際庫存仍以個別單位現場為準。")]),n("p",{staticStyle:{color:"#f00"}},[t._v("部分藥局因採發放號碼牌方式,方便民眾購買口罩,因目前無法顯示顯示已發送號碼牌數量。若看到剩餘數量,請先電洽藥局。")]),t._m(0)])},P=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("p",[t._v("詳細情況以 "),n("a",{attrs:{target:"_blank",href:"https://www.nhi.gov.tw/Content_List.aspx?n=395F52D193F3B5C7&topn=787128DAD5F71B1A"}},[t._v("衛生福利部中央健康保險署")]),t._v(" 說明為主,本網頁資料由 "),n("a",{attrs:{target:"_blank",href:"https://mask.pdis.nat.gov.tw/"}},[t._v("口罩供需資訊平台")]),t._v(" 與社群朋友提供,感謝各方協助")])}],x={name:"infoPopup"},S=x,I=(n("9a64"),Object(O["a"])(S,k,P,!1,null,"57955541",null)),C=I.exports,L={name:"app",components:{VueLeaflet:_,infoPopup:C},data:function(){return{isPopupShow:!1}}},M=L,D=(n("5c0b"),Object(O["a"])(M,r,a,!1,null,null,null)),$=D.exports,z=(n("d3b7"),n("96cf"),n("1da1")),T=n("2f62");o["a"].use(T["a"]);var U=new T["a"].Store({state:{stores:[]},mutations:{setStores:function(t,e){t.stores=e}},actions:{fetchPharmacies:function(){var t=this;return Object(z["a"])(regeneratorRuntime.mark((function e(){var n;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,fetch("https://kiang.github.io/pharmacies/json/points.json").then((function(t){return t.json()}));case 2:n=e.sent,t.commit("setStores",n);case 4:case"end":return e.stop()}}),e)})))()}},modules:{}}),A=n("e11e");n("6cc5");o["a"].config.productionTip=!1,delete A["Icon"].Default.prototype._getIconUrl,A["Icon"].Default.mergeOptions({iconRetinaUrl:n("584d"),iconUrl:n("6397"),shadowUrl:n("e2b9")}),new o["a"]({store:U,render:function(t){return t($)}}).$mount("#app")},"5c0b":function(t,e,n){"use strict";var o=n("9c0c"),r=n.n(o);r.a},"9a64":function(t,e,n){"use strict";var o=n("41d2"),r=n.n(o);r.a},"9c0c":function(t,e,n){},c788:function(t,e,n){}}); -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mask-map", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint" 9 | }, 10 | "dependencies": { 11 | "@turf/turf": "^5.1.6", 12 | "core-js": "^3.4.4", 13 | "leaflet": "^1.6.0", 14 | "vue": "^2.6.10", 15 | "vue2-leaflet": "^2.4.2", 16 | "vue2-leaflet-markercluster": "^3.1.0", 17 | "vuex": "^3.1.2" 18 | }, 19 | "devDependencies": { 20 | "@vue/cli-plugin-babel": "^4.1.0", 21 | "@vue/cli-plugin-eslint": "^4.1.0", 22 | "@vue/cli-plugin-vuex": "^4.1.0", 23 | "@vue/cli-service": "^4.1.0", 24 | "@vue/eslint-config-standard": "^4.0.0", 25 | "babel-eslint": "^10.0.3", 26 | "eslint": "^5.16.0", 27 | "eslint-plugin-vue": "^5.0.0", 28 | "node-sass": "^4.12.0", 29 | "sass-loader": "^8.0.0", 30 | "vue-template-compiler": "^2.6.10" 31 | }, 32 | "eslintConfig": { 33 | "root": true, 34 | "env": { 35 | "node": true 36 | }, 37 | "extends": [ 38 | "plugin:vue/essential", 39 | "@vue/standard" 40 | ], 41 | "rules": {}, 42 | "parserOptions": { 43 | "parser": "babel-eslint" 44 | } 45 | }, 46 | "browserslist": [ 47 | "> 1%", 48 | "last 2 versions" 49 | ] 50 | } 51 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kurotanshi/mask-map/9cd4ea2d487ccb86b549b82f98243c2b8d1e7419/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 口罩供需資訊平台 & 健保特約醫事機構地圖 11 | 20 | 21 | 22 | 23 | 27 | 31 |
32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /raw/area-location.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "sort": 1, 3 | "id": "0000", 4 | "name": "臺北市", 5 | "districts": [{ 6 | "sort": 10, 7 | "id": 1, 8 | "name": "中正區", 9 | "latitude": 25.044214, 10 | "longitude": 121.524725, 11 | "zipCode": 100 12 | }, { 13 | "sort": 12, 14 | "id": 2, 15 | "name": "大同區", 16 | "latitude": 25.066128, 17 | "longitude": 121.51558, 18 | "zipCode": 103 19 | }, { 20 | "sort": 2, 21 | "id": 3, 22 | "name": "中山區", 23 | "latitude": 25.064449, 24 | "longitude": 121.533668, 25 | "zipCode": 104 26 | }, { 27 | "sort": 8, 28 | "id": 4, 29 | "name": "松山區", 30 | "latitude": 25.049878, 31 | "longitude": 121.577233, 32 | "zipCode": 105 33 | }, { 34 | "sort": 4, 35 | "id": 5, 36 | "name": "大安區", 37 | "latitude": 25.026511, 38 | "longitude": 121.534346, 39 | "zipCode": 106 40 | }, { 41 | "sort": 11, 42 | "id": 6, 43 | "name": "萬華區", 44 | "latitude": 25.035047, 45 | "longitude": 121.499776, 46 | "zipCode": 108 47 | }, { 48 | "sort": 5, 49 | "id": 7, 50 | "name": "信義區", 51 | "latitude": 25.033427, 52 | "longitude": 121.566911, 53 | "zipCode": 110 54 | }, { 55 | "sort": 7, 56 | "id": 8, 57 | "name": "士林區", 58 | "latitude": 25.092897, 59 | "longitude": 121.519771, 60 | "zipCode": 111 61 | }, { 62 | "sort": 6, 63 | "id": 9, 64 | "name": "北投區", 65 | "latitude": 25.132377, 66 | "longitude": 121.502949, 67 | "zipCode": 112 68 | }, { 69 | "sort": 1, 70 | "id": 10, 71 | "name": "內湖區", 72 | "latitude": 25.06936, 73 | "longitude": 121.588996, 74 | "zipCode": 114 75 | }, { 76 | "sort": 9, 77 | "id": 11, 78 | "name": "南港區", 79 | "latitude": 25.054527, 80 | "longitude": 121.606793, 81 | "zipCode": 115 82 | }, { 83 | "sort": 3, 84 | "id": 12, 85 | "name": "文山區", 86 | "latitude": 24.989503, 87 | "longitude": 121.5702, 88 | "zipCode": 116 89 | }] 90 | }, { 91 | "sort": 2, 92 | "id": "0001", 93 | "name": "新北市", 94 | "districts": [{ 95 | "sort": 22, 96 | "id": 13, 97 | "name": "萬里區", 98 | "latitude": 25.178117, 99 | "longitude": 121.689572, 100 | "zipCode": 207 101 | }, { 102 | "sort": 21, 103 | "id": 14, 104 | "name": "金山區", 105 | "latitude": 25.222232818603516, 106 | "longitude": 121.63664245605469, 107 | "zipCode": 208 108 | }, { 109 | "sort": 3, 110 | "id": 15, 111 | "name": "板橋區", 112 | "latitude": 25.009628295898438, 113 | "longitude": 121.45906066894531, 114 | "zipCode": 220 115 | }, { 116 | "sort": 2, 117 | "id": 16, 118 | "name": "汐止區", 119 | "latitude": 25.063602447509766, 120 | "longitude": 121.65888977050781, 121 | "zipCode": 221 122 | }, { 123 | "sort": 20, 124 | "id": 17, 125 | "name": "深坑區", 126 | "latitude": 25.00259, 127 | "longitude": 121.615871, 128 | "zipCode": 222 129 | }, { 130 | "sort": 24, 131 | "id": 18, 132 | "name": "石碇區", 133 | "latitude": 24.991504669189453, 134 | "longitude": 121.65792846679687, 135 | "zipCode": 223 136 | }, { 137 | "sort": 19, 138 | "id": 19, 139 | "name": "瑞芳區", 140 | "latitude": 25.108890533447266, 141 | "longitude": 121.80989837646484, 142 | "zipCode": 224 143 | }, { 144 | "sort": 27, 145 | "id": 20, 146 | "name": "平溪區", 147 | "latitude": 25.026642, 148 | "longitude": 121.738199, 149 | "zipCode": 226 150 | }, { 151 | "sort": 28, 152 | "id": 21, 153 | "name": "雙溪區", 154 | "latitude": 25.033759, 155 | "longitude": 121.865789, 156 | "zipCode": 227 157 | }, { 158 | "sort": 29, 159 | "id": 22, 160 | "name": "貢寮區", 161 | "latitude": 25.021873, 162 | "longitude": 121.91022, 163 | "zipCode": 228 164 | }, { 165 | "sort": 9, 166 | "id": 23, 167 | "name": "新店區", 168 | "latitude": 24.974704, 169 | "longitude": 121.543124, 170 | "zipCode": 231 171 | }, { 172 | "sort": 26, 173 | "id": 24, 174 | "name": "坪林區", 175 | "latitude": 24.936164855957031, 176 | "longitude": 121.71173095703125, 177 | "zipCode": 232 178 | }, { 179 | "sort": 25, 180 | "id": 25, 181 | "name": "烏來區", 182 | "latitude": 24.871730804443359, 183 | "longitude": 121.54796600341797, 184 | "zipCode": 233 185 | }, { 186 | "sort": 12, 187 | "id": 26, 188 | "name": "永和區", 189 | "latitude": 25.009176254272461, 190 | "longitude": 121.52042388916016, 191 | "zipCode": 234 192 | }, { 193 | "sort": 6, 194 | "id": 27, 195 | "name": "中和區", 196 | "latitude": 24.998544692993164, 197 | "longitude": 121.50070190429687, 198 | "zipCode": 235 199 | }, { 200 | "sort": 13, 201 | "id": 28, 202 | "name": "土城區", 203 | "latitude": 24.972597122192383, 204 | "longitude": 121.44281005859375, 205 | "zipCode": 236 206 | }, { 207 | "sort": 11, 208 | "id": 29, 209 | "name": "三峽區", 210 | "latitude": 24.934240341186523, 211 | "longitude": 121.368896484375, 212 | "zipCode": 237 213 | }, { 214 | "sort": 8, 215 | "id": 30, 216 | "name": "樹林區", 217 | "latitude": 24.989854, 218 | "longitude": 121.424594, 219 | "zipCode": 238 220 | }, { 221 | "sort": 15, 222 | "id": 31, 223 | "name": "鶯歌區", 224 | "latitude": 24.956161499023438, 225 | "longitude": 121.35418701171875, 226 | "zipCode": 239 227 | }, { 228 | "sort": 1, 229 | "id": 32, 230 | "name": "三重區", 231 | "latitude": 25.060848236083984, 232 | "longitude": 121.48833465576172, 233 | "zipCode": 241 234 | }, { 235 | "sort": 7, 236 | "id": 33, 237 | "name": "新莊區", 238 | "latitude": 25.035879135131836, 239 | "longitude": 121.45061492919922, 240 | "zipCode": 242 241 | }, { 242 | "sort": 16, 243 | "id": 34, 244 | "name": "泰山區", 245 | "latitude": 25.059307, 246 | "longitude": 121.431311, 247 | "zipCode": 243 248 | }, { 249 | "sort": 4, 250 | "id": 35, 251 | "name": "林口區", 252 | "latitude": 25.076778411865234, 253 | "longitude": 121.38866424560547, 254 | "zipCode": 244 255 | }, { 256 | "sort": 10, 257 | "id": 36, 258 | "name": "蘆洲區", 259 | "latitude": 25.084693, 260 | "longitude": 121.473611, 261 | "zipCode": 247 262 | }, { 263 | "sort": 14, 264 | "id": 37, 265 | "name": "五股區", 266 | "latitude": 25.083044052124023, 267 | "longitude": 121.43809509277344, 268 | "zipCode": 248 269 | }, { 270 | "sort": 18, 271 | "id": 38, 272 | "name": "八里區", 273 | "latitude": 25.149397, 274 | "longitude": 121.401257, 275 | "zipCode": 249 276 | }, { 277 | "sort": 5, 278 | "id": 39, 279 | "name": "淡水區", 280 | "latitude": 25.187069, 281 | "longitude": 121.44394, 282 | "zipCode": 251 283 | }, { 284 | "sort": 17, 285 | "id": 40, 286 | "name": "三芝區", 287 | "latitude": 25.257839202880859, 288 | "longitude": 121.50111389160156, 289 | "zipCode": 252 290 | }, { 291 | "sort": 23, 292 | "id": 41, 293 | "name": "石門區", 294 | "latitude": 25.29121208190918, 295 | "longitude": 121.56786346435547, 296 | "zipCode": 253 297 | }] 298 | }, { 299 | "sort": 12, 300 | "id": "0002", 301 | "name": "基隆市", 302 | "districts": [{ 303 | "sort": 7, 304 | "id": 42, 305 | "name": "仁愛區", 306 | "latitude": 25.125144, 307 | "longitude": 121.736553, 308 | "zipCode": 200 309 | }, { 310 | "sort": 4, 311 | "id": 43, 312 | "name": "信義區", 313 | "latitude": 25.129433, 314 | "longitude": 121.751346, 315 | "zipCode": 201 316 | }, { 317 | "sort": 3, 318 | "id": 44, 319 | "name": "中正區", 320 | "latitude": 25.14096, 321 | "longitude": 121.759378, 322 | "zipCode": 202 323 | }, { 324 | "sort": 6, 325 | "id": 45, 326 | "name": "中山區", 327 | "latitude": 25.152976, 328 | "longitude": 121.72948, 329 | "zipCode": 203 330 | }, { 331 | "sort": 2, 332 | "id": 46, 333 | "name": "安樂區", 334 | "latitude": 25.121095, 335 | "longitude": 121.723267, 336 | "zipCode": 204 337 | }, { 338 | "sort": 5, 339 | "id": 47, 340 | "name": "暖暖區", 341 | "latitude": 25.1002197265625, 342 | "longitude": 121.73592376708984, 343 | "zipCode": 205 344 | }, { 345 | "sort": 1, 346 | "id": 48, 347 | "name": "七堵區", 348 | "latitude": 25.097631, 349 | "longitude": 121.716625, 350 | "zipCode": 206 351 | }] 352 | }, { 353 | "sort": 11, 354 | "id": "0004", 355 | "name": "宜蘭縣", 356 | "districts": [{ 357 | "sort": 1, 358 | "id": 53, 359 | "name": "宜蘭市", 360 | "latitude": 24.752052, 361 | "longitude": 121.753386, 362 | "zipCode": 260 363 | }, { 364 | "sort": 10, 365 | "id": 54, 366 | "name": "頭城鎮", 367 | "latitude": 24.854665, 368 | "longitude": 121.821413, 369 | "zipCode": 261 370 | }, { 371 | "sort": 5, 372 | "id": 55, 373 | "name": "礁溪鄉", 374 | "latitude": 24.823514, 375 | "longitude": 121.77121, 376 | "zipCode": 262 377 | }, { 378 | "sort": 6, 379 | "id": 56, 380 | "name": "壯圍鄉", 381 | "latitude": 24.74693489074707, 382 | "longitude": 121.78573608398437, 383 | "zipCode": 263 384 | }, { 385 | "sort": 7, 386 | "id": 57, 387 | "name": "員山鄉", 388 | "latitude": 24.743316, 389 | "longitude": 121.723182, 390 | "zipCode": 264 391 | }, { 392 | "sort": 3, 393 | "id": 58, 394 | "name": "羅東鎮", 395 | "latitude": 24.677164, 396 | "longitude": 121.766947, 397 | "zipCode": 265 398 | }, { 399 | "sort": 8, 400 | "id": 59, 401 | "name": "三星鄉", 402 | "latitude": 24.665497, 403 | "longitude": 121.653866, 404 | "zipCode": 266 405 | }, { 406 | "sort": 11, 407 | "id": 60, 408 | "name": "大同鄉", 409 | "latitude": 24.677397, 410 | "longitude": 121.60902, 411 | "zipCode": 267 412 | }, { 413 | "sort": 4, 414 | "id": 61, 415 | "name": "五結鄉", 416 | "latitude": 24.68464, 417 | "longitude": 121.798303, 418 | "zipCode": 268 419 | }, { 420 | "sort": 2, 421 | "id": 62, 422 | "name": "冬山鄉", 423 | "latitude": 24.634414, 424 | "longitude": 121.792632, 425 | "zipCode": 269 426 | }, { 427 | "sort": 9, 428 | "id": 63, 429 | "name": "蘇澳鎮", 430 | "latitude": 24.594459533691406, 431 | "longitude": 121.84207153320313, 432 | "zipCode": 270 433 | }, { 434 | "sort": 12, 435 | "id": 64, 436 | "name": "南澳鄉", 437 | "latitude": 24.466102, 438 | "longitude": 121.80368, 439 | "zipCode": 272 440 | }] 441 | }, { 442 | "sort": 4, 443 | "id": "0006", 444 | "name": "新竹市", 445 | "districts": [{ 446 | "sort": 1, 447 | "id": 67, 448 | "name": "東區", 449 | "latitude": 24.805269, 450 | "longitude": 120.973466, 451 | "zipCode": 300 452 | }, { 453 | "sort": 2, 454 | "id": 68, 455 | "name": "北區", 456 | "latitude": 24.816351, 457 | "longitude": 120.970342, 458 | "zipCode": 300 459 | }, { 460 | "sort": 3, 461 | "id": 69, 462 | "name": "香山區", 463 | "latitude": 24.794566, 464 | "longitude": 120.942331, 465 | "zipCode": 300 466 | }] 467 | }, { 468 | "sort": 5, 469 | "id": "0007", 470 | "name": "新竹縣", 471 | "districts": [{ 472 | "sort": 1, 473 | "id": 70, 474 | "name": "竹北市", 475 | "latitude": 24.839672088623047, 476 | "longitude": 121.00417327880859, 477 | "zipCode": 302 478 | }, { 479 | "sort": 3, 480 | "id": 71, 481 | "name": "湖口鄉", 482 | "latitude": 24.900859832763672, 483 | "longitude": 121.0479736328125, 484 | "zipCode": 303 485 | }, { 486 | "sort": 4, 487 | "id": 72, 488 | "name": "新豐鄉", 489 | "latitude": 24.900747299194336, 490 | "longitude": 120.98537445068359, 491 | "zipCode": 304 492 | }, { 493 | "sort": 6, 494 | "id": 73, 495 | "name": "新埔鎮", 496 | "latitude": 24.825921, 497 | "longitude": 121.074041, 498 | "zipCode": 305 499 | }, { 500 | "sort": 10, 501 | "id": 74, 502 | "name": "關西鎮", 503 | "latitude": 24.792482, 504 | "longitude": 121.175797, 505 | "zipCode": 306 506 | }, { 507 | "sort": 7, 508 | "id": 75, 509 | "name": "芎林鄉", 510 | "latitude": 24.773296356201172, 511 | "longitude": 121.08185577392578, 512 | "zipCode": 307 513 | }, { 514 | "sort": 5, 515 | "id": 76, 516 | "name": "寶山鄉", 517 | "latitude": 24.765413284301758, 518 | "longitude": 120.99111175537109, 519 | "zipCode": 308 520 | }, { 521 | "sort": 2, 522 | "id": 77, 523 | "name": "竹東鎮", 524 | "latitude": 24.736645, 525 | "longitude": 121.091723, 526 | "zipCode": 310 527 | }, { 528 | "sort": 12, 529 | "id": 78, 530 | "name": "五峰鄉", 531 | "latitude": 24.632078170776367, 532 | "longitude": 121.11958312988281, 533 | "zipCode": 311 534 | }, { 535 | "sort": 8, 536 | "id": 79, 537 | "name": "橫山鄉", 538 | "latitude": 24.716827392578125, 539 | "longitude": 121.14151763916016, 540 | "zipCode": 312 541 | }, { 542 | "sort": 13, 543 | "id": 80, 544 | "name": "尖石鄉", 545 | "latitude": 24.705142, 546 | "longitude": 121.202257, 547 | "zipCode": 313 548 | }, { 549 | "sort": 9, 550 | "id": 81, 551 | "name": "北埔鄉", 552 | "latitude": 24.702007293701172, 553 | "longitude": 121.05638885498047, 554 | "zipCode": 314 555 | }, { 556 | "sort": 11, 557 | "id": 82, 558 | "name": "峨眉鄉", 559 | "latitude": 24.688816, 560 | "longitude": 121.019376, 561 | "zipCode": 315 562 | }] 563 | }, { 564 | "sort": 3, 565 | "id": "0008", 566 | "name": "桃園市", 567 | "districts": [{ 568 | "sort": 2, 569 | "id": 83, 570 | "name": "中壢區", 571 | "latitude": 24.965452, 572 | "longitude": 121.225089, 573 | "zipCode": 320 574 | }, { 575 | "sort": 4, 576 | "id": 84, 577 | "name": "平鎮區", 578 | "latitude": 24.945701599121094, 579 | "longitude": 121.21823120117187, 580 | "zipCode": 324 581 | }, { 582 | "sort": 8, 583 | "id": 85, 584 | "name": "龍潭區", 585 | "latitude": 24.870707, 586 | "longitude": 121.222249, 587 | "zipCode": 325 588 | }, { 589 | "sort": 9, 590 | "id": 86, 591 | "name": "楊梅區", 592 | "latitude": 24.907625, 593 | "longitude": 121.145845, 594 | "zipCode": 326 595 | }, { 596 | "sort": 12, 597 | "id": 87, 598 | "name": "新屋區", 599 | "latitude": 24.972480773925781, 600 | "longitude": 121.10548400878906, 601 | "zipCode": 327 602 | }, { 603 | "sort": 10, 604 | "id": 88, 605 | "name": "觀音區", 606 | "latitude": 25.02808, 607 | "longitude": 121.083424, 608 | "zipCode": 328 609 | }, { 610 | "sort": 1, 611 | "id": 89, 612 | "name": "桃園區", 613 | "latitude": 24.993879318237305, 614 | "longitude": 121.30190277099609, 615 | "zipCode": 330 616 | }, { 617 | "sort": 3, 618 | "id": 90, 619 | "name": "龜山區", 620 | "latitude": 24.99258, 621 | "longitude": 121.337878, 622 | "zipCode": 333 623 | }, { 624 | "sort": 5, 625 | "id": 91, 626 | "name": "八德區", 627 | "latitude": 24.928930282592773, 628 | "longitude": 121.28463745117187, 629 | "zipCode": 334 630 | }, { 631 | "sort": 7, 632 | "id": 92, 633 | "name": "大溪區", 634 | "latitude": 24.880632400512695, 635 | "longitude": 121.28702545166016, 636 | "zipCode": 335 637 | }, { 638 | "sort": 13, 639 | "id": 93, 640 | "name": "復興區", 641 | "latitude": 24.814731597900391, 642 | "longitude": 121.35113525390625, 643 | "zipCode": 336 644 | }, { 645 | "sort": 11, 646 | "id": 94, 647 | "name": "大園區", 648 | "latitude": 25.063927, 649 | "longitude": 121.195499, 650 | "zipCode": 337 651 | }, { 652 | "sort": 6, 653 | "id": 95, 654 | "name": "蘆竹區", 655 | "latitude": 25.046934127807617, 656 | "longitude": 121.29508209228516, 657 | "zipCode": 338 658 | }] 659 | }, { 660 | "sort": 15, 661 | "id": "0009", 662 | "name": "苗栗縣", 663 | "districts": [{ 664 | "sort": 2, 665 | "id": 96, 666 | "name": "竹南鎮", 667 | "latitude": 24.683843, 668 | "longitude": 120.873426, 669 | "zipCode": 350 670 | }, { 671 | "sort": 1, 672 | "id": 97, 673 | "name": "頭份市", 674 | "latitude": 24.686364, 675 | "longitude": 120.913023, 676 | "zipCode": 351 677 | }, { 678 | "sort": 7, 679 | "id": 98, 680 | "name": "三灣鄉", 681 | "latitude": 24.653123, 682 | "longitude": 120.956574, 683 | "zipCode": 352 684 | }, { 685 | "sort": 5, 686 | "id": 99, 687 | "name": "南庄鄉", 688 | "latitude": 24.597044, 689 | "longitude": 121.000302, 690 | "zipCode": 353 691 | }, { 692 | "sort": 15, 693 | "id": 100, 694 | "name": "獅潭鄉", 695 | "latitude": 24.539236, 696 | "longitude": 120.920102, 697 | "zipCode": 354 698 | }, { 699 | "sort": 6, 700 | "id": 101, 701 | "name": "後龍鎮", 702 | "latitude": 24.613796, 703 | "longitude": 120.791988, 704 | "zipCode": 356 705 | }, { 706 | "sort": 10, 707 | "id": 102, 708 | "name": "通霄鎮", 709 | "latitude": 24.491395950317383, 710 | "longitude": 120.68418121337891, 711 | "zipCode": 357 712 | }, { 713 | "sort": 11, 714 | "id": 103, 715 | "name": "苑裡鎮", 716 | "latitude": 24.439665, 717 | "longitude": 120.653065, 718 | "zipCode": 358 719 | }, { 720 | "sort": 3, 721 | "id": 104, 722 | "name": "苗栗市", 723 | "latitude": 24.561517, 724 | "longitude": 120.81883, 725 | "zipCode": 360 726 | }, { 727 | "sort": 4, 728 | "id": 105, 729 | "name": "造橋鄉", 730 | "latitude": 24.638626098632813, 731 | "longitude": 120.86520385742187, 732 | "zipCode": 361 733 | }, { 734 | "sort": 16, 735 | "id": 106, 736 | "name": "頭屋鄉", 737 | "latitude": 24.577747, 738 | "longitude": 120.851076, 739 | "zipCode": 362 740 | }, { 741 | "sort": 8, 742 | "id": 107, 743 | "name": "公館鄉", 744 | "latitude": 24.505908966064453, 745 | "longitude": 120.82852172851562, 746 | "zipCode": 363 747 | }, { 748 | "sort": 13, 749 | "id": 108, 750 | "name": "大湖鄉", 751 | "latitude": 24.423426, 752 | "longitude": 120.866118, 753 | "zipCode": 364 754 | }, { 755 | "sort": 17, 756 | "id": 109, 757 | "name": "泰安鄉", 758 | "latitude": 24.447393, 759 | "longitude": 120.908045, 760 | "zipCode": 365 761 | }, { 762 | "sort": 14, 763 | "id": 110, 764 | "name": "銅鑼鄉", 765 | "latitude": 24.486963, 766 | "longitude": 120.787843, 767 | "zipCode": 366 768 | }, { 769 | "sort": 9, 770 | "id": 111, 771 | "name": "三義鄉", 772 | "latitude": 24.41282, 773 | "longitude": 120.770272, 774 | "zipCode": 367 775 | }, { 776 | "sort": 18, 777 | "id": 112, 778 | "name": "西湖鄉", 779 | "latitude": 24.55672, 780 | "longitude": 120.757225, 781 | "zipCode": 368 782 | }, { 783 | "sort": 12, 784 | "id": 113, 785 | "name": "卓蘭鎮", 786 | "latitude": 24.312971115112305, 787 | "longitude": 120.82452392578125, 788 | "zipCode": 369 789 | }] 790 | }, { 791 | "sort": 6, 792 | "id": "0010", 793 | "name": "臺中市", 794 | "districts": [{ 795 | "sort": 7, 796 | "id": 114, 797 | "name": "中區", 798 | "latitude": 24.143914, 799 | "longitude": 120.679511, 800 | "zipCode": 400 801 | }, { 802 | "sort": 8, 803 | "id": 115, 804 | "name": "東區", 805 | "latitude": 24.136669, 806 | "longitude": 120.703733, 807 | "zipCode": 401 808 | }, { 809 | "sort": 6, 810 | "id": 116, 811 | "name": "南區", 812 | "latitude": 24.11716, 813 | "longitude": 120.663756, 814 | "zipCode": 402 815 | }, { 816 | "sort": 5, 817 | "id": 117, 818 | "name": "西區", 819 | "latitude": 24.141213, 820 | "longitude": 120.67114, 821 | "zipCode": 403 822 | }, { 823 | "sort": 4, 824 | "id": 118, 825 | "name": "北區", 826 | "latitude": 24.165783, 827 | "longitude": 120.682277, 828 | "zipCode": 404 829 | }, { 830 | "sort": 2, 831 | "id": 119, 832 | "name": "北屯區", 833 | "latitude": 24.18267822265625, 834 | "longitude": 120.68656921386719, 835 | "zipCode": 406 836 | }, { 837 | "sort": 1, 838 | "id": 120, 839 | "name": "西屯區", 840 | "latitude": 24.165563, 841 | "longitude": 120.633815, 842 | "zipCode": 407 843 | }, { 844 | "sort": 3, 845 | "id": 121, 846 | "name": "南屯區", 847 | "latitude": 24.134415, 848 | "longitude": 120.644423, 849 | "zipCode": 408 850 | }, { 851 | "sort": 13, 852 | "id": 122, 853 | "name": "太平區", 854 | "latitude": 24.126477, 855 | "longitude": 120.718367, 856 | "zipCode": 411 857 | }, { 858 | "sort": 9, 859 | "id": 123, 860 | "name": "大里區", 861 | "latitude": 24.099468, 862 | "longitude": 120.677837, 863 | "zipCode": 412 864 | }, { 865 | "sort": 17, 866 | "id": 124, 867 | "name": "霧峰區", 868 | "latitude": 24.061067, 869 | "longitude": 120.700029, 870 | "zipCode": 413 871 | }, { 872 | "sort": 16, 873 | "id": 125, 874 | "name": "烏日區", 875 | "latitude": 24.104842, 876 | "longitude": 120.623772, 877 | "zipCode": 414 878 | }, { 879 | "sort": 11, 880 | "id": 126, 881 | "name": "豐原區", 882 | "latitude": 24.241798, 883 | "longitude": 120.718229, 884 | "zipCode": 420 885 | }, { 886 | "sort": 23, 887 | "id": 127, 888 | "name": "后里區", 889 | "latitude": 24.305063, 890 | "longitude": 120.710763, 891 | "zipCode": 421 892 | }, { 893 | "sort": 26, 894 | "id": 128, 895 | "name": "石岡區", 896 | "latitude": 24.27468, 897 | "longitude": 120.780464, 898 | "zipCode": 422 899 | }, { 900 | "sort": 25, 901 | "id": 129, 902 | "name": "東勢區", 903 | "latitude": 24.258702, 904 | "longitude": 120.827855, 905 | "zipCode": 423 906 | }, { 907 | "sort": 29, 908 | "id": 130, 909 | "name": "和平區", 910 | "latitude": 24.17515, 911 | "longitude": 120.883601, 912 | "zipCode": 424 913 | }, { 914 | "sort": 22, 915 | "id": 131, 916 | "name": "新社區", 917 | "latitude": 24.233869, 918 | "longitude": 120.809496, 919 | "zipCode": 426 920 | }, { 921 | "sort": 14, 922 | "id": 132, 923 | "name": "潭子區", 924 | "latitude": 24.203602, 925 | "longitude": 120.72336, 926 | "zipCode": 427 927 | }, { 928 | "sort": 12, 929 | "id": 133, 930 | "name": "大雅區", 931 | "latitude": 24.228984, 932 | "longitude": 120.647681, 933 | "zipCode": 428 934 | }, { 935 | "sort": 18, 936 | "id": 134, 937 | "name": "神岡區", 938 | "latitude": 24.257987, 939 | "longitude": 120.661336, 940 | "zipCode": 429 941 | }, { 942 | "sort": 21, 943 | "id": 135, 944 | "name": "大肚區", 945 | "latitude": 24.151207, 946 | "longitude": 120.545689, 947 | "zipCode": 432 948 | }, { 949 | "sort": 10, 950 | "id": 136, 951 | "name": "沙鹿區", 952 | "latitude": 24.233301, 953 | "longitude": 120.566322, 954 | "zipCode": 433 955 | }, { 956 | "sort": 15, 957 | "id": 137, 958 | "name": "龍井區", 959 | "latitude": 24.19275, 960 | "longitude": 120.545792, 961 | "zipCode": 434 962 | }, { 963 | "sort": 20, 964 | "id": 138, 965 | "name": "梧棲區", 966 | "latitude": 24.254882, 967 | "longitude": 120.531706, 968 | "zipCode": 435 969 | }, { 970 | "sort": 19, 971 | "id": 139, 972 | "name": "清水區", 973 | "latitude": 24.268326, 974 | "longitude": 120.559857, 975 | "zipCode": 436 976 | }, { 977 | "sort": 24, 978 | "id": 140, 979 | "name": "大甲區", 980 | "latitude": 24.349176, 981 | "longitude": 120.622522, 982 | "zipCode": 437 983 | }, { 984 | "sort": 27, 985 | "id": 141, 986 | "name": "外埔區", 987 | "latitude": 24.332046, 988 | "longitude": 120.654291, 989 | "zipCode": 438 990 | }, { 991 | "sort": 28, 992 | "id": 142, 993 | "name": "大安區", 994 | "latitude": 24.346256, 995 | "longitude": 120.58658, 996 | "zipCode": 439 997 | }] 998 | }, { 999 | "sort": 7, 1000 | "id": "0012", 1001 | "name": "彰化縣", 1002 | "districts": [{ 1003 | "sort": 1, 1004 | "id": 143, 1005 | "name": "彰化市", 1006 | "latitude": 24.080901, 1007 | "longitude": 120.542377, 1008 | "zipCode": 500 1009 | }, { 1010 | "sort": 12, 1011 | "id": 144, 1012 | "name": "芬園鄉", 1013 | "latitude": 24.013657, 1014 | "longitude": 120.629031, 1015 | "zipCode": 502 1016 | }, { 1017 | "sort": 5, 1018 | "id": 145, 1019 | "name": "花壇鄉", 1020 | "latitude": 24.029683, 1021 | "longitude": 120.538285, 1022 | "zipCode": 503 1023 | }, { 1024 | "sort": 15, 1025 | "id": 146, 1026 | "name": "秀水鄉", 1027 | "latitude": 24.035407, 1028 | "longitude": 120.502953, 1029 | "zipCode": 504 1030 | }, { 1031 | "sort": 11, 1032 | "id": 147, 1033 | "name": "鹿港鎮", 1034 | "latitude": 24.057363, 1035 | "longitude": 120.435093, 1036 | "zipCode": 505 1037 | }, { 1038 | "sort": 17, 1039 | "id": 148, 1040 | "name": "福興鄉", 1041 | "latitude": 24.047921, 1042 | "longitude": 120.44387, 1043 | "zipCode": 506 1044 | }, { 1045 | "sort": 18, 1046 | "id": 149, 1047 | "name": "線西鄉", 1048 | "latitude": 24.130584, 1049 | "longitude": 120.470523, 1050 | "zipCode": 507 1051 | }, { 1052 | "sort": 2, 1053 | "id": 150, 1054 | "name": "和美鎮", 1055 | "latitude": 24.10858, 1056 | "longitude": 120.494232, 1057 | "zipCode": 508 1058 | }, { 1059 | "sort": 7, 1060 | "id": 151, 1061 | "name": "伸港鄉", 1062 | "latitude": 24.159794, 1063 | "longitude": 120.486223, 1064 | "zipCode": 509 1065 | }, { 1066 | "sort": 3, 1067 | "id": 152, 1068 | "name": "員林市", 1069 | "latitude": 23.959022, 1070 | "longitude": 120.574291, 1071 | "zipCode": 510 1072 | }, { 1073 | "sort": 16, 1074 | "id": 153, 1075 | "name": "社頭鄉", 1076 | "latitude": 23.89685, 1077 | "longitude": 120.58583, 1078 | "zipCode": 511 1079 | }, { 1080 | "sort": 26, 1081 | "id": 154, 1082 | "name": "永靖鄉", 1083 | "latitude": 23.924641, 1084 | "longitude": 120.547632, 1085 | "zipCode": 512 1086 | }, { 1087 | "sort": 13, 1088 | "id": 155, 1089 | "name": "埔心鄉", 1090 | "latitude": 23.953105, 1091 | "longitude": 120.543484, 1092 | "zipCode": 513 1093 | }, { 1094 | "sort": 4, 1095 | "id": 156, 1096 | "name": "溪湖鎮", 1097 | "latitude": 23.966418, 1098 | "longitude": 120.483696, 1099 | "zipCode": 514 1100 | }, { 1101 | "sort": 21, 1102 | "id": 157, 1103 | "name": "大村鄉", 1104 | "latitude": 23.993524, 1105 | "longitude": 120.54717, 1106 | "zipCode": 515 1107 | }, { 1108 | "sort": 8, 1109 | "id": 158, 1110 | "name": "埔鹽鄉", 1111 | "latitude": 24.000616, 1112 | "longitude": 120.463701, 1113 | "zipCode": 516 1114 | }, { 1115 | "sort": 19, 1116 | "id": 159, 1117 | "name": "田中鎮", 1118 | "latitude": 23.86159, 1119 | "longitude": 120.580979, 1120 | "zipCode": 520 1121 | }, { 1122 | "sort": 6, 1123 | "id": 160, 1124 | "name": "北斗鎮", 1125 | "latitude": 23.871429, 1126 | "longitude": 120.521805, 1127 | "zipCode": 521 1128 | }, { 1129 | "sort": 10, 1130 | "id": 161, 1131 | "name": "田尾鄉", 1132 | "latitude": 23.892169, 1133 | "longitude": 120.525802, 1134 | "zipCode": 522 1135 | }, { 1136 | "sort": 14, 1137 | "id": 162, 1138 | "name": "埤頭鄉", 1139 | "latitude": 23.891607, 1140 | "longitude": 120.462116, 1141 | "zipCode": 523 1142 | }, { 1143 | "sort": 22, 1144 | "id": 163, 1145 | "name": "溪州鄉", 1146 | "latitude": 23.851542, 1147 | "longitude": 120.499081, 1148 | "zipCode": 524 1149 | }, { 1150 | "sort": 24, 1151 | "id": 164, 1152 | "name": "竹塘鄉", 1153 | "latitude": 23.860570907592773, 1154 | "longitude": 120.42780303955078, 1155 | "zipCode": 525 1156 | }, { 1157 | "sort": 9, 1158 | "id": 165, 1159 | "name": "二林鎮", 1160 | "latitude": 23.899946212768555, 1161 | "longitude": 120.37445068359375, 1162 | "zipCode": 526 1163 | }, { 1164 | "sort": 23, 1165 | "id": 166, 1166 | "name": "大城鄉", 1167 | "latitude": 23.852251, 1168 | "longitude": 120.320908, 1169 | "zipCode": 527 1170 | }, { 1171 | "sort": 20, 1172 | "id": 167, 1173 | "name": "芳苑鄉", 1174 | "latitude": 23.924399, 1175 | "longitude": 120.320415, 1176 | "zipCode": 528 1177 | }, { 1178 | "sort": 25, 1179 | "id": 168, 1180 | "name": "二水鄉", 1181 | "latitude": 23.80667, 1182 | "longitude": 120.619045, 1183 | "zipCode": 530 1184 | }] 1185 | }, { 1186 | "sort": 13, 1187 | "id": "0013", 1188 | "name": "南投縣", 1189 | "districts": [{ 1190 | "sort": 2, 1191 | "id": 169, 1192 | "name": "南投市", 1193 | "latitude": 23.911524, 1194 | "longitude": 120.687384, 1195 | "zipCode": 540 1196 | }, { 1197 | "sort": 6, 1198 | "id": 170, 1199 | "name": "中寮鄉", 1200 | "latitude": 23.879055, 1201 | "longitude": 120.765961, 1202 | "zipCode": 541 1203 | }, { 1204 | "sort": 1, 1205 | "id": 171, 1206 | "name": "草屯鎮", 1207 | "latitude": 23.973619, 1208 | "longitude": 120.680545, 1209 | "zipCode": 542 1210 | }, { 1211 | "sort": 5, 1212 | "id": 172, 1213 | "name": "國姓鄉", 1214 | "latitude": 24.039927, 1215 | "longitude": 120.857465, 1216 | "zipCode": 544 1217 | }, { 1218 | "sort": 3, 1219 | "id": 173, 1220 | "name": "埔里鎮", 1221 | "latitude": 23.966551, 1222 | "longitude": 120.969219, 1223 | "zipCode": 545 1224 | }, { 1225 | "sort": 12, 1226 | "id": 174, 1227 | "name": "仁愛鄉", 1228 | "latitude": 24.021484, 1229 | "longitude": 121.132052, 1230 | "zipCode": 546 1231 | }, { 1232 | "sort": 4, 1233 | "id": 175, 1234 | "name": "名間鄉", 1235 | "latitude": 23.838307, 1236 | "longitude": 120.702867, 1237 | "zipCode": 551 1238 | }, { 1239 | "sort": 11, 1240 | "id": 176, 1241 | "name": "集集鎮", 1242 | "latitude": 23.828338623046875, 1243 | "longitude": 120.78648376464844, 1244 | "zipCode": 552 1245 | }, { 1246 | "sort": 8, 1247 | "id": 177, 1248 | "name": "水里鄉", 1249 | "latitude": 23.811309, 1250 | "longitude": 120.856079, 1251 | "zipCode": 553 1252 | }, { 1253 | "sort": 9, 1254 | "id": 178, 1255 | "name": "魚池鄉", 1256 | "latitude": 23.895644, 1257 | "longitude": 120.935738, 1258 | "zipCode": 555 1259 | }, { 1260 | "sort": 13, 1261 | "id": 179, 1262 | "name": "信義鄉", 1263 | "latitude": 23.696769, 1264 | "longitude": 120.854492, 1265 | "zipCode": 556 1266 | }, { 1267 | "sort": 7, 1268 | "id": 180, 1269 | "name": "竹山鎮", 1270 | "latitude": 23.757601, 1271 | "longitude": 120.67146, 1272 | "zipCode": 557 1273 | }, { 1274 | "sort": 10, 1275 | "id": 181, 1276 | "name": "鹿谷鄉", 1277 | "latitude": 23.745891571044922, 1278 | "longitude": 120.75336456298828, 1279 | "zipCode": 558 1280 | }] 1281 | }, { 1282 | "sort": 16, 1283 | "id": "0014", 1284 | "name": "嘉義市", 1285 | "districts": [{ 1286 | "sort": 2, 1287 | "id": 183, 1288 | "name": "東區", 1289 | "latitude": 23.478709, 1290 | "longitude": 120.453641, 1291 | "zipCode": 600 1292 | }, { 1293 | "sort": 1, 1294 | "id": 184, 1295 | "name": "西區", 1296 | "latitude": 23.464708, 1297 | "longitude": 120.435383, 1298 | "zipCode": 600 1299 | }] 1300 | }, { 1301 | "sort": 17, 1302 | "id": "0015", 1303 | "name": "嘉義縣", 1304 | "districts": [{ 1305 | "sort": 6, 1306 | "id": 185, 1307 | "name": "番路鄉", 1308 | "latitude": 23.4644832611084, 1309 | "longitude": 120.55436706542969, 1310 | "zipCode": 602 1311 | }, { 1312 | "sort": 17, 1313 | "id": 186, 1314 | "name": "梅山鄉", 1315 | "latitude": 23.585241, 1316 | "longitude": 120.555702, 1317 | "zipCode": 603 1318 | }, { 1319 | "sort": 7, 1320 | "id": 187, 1321 | "name": "竹崎鄉", 1322 | "latitude": 23.523075, 1323 | "longitude": 120.551385, 1324 | "zipCode": 604 1325 | }, { 1326 | "sort": 18, 1327 | "id": 188, 1328 | "name": "阿里山鄉", 1329 | "latitude": 23.471179, 1330 | "longitude": 120.713498, 1331 | "zipCode": 605 1332 | }, { 1333 | "sort": 4, 1334 | "id": 189, 1335 | "name": "中埔鄉", 1336 | "latitude": 23.425199, 1337 | "longitude": 120.522818, 1338 | "zipCode": 606 1339 | }, { 1340 | "sort": 11, 1341 | "id": 190, 1342 | "name": "大埔鄉", 1343 | "latitude": 23.294708, 1344 | "longitude": 120.593526, 1345 | "zipCode": 607 1346 | }, { 1347 | "sort": 3, 1348 | "id": 191, 1349 | "name": "水上鄉", 1350 | "latitude": 23.428464, 1351 | "longitude": 120.398065, 1352 | "zipCode": 608 1353 | }, { 1354 | "sort": 15, 1355 | "id": 192, 1356 | "name": "鹿草鄉", 1357 | "latitude": 23.411381, 1358 | "longitude": 120.308418, 1359 | "zipCode": 611 1360 | }, { 1361 | "sort": 1, 1362 | "id": 193, 1363 | "name": "太保市", 1364 | "latitude": 23.458974, 1365 | "longitude": 120.332275, 1366 | "zipCode": 612 1367 | }, { 1368 | "sort": 5, 1369 | "id": 194, 1370 | "name": "朴子市", 1371 | "latitude": 23.457589, 1372 | "longitude": 120.245938, 1373 | "zipCode": 613 1374 | }, { 1375 | "sort": 16, 1376 | "id": 195, 1377 | "name": "東石鄉", 1378 | "latitude": 23.458794, 1379 | "longitude": 120.153831, 1380 | "zipCode": 614 1381 | }, { 1382 | "sort": 13, 1383 | "id": 196, 1384 | "name": "六腳鄉", 1385 | "latitude": 23.494059, 1386 | "longitude": 120.290827, 1387 | "zipCode": 615 1388 | }, { 1389 | "sort": 10, 1390 | "id": 197, 1391 | "name": "新港鄉", 1392 | "latitude": 23.551973342895508, 1393 | "longitude": 120.34786224365234, 1394 | "zipCode": 616 1395 | }, { 1396 | "sort": 2, 1397 | "id": 198, 1398 | "name": "民雄鄉", 1399 | "latitude": 23.551623, 1400 | "longitude": 120.428305, 1401 | "zipCode": 621 1402 | }, { 1403 | "sort": 8, 1404 | "id": 199, 1405 | "name": "大林鎮", 1406 | "latitude": 23.604001, 1407 | "longitude": 120.47128, 1408 | "zipCode": 622 1409 | }, { 1410 | "sort": 12, 1411 | "id": 200, 1412 | "name": "溪口鄉", 1413 | "latitude": 23.602466583251953, 1414 | "longitude": 120.3922119140625, 1415 | "zipCode": 623 1416 | }, { 1417 | "sort": 14, 1418 | "id": 201, 1419 | "name": "義竹鄉", 1420 | "latitude": 23.33622932434082, 1421 | "longitude": 120.24321746826172, 1422 | "zipCode": 624 1423 | }, { 1424 | "sort": 9, 1425 | "id": 202, 1426 | "name": "布袋鎮", 1427 | "latitude": 23.377971649169922, 1428 | "longitude": 120.16696166992187, 1429 | "zipCode": 625 1430 | }] 1431 | }, { 1432 | "sort": 14, 1433 | "id": "0016", 1434 | "name": "雲林縣", 1435 | "districts": [{ 1436 | "sort": 3, 1437 | "id": 203, 1438 | "name": "斗南鎮", 1439 | "latitude": 23.680149, 1440 | "longitude": 120.477588, 1441 | "zipCode": 630 1442 | }, { 1443 | "sort": 10, 1444 | "id": 204, 1445 | "name": "大埤鄉", 1446 | "latitude": 23.646097183227539, 1447 | "longitude": 120.43142700195312, 1448 | "zipCode": 631 1449 | }, { 1450 | "sort": 2, 1451 | "id": 205, 1452 | "name": "虎尾鎮", 1453 | "latitude": 23.708282470703125, 1454 | "longitude": 120.44518280029297, 1455 | "zipCode": 632 1456 | }, { 1457 | "sort": 7, 1458 | "id": 206, 1459 | "name": "土庫鎮", 1460 | "latitude": 23.68206, 1461 | "longitude": 120.389664, 1462 | "zipCode": 633 1463 | }, { 1464 | "sort": 11, 1465 | "id": 207, 1466 | "name": "褒忠鄉", 1467 | "latitude": 23.691022, 1468 | "longitude": 120.303851, 1469 | "zipCode": 634 1470 | }, { 1471 | "sort": 17, 1472 | "id": 208, 1473 | "name": "東勢鄉", 1474 | "latitude": 23.674797058105469, 1475 | "longitude": 120.25266265869141, 1476 | "zipCode": 635 1477 | }, { 1478 | "sort": 18, 1479 | "id": 209, 1480 | "name": "臺西鄉", 1481 | "latitude": 23.700391, 1482 | "longitude": 120.195788, 1483 | "zipCode": 636 1484 | }, { 1485 | "sort": 8, 1486 | "id": 210, 1487 | "name": "崙背鄉", 1488 | "latitude": 23.762003, 1489 | "longitude": 120.359175, 1490 | "zipCode": 637 1491 | }, { 1492 | "sort": 16, 1493 | "id": 211, 1494 | "name": "麥寮鄉", 1495 | "latitude": 23.753825, 1496 | "longitude": 120.251624, 1497 | "zipCode": 638 1498 | }, { 1499 | "sort": 1, 1500 | "id": 212, 1501 | "name": "斗六市", 1502 | "latitude": 23.696962356567383, 1503 | "longitude": 120.52693176269531, 1504 | "zipCode": 640 1505 | }, { 1506 | "sort": 6, 1507 | "id": 213, 1508 | "name": "林內鄉", 1509 | "latitude": 23.756137847900391, 1510 | "longitude": 120.61290740966797, 1511 | "zipCode": 643 1512 | }, { 1513 | "sort": 4, 1514 | "id": 214, 1515 | "name": "古坑鄉", 1516 | "latitude": 23.642662048339844, 1517 | "longitude": 120.56203460693359, 1518 | "zipCode": 646 1519 | }, { 1520 | "sort": 5, 1521 | "id": 215, 1522 | "name": "莿桐鄉", 1523 | "latitude": 23.760932922363281, 1524 | "longitude": 120.50235748291016, 1525 | "zipCode": 647 1526 | }, { 1527 | "sort": 12, 1528 | "id": 216, 1529 | "name": "西螺鎮", 1530 | "latitude": 23.797986, 1531 | "longitude": 120.465388, 1532 | "zipCode": 648 1533 | }, { 1534 | "sort": 13, 1535 | "id": 217, 1536 | "name": "二崙鄉", 1537 | "latitude": 23.7711238861084, 1538 | "longitude": 120.41289520263672, 1539 | "zipCode": 649 1540 | }, { 1541 | "sort": 14, 1542 | "id": 218, 1543 | "name": "北港鎮", 1544 | "latitude": 23.576008, 1545 | "longitude": 120.302551, 1546 | "zipCode": 651 1547 | }, { 1548 | "sort": 19, 1549 | "id": 219, 1550 | "name": "水林鄉", 1551 | "latitude": 23.572786, 1552 | "longitude": 120.24591, 1553 | "zipCode": 652 1554 | }, { 1555 | "sort": 20, 1556 | "id": 220, 1557 | "name": "口湖鄉", 1558 | "latitude": 23.582663, 1559 | "longitude": 120.185823, 1560 | "zipCode": 653 1561 | }, { 1562 | "sort": 15, 1563 | "id": 221, 1564 | "name": "四湖鄉", 1565 | "latitude": 23.638101577758789, 1566 | "longitude": 120.22430419921875, 1567 | "zipCode": 654 1568 | }, { 1569 | "sort": 9, 1570 | "id": 222, 1571 | "name": "元長鄉", 1572 | "latitude": 23.649711608886719, 1573 | "longitude": 120.31491088867187, 1574 | "zipCode": 655 1575 | }] 1576 | }, { 1577 | "sort": 8, 1578 | "id": "0017", 1579 | "name": "臺南市", 1580 | "districts": [{ 1581 | "sort": 6, 1582 | "id": 224, 1583 | "name": "中西區", 1584 | "latitude": 22.992254, 1585 | "longitude": 120.205687, 1586 | "zipCode": 700 1587 | }, { 1588 | "sort": 2, 1589 | "id": 225, 1590 | "name": "東區", 1591 | "latitude": 22.980206, 1592 | "longitude": 120.224112, 1593 | "zipCode": 701 1594 | }, { 1595 | "sort": 7, 1596 | "id": 226, 1597 | "name": "南區", 1598 | "latitude": 22.961136, 1599 | "longitude": 120.188408, 1600 | "zipCode": 702 1601 | }, { 1602 | "sort": 3, 1603 | "id": 228, 1604 | "name": "北區", 1605 | "latitude": 22.999632, 1606 | "longitude": 120.202923, 1607 | "zipCode": 704 1608 | }, { 1609 | "sort": 4, 1610 | "id": 229, 1611 | "name": "安平區", 1612 | "latitude": 22.994582, 1613 | "longitude": 120.16892, 1614 | "zipCode": 708 1615 | }, { 1616 | "sort": 5, 1617 | "id": 230, 1618 | "name": "安南區", 1619 | "latitude": 23.047346115112305, 1620 | "longitude": 120.18478393554687, 1621 | "zipCode": 709 1622 | }, { 1623 | "sort": 1, 1624 | "id": 231, 1625 | "name": "永康區", 1626 | "latitude": 23.026357, 1627 | "longitude": 120.256959, 1628 | "zipCode": 710 1629 | }, { 1630 | "sort": 10, 1631 | "id": 232, 1632 | "name": "歸仁區", 1633 | "latitude": 22.967208862304688, 1634 | "longitude": 120.2939453125, 1635 | "zipCode": 711 1636 | }, { 1637 | "sort": 13, 1638 | "id": 233, 1639 | "name": "新化區", 1640 | "latitude": 23.038564, 1641 | "longitude": 120.310806, 1642 | "zipCode": 712 1643 | }, { 1644 | "sort": 31, 1645 | "id": 234, 1646 | "name": "左鎮區", 1647 | "latitude": 23.056668, 1648 | "longitude": 120.408708, 1649 | "zipCode": 713 1650 | }, { 1651 | "sort": 23, 1652 | "id": 235, 1653 | "name": "玉井區", 1654 | "latitude": 23.123699188232422, 1655 | "longitude": 120.46015930175781, 1656 | "zipCode": 714 1657 | }, { 1658 | "sort": 29, 1659 | "id": 236, 1660 | "name": "楠西區", 1661 | "latitude": 23.174107, 1662 | "longitude": 120.486327, 1663 | "zipCode": 715 1664 | }, { 1665 | "sort": 36, 1666 | "id": 237, 1667 | "name": "南化區", 1668 | "latitude": 23.04303, 1669 | "longitude": 120.47778, 1670 | "zipCode": 716 1671 | }, { 1672 | "sort": 8, 1673 | "id": 238, 1674 | "name": "仁德區", 1675 | "latitude": 22.972439, 1676 | "longitude": 120.251593, 1677 | "zipCode": 717 1678 | }, { 1679 | "sort": 15, 1680 | "id": 239, 1681 | "name": "關廟區", 1682 | "latitude": 22.962955474853516, 1683 | "longitude": 120.32766723632812, 1684 | "zipCode": 718 1685 | }, { 1686 | "sort": 35, 1687 | "id": 240, 1688 | "name": "龍崎區", 1689 | "latitude": 22.963138580322266, 1690 | "longitude": 120.36505889892578, 1691 | "zipCode": 719 1692 | }, { 1693 | "sort": 25, 1694 | "id": 241, 1695 | "name": "官田區", 1696 | "latitude": 23.193138, 1697 | "longitude": 120.315505, 1698 | "zipCode": 720 1699 | }, { 1700 | "sort": 21, 1701 | "id": 242, 1702 | "name": "麻豆區", 1703 | "latitude": 23.184907913208008, 1704 | "longitude": 120.25839233398437, 1705 | "zipCode": 721 1706 | }, { 1707 | "sort": 9, 1708 | "id": 243, 1709 | "name": "佳里區", 1710 | "latitude": 23.165273666381836, 1711 | "longitude": 120.17718505859375, 1712 | "zipCode": 722 1713 | }, { 1714 | "sort": 17, 1715 | "id": 244, 1716 | "name": "西港區", 1717 | "latitude": 23.123, 1718 | "longitude": 120.203432, 1719 | "zipCode": 723 1720 | }, { 1721 | "sort": 19, 1722 | "id": 245, 1723 | "name": "七股區", 1724 | "latitude": 23.140386, 1725 | "longitude": 120.139245, 1726 | "zipCode": 724 1727 | }, { 1728 | "sort": 20, 1729 | "id": 246, 1730 | "name": "將軍區", 1731 | "latitude": 23.199047, 1732 | "longitude": 120.158827, 1733 | "zipCode": 725 1734 | }, { 1735 | "sort": 18, 1736 | "id": 247, 1737 | "name": "學甲區", 1738 | "latitude": 23.230529, 1739 | "longitude": 120.182235, 1740 | "zipCode": 726 1741 | }, { 1742 | "sort": 37, 1743 | "id": 248, 1744 | "name": "北門區", 1745 | "latitude": 23.267707, 1746 | "longitude": 120.125446, 1747 | "zipCode": 727 1748 | }, { 1749 | "sort": 12, 1750 | "id": 249, 1751 | "name": "新營區", 1752 | "latitude": 23.310311, 1753 | "longitude": 120.316701, 1754 | "zipCode": 730 1755 | }, { 1756 | "sort": 32, 1757 | "id": 250, 1758 | "name": "後壁區", 1759 | "latitude": 23.366111, 1760 | "longitude": 120.362046, 1761 | "zipCode": 731 1762 | }, { 1763 | "sort": 14, 1764 | "id": 251, 1765 | "name": "白河區", 1766 | "latitude": 23.351278305053711, 1767 | "longitude": 120.41576385498047, 1768 | "zipCode": 732 1769 | }, { 1770 | "sort": 26, 1771 | "id": 252, 1772 | "name": "東山區", 1773 | "latitude": 23.326181411743164, 1774 | "longitude": 120.404541015625, 1775 | "zipCode": 733 1776 | }, { 1777 | "sort": 24, 1778 | "id": 253, 1779 | "name": "六甲區", 1780 | "latitude": 23.231821, 1781 | "longitude": 120.347521, 1782 | "zipCode": 734 1783 | }, { 1784 | "sort": 34, 1785 | "id": 254, 1786 | "name": "下營區", 1787 | "latitude": 23.235445022583008, 1788 | "longitude": 120.26441192626953, 1789 | "zipCode": 735 1790 | }, { 1791 | "sort": 33, 1792 | "id": 255, 1793 | "name": "柳營區", 1794 | "latitude": 23.278445, 1795 | "longitude": 120.311628, 1796 | "zipCode": 736 1797 | }, { 1798 | "sort": 28, 1799 | "id": 256, 1800 | "name": "鹽水區", 1801 | "latitude": 23.319946, 1802 | "longitude": 120.266101, 1803 | "zipCode": 737 1804 | }, { 1805 | "sort": 11, 1806 | "id": 257, 1807 | "name": "善化區", 1808 | "latitude": 23.132236480712891, 1809 | "longitude": 120.29679870605469, 1810 | "zipCode": 741 1811 | }, { 1812 | "sort": 27, 1813 | "id": 258, 1814 | "name": "大內區", 1815 | "latitude": 23.118986129760742, 1816 | "longitude": 120.35694122314453, 1817 | "zipCode": 742 1818 | }, { 1819 | "sort": 30, 1820 | "id": 259, 1821 | "name": "山上區", 1822 | "latitude": 23.104114, 1823 | "longitude": 120.35261, 1824 | "zipCode": 743 1825 | }, { 1826 | "sort": 16, 1827 | "id": 260, 1828 | "name": "新市區", 1829 | "latitude": 23.078987, 1830 | "longitude": 120.294989, 1831 | "zipCode": 744 1832 | }, { 1833 | "sort": 22, 1834 | "id": 261, 1835 | "name": "安定區", 1836 | "latitude": 23.121555, 1837 | "longitude": 120.237008, 1838 | "zipCode": 745 1839 | }] 1840 | }, { 1841 | "sort": 9, 1842 | "id": "0019", 1843 | "name": "高雄市", 1844 | "districts": [{ 1845 | "sort": 11, 1846 | "id": 262, 1847 | "name": "新興區", 1848 | "latitude": 22.631216049194336, 1849 | "longitude": 120.30988311767578, 1850 | "zipCode": 800 1851 | }, { 1852 | "sort": 3, 1853 | "id": 263, 1854 | "name": "前金區", 1855 | "latitude": 22.627466201782227, 1856 | "longitude": 120.29415130615234, 1857 | "zipCode": 801 1858 | }, { 1859 | "sort": 5, 1860 | "id": 264, 1861 | "name": "苓雅區", 1862 | "latitude": 22.621700286865234, 1863 | "longitude": 120.31215667724609, 1864 | "zipCode": 802 1865 | }, { 1866 | "sort": 19, 1867 | "id": 265, 1868 | "name": "鹽埕區", 1869 | "latitude": 22.624715805053711, 1870 | "longitude": 120.28668975830078, 1871 | "zipCode": 803 1872 | }, { 1873 | "sort": 4, 1874 | "id": 266, 1875 | "name": "鼓山區", 1876 | "latitude": 22.636890411376953, 1877 | "longitude": 120.28108215332031, 1878 | "zipCode": 804 1879 | }, { 1880 | "sort": 34, 1881 | "id": 267, 1882 | "name": "旗津區", 1883 | "latitude": 22.59013557434082, 1884 | "longitude": 120.28469085693359, 1885 | "zipCode": 805 1886 | }, { 1887 | "sort": 9, 1888 | "id": 268, 1889 | "name": "前鎮區", 1890 | "latitude": 22.586566925048828, 1891 | "longitude": 120.31836700439453, 1892 | "zipCode": 806 1893 | }, { 1894 | "sort": 1, 1895 | "id": 269, 1896 | "name": "三民區", 1897 | "latitude": 22.647648, 1898 | "longitude": 120.299631, 1899 | "zipCode": 807 1900 | }, { 1901 | "sort": 8, 1902 | "id": 270, 1903 | "name": "楠梓區", 1904 | "latitude": 22.728305816650391, 1905 | "longitude": 120.32625579833984, 1906 | "zipCode": 811 1907 | }, { 1908 | "sort": 14, 1909 | "id": 271, 1910 | "name": "小港區", 1911 | "latitude": 22.56535530090332, 1912 | "longitude": 120.33805084228516, 1913 | "zipCode": 812 1914 | }, { 1915 | "sort": 2, 1916 | "id": 272, 1917 | "name": "左營區", 1918 | "latitude": 22.689901351928711, 1919 | "longitude": 120.29508209228516, 1920 | "zipCode": 813 1921 | }, { 1922 | "sort": 10, 1923 | "id": 275, 1924 | "name": "仁武區", 1925 | "latitude": 22.70094108581543, 1926 | "longitude": 120.34799194335938, 1927 | "zipCode": 814 1928 | }, { 1929 | "sort": 23, 1930 | "id": 276, 1931 | "name": "大社區", 1932 | "latitude": 22.730141, 1933 | "longitude": 120.346601, 1934 | "zipCode": 815 1935 | }, { 1936 | "sort": 6, 1937 | "id": 277, 1938 | "name": "岡山區", 1939 | "latitude": 22.797298431396484, 1940 | "longitude": 120.29496765136719, 1941 | "zipCode": 820 1942 | }, { 1943 | "sort": 15, 1944 | "id": 278, 1945 | "name": "路竹區", 1946 | "latitude": 22.854951858520508, 1947 | "longitude": 120.25933837890625, 1948 | "zipCode": 821 1949 | }, { 1950 | "sort": 18, 1951 | "id": 279, 1952 | "name": "阿蓮區", 1953 | "latitude": 22.883199, 1954 | "longitude": 120.327485, 1955 | "zipCode": 822 1956 | }, { 1957 | "sort": 30, 1958 | "id": 280, 1959 | "name": "田寮區", 1960 | "latitude": 22.869768142700195, 1961 | "longitude": 120.35950469970703, 1962 | "zipCode": 823 1963 | }, { 1964 | "sort": 17, 1965 | "id": 281, 1966 | "name": "燕巢區", 1967 | "latitude": 22.788061, 1968 | "longitude": 120.362001, 1969 | "zipCode": 824 1970 | }, { 1971 | "sort": 16, 1972 | "id": 282, 1973 | "name": "橋頭區", 1974 | "latitude": 22.757553100585938, 1975 | "longitude": 120.30586242675781, 1976 | "zipCode": 825 1977 | }, { 1978 | "sort": 20, 1979 | "id": 283, 1980 | "name": "梓官區", 1981 | "latitude": 22.760593414306641, 1982 | "longitude": 120.26719665527344, 1983 | "zipCode": 826 1984 | }, { 1985 | "sort": 28, 1986 | "id": 284, 1987 | "name": "彌陀區", 1988 | "latitude": 22.781623840332031, 1989 | "longitude": 120.25070190429688, 1990 | "zipCode": 827 1991 | }, { 1992 | "sort": 29, 1993 | "id": 285, 1994 | "name": "永安區", 1995 | "latitude": 22.818523, 1996 | "longitude": 120.22437, 1997 | "zipCode": 828 1998 | }, { 1999 | "sort": 22, 2000 | "id": 286, 2001 | "name": "湖內區", 2002 | "latitude": 22.908191680908203, 2003 | "longitude": 120.21178436279297, 2004 | "zipCode": 829 2005 | }, { 2006 | "sort": 7, 2007 | "id": 287, 2008 | "name": "鳳山區", 2009 | "latitude": 22.627087, 2010 | "longitude": 120.362609, 2011 | "zipCode": 830 2012 | }, { 2013 | "sort": 13, 2014 | "id": 288, 2015 | "name": "大寮區", 2016 | "latitude": 22.605461120605469, 2017 | "longitude": 120.39573669433594, 2018 | "zipCode": 831 2019 | }, { 2020 | "sort": 25, 2021 | "id": 289, 2022 | "name": "林園區", 2023 | "latitude": 22.507526397705078, 2024 | "longitude": 120.39456939697266, 2025 | "zipCode": 832 2026 | }, { 2027 | "sort": 12, 2028 | "id": 290, 2029 | "name": "鳥松區", 2030 | "latitude": 22.659933, 2031 | "longitude": 120.364388, 2032 | "zipCode": 833 2033 | }, { 2034 | "sort": 21, 2035 | "id": 291, 2036 | "name": "大樹區", 2037 | "latitude": 22.693374, 2038 | "longitude": 120.433101, 2039 | "zipCode": 840 2040 | }, { 2041 | "sort": 26, 2042 | "id": 292, 2043 | "name": "旗山區", 2044 | "latitude": 22.888666, 2045 | "longitude": 120.48369, 2046 | "zipCode": 842 2047 | }, { 2048 | "sort": 24, 2049 | "id": 293, 2050 | "name": "美濃區", 2051 | "latitude": 22.894803, 2052 | "longitude": 120.54187, 2053 | "zipCode": 843 2054 | }, { 2055 | "sort": 32, 2056 | "id": 294, 2057 | "name": "六龜區", 2058 | "latitude": 22.998441696166992, 2059 | "longitude": 120.63278198242187, 2060 | "zipCode": 844 2061 | }, { 2062 | "sort": 33, 2063 | "id": 295, 2064 | "name": "內門區", 2065 | "latitude": 22.942862, 2066 | "longitude": 120.462494, 2067 | "zipCode": 845 2068 | }, { 2069 | "sort": 31, 2070 | "id": 296, 2071 | "name": "杉林區", 2072 | "latitude": 22.971721649169922, 2073 | "longitude": 120.54021453857422, 2074 | "zipCode": 846 2075 | }, { 2076 | "sort": 35, 2077 | "id": 297, 2078 | "name": "甲仙區", 2079 | "latitude": 23.084026, 2080 | "longitude": 120.587723, 2081 | "zipCode": 847 2082 | }, { 2083 | "sort": 36, 2084 | "id": 298, 2085 | "name": "桃源區", 2086 | "latitude": 23.15944, 2087 | "longitude": 120.764009, 2088 | "zipCode": 848 2089 | }, { 2090 | "sort": 37, 2091 | "id": 299, 2092 | "name": "那瑪夏區", 2093 | "latitude": 23.276944, 2094 | "longitude": 120.720134, 2095 | "zipCode": 849 2096 | }, { 2097 | "sort": 38, 2098 | "id": 300, 2099 | "name": "茂林區", 2100 | "latitude": 22.886226, 2101 | "longitude": 120.663361, 2102 | "zipCode": 851 2103 | }, { 2104 | "sort": 27, 2105 | "id": 301, 2106 | "name": "茄萣區", 2107 | "latitude": 22.906369, 2108 | "longitude": 120.18262, 2109 | "zipCode": 852 2110 | }] 2111 | }, { 2112 | "sort": 21, 2113 | "id": "0022", 2114 | "name": "澎湖縣", 2115 | "districts": [{ 2116 | "sort": 1, 2117 | "id": 302, 2118 | "name": "馬公市", 2119 | "latitude": 23.566022872924805, 2120 | "longitude": 119.57870483398437, 2121 | "zipCode": 880 2122 | }, { 2123 | "sort": 4, 2124 | "id": 303, 2125 | "name": "西嶼鄉", 2126 | "latitude": 23.60107421875, 2127 | "longitude": 119.50697326660156, 2128 | "zipCode": 881 2129 | }, { 2130 | "sort": 6, 2131 | "id": 304, 2132 | "name": "望安鄉", 2133 | "latitude": 23.360782, 2134 | "longitude": 119.500317, 2135 | "zipCode": 882 2136 | }, { 2137 | "sort": 5, 2138 | "id": 305, 2139 | "name": "七美鄉", 2140 | "latitude": 23.206803, 2141 | "longitude": 119.424513, 2142 | "zipCode": 883 2143 | }, { 2144 | "sort": 3, 2145 | "id": 306, 2146 | "name": "白沙鄉", 2147 | "latitude": 23.669251, 2148 | "longitude": 119.598642, 2149 | "zipCode": 884 2150 | }, { 2151 | "sort": 2, 2152 | "id": 307, 2153 | "name": "湖西鄉", 2154 | "latitude": 23.584063, 2155 | "longitude": 119.65244, 2156 | "zipCode": 885 2157 | }] 2158 | }, { 2159 | "sort": 20, 2160 | "id": "0023", 2161 | "name": "金門縣", 2162 | "districts": [{ 2163 | "sort": 2, 2164 | "id": 308, 2165 | "name": "金沙鎮", 2166 | "latitude": 24.488874, 2167 | "longitude": 118.413145, 2168 | "zipCode": 890 2169 | }, { 2170 | "sort": 4, 2171 | "id": 309, 2172 | "name": "金湖鎮", 2173 | "latitude": 24.441369, 2174 | "longitude": 118.417027, 2175 | "zipCode": 891 2176 | }, { 2177 | "sort": 1, 2178 | "id": 310, 2179 | "name": "金寧鄉", 2180 | "latitude": 24.470692, 2181 | "longitude": 118.33129, 2182 | "zipCode": 892 2183 | }, { 2184 | "sort": 3, 2185 | "id": 311, 2186 | "name": "金城鎮", 2187 | "latitude": 24.432853, 2188 | "longitude": 118.320732, 2189 | "zipCode": 893 2190 | }, { 2191 | "sort": 5, 2192 | "id": 312, 2193 | "name": "烈嶼鄉", 2194 | "latitude": 24.429508, 2195 | "longitude": 118.244448, 2196 | "zipCode": 894 2197 | }, { 2198 | "sort": 6, 2199 | "id": 313, 2200 | "name": "烏坵鄉", 2201 | "latitude": 24.988705, 2202 | "longitude": 119.453302, 2203 | "zipCode": 896 2204 | }] 2205 | }, { 2206 | "sort": 10, 2207 | "id": "0024", 2208 | "name": "屏東縣", 2209 | "districts": [{ 2210 | "sort": 1, 2211 | "id": 314, 2212 | "name": "屏東市", 2213 | "latitude": 22.662495, 2214 | "longitude": 120.491447, 2215 | "zipCode": 900 2216 | }, { 2217 | "sort": 24, 2218 | "id": 315, 2219 | "name": "三地門鄉", 2220 | "latitude": 22.71627, 2221 | "longitude": 120.65425, 2222 | "zipCode": 901 2223 | }, { 2224 | "sort": 27, 2225 | "id": 316, 2226 | "name": "霧臺鄉", 2227 | "latitude": 22.748991, 2228 | "longitude": 120.728457, 2229 | "zipCode": 902 2230 | }, { 2231 | "sort": 28, 2232 | "id": 317, 2233 | "name": "瑪家鄉", 2234 | "latitude": 22.708652496337891, 2235 | "longitude": 120.64945220947266, 2236 | "zipCode": 903 2237 | }, { 2238 | "sort": 10, 2239 | "id": 318, 2240 | "name": "九如鄉", 2241 | "latitude": 22.740428, 2242 | "longitude": 120.490546, 2243 | "zipCode": 904 2244 | }, { 2245 | "sort": 17, 2246 | "id": 319, 2247 | "name": "里港鄉", 2248 | "latitude": 22.779157, 2249 | "longitude": 120.494565, 2250 | "zipCode": 905 2251 | }, { 2252 | "sort": 11, 2253 | "id": 320, 2254 | "name": "高樹鄉", 2255 | "latitude": 22.826318, 2256 | "longitude": 120.600831, 2257 | "zipCode": 906 2258 | }, { 2259 | "sort": 12, 2260 | "id": 321, 2261 | "name": "鹽埔鄉", 2262 | "latitude": 22.754444, 2263 | "longitude": 120.572775, 2264 | "zipCode": 907 2265 | }, { 2266 | "sort": 4, 2267 | "id": 322, 2268 | "name": "長治鄉", 2269 | "latitude": 22.676537, 2270 | "longitude": 120.527195, 2271 | "zipCode": 908 2272 | }, { 2273 | "sort": 15, 2274 | "id": 323, 2275 | "name": "麟洛鄉", 2276 | "latitude": 22.650672912597656, 2277 | "longitude": 120.52730560302734, 2278 | "zipCode": 909 2279 | }, { 2280 | "sort": 16, 2281 | "id": 324, 2282 | "name": "竹田鄉", 2283 | "latitude": 22.584737777709961, 2284 | "longitude": 120.54399871826172, 2285 | "zipCode": 911 2286 | }, { 2287 | "sort": 3, 2288 | "id": 325, 2289 | "name": "內埔鄉", 2290 | "latitude": 22.612069, 2291 | "longitude": 120.566897, 2292 | "zipCode": 912 2293 | }, { 2294 | "sort": 6, 2295 | "id": 326, 2296 | "name": "萬丹鄉", 2297 | "latitude": 22.589397430419922, 2298 | "longitude": 120.48488616943359, 2299 | "zipCode": 913 2300 | }, { 2301 | "sort": 2, 2302 | "id": 327, 2303 | "name": "潮州鎮", 2304 | "latitude": 22.549924, 2305 | "longitude": 120.543057, 2306 | "zipCode": 920 2307 | }, { 2308 | "sort": 31, 2309 | "id": 328, 2310 | "name": "泰武鄉", 2311 | "latitude": 22.591978, 2312 | "longitude": 120.632026, 2313 | "zipCode": 921 2314 | }, { 2315 | "sort": 32, 2316 | "id": 329, 2317 | "name": "來義鄉", 2318 | "latitude": 22.526257, 2319 | "longitude": 120.631534, 2320 | "zipCode": 922 2321 | }, { 2322 | "sort": 20, 2323 | "id": 330, 2324 | "name": "萬巒鄉", 2325 | "latitude": 22.57265, 2326 | "longitude": 120.567818, 2327 | "zipCode": 923 2328 | }, { 2329 | "sort": 19, 2330 | "id": 331, 2331 | "name": "崁頂鄉", 2332 | "latitude": 22.514782, 2333 | "longitude": 120.514086, 2334 | "zipCode": 924 2335 | }, { 2336 | "sort": 18, 2337 | "id": 332, 2338 | "name": "新埤鄉", 2339 | "latitude": 22.470212, 2340 | "longitude": 120.54979, 2341 | "zipCode": 925 2342 | }, { 2343 | "sort": 21, 2344 | "id": 333, 2345 | "name": "南州鄉", 2346 | "latitude": 22.490486, 2347 | "longitude": 120.509825, 2348 | "zipCode": 926 2349 | }, { 2350 | "sort": 22, 2351 | "id": 334, 2352 | "name": "林邊鄉", 2353 | "latitude": 22.434911, 2354 | "longitude": 120.514305, 2355 | "zipCode": 927 2356 | }, { 2357 | "sort": 7, 2358 | "id": 335, 2359 | "name": "東港鎮", 2360 | "latitude": 22.466702, 2361 | "longitude": 120.45426, 2362 | "zipCode": 928 2363 | }, { 2364 | "sort": 33, 2365 | "id": 336, 2366 | "name": "琉球鄉", 2367 | "latitude": 22.348427, 2368 | "longitude": 120.382549, 2369 | "zipCode": 929 2370 | }, { 2371 | "sort": 13, 2372 | "id": 337, 2373 | "name": "佳冬鄉", 2374 | "latitude": 22.419303894042969, 2375 | "longitude": 120.55232238769531, 2376 | "zipCode": 931 2377 | }, { 2378 | "sort": 8, 2379 | "id": 338, 2380 | "name": "新園鄉", 2381 | "latitude": 22.54383, 2382 | "longitude": 120.461525, 2383 | "zipCode": 932 2384 | }, { 2385 | "sort": 5, 2386 | "id": 339, 2387 | "name": "枋寮鄉", 2388 | "latitude": 22.365588, 2389 | "longitude": 120.593476, 2390 | "zipCode": 940 2391 | }, { 2392 | "sort": 23, 2393 | "id": 340, 2394 | "name": "枋山鄉", 2395 | "latitude": 22.263758, 2396 | "longitude": 120.652287, 2397 | "zipCode": 941 2398 | }, { 2399 | "sort": 26, 2400 | "id": 341, 2401 | "name": "春日鄉", 2402 | "latitude": 22.370835, 2403 | "longitude": 120.629328, 2404 | "zipCode": 942 2405 | }, { 2406 | "sort": 29, 2407 | "id": 342, 2408 | "name": "獅子鄉", 2409 | "latitude": 22.201772, 2410 | "longitude": 120.705445, 2411 | "zipCode": 943 2412 | }, { 2413 | "sort": 14, 2414 | "id": 343, 2415 | "name": "車城鄉", 2416 | "latitude": 22.073928, 2417 | "longitude": 120.714305, 2418 | "zipCode": 944 2419 | }, { 2420 | "sort": 30, 2421 | "id": 344, 2422 | "name": "牡丹鄉", 2423 | "latitude": 22.126235, 2424 | "longitude": 120.774353, 2425 | "zipCode": 945 2426 | }, { 2427 | "sort": 9, 2428 | "id": 345, 2429 | "name": "恆春鎮", 2430 | "latitude": 22.003862380981445, 2431 | "longitude": 120.74726867675781, 2432 | "zipCode": 946 2433 | }, { 2434 | "sort": 25, 2435 | "id": 346, 2436 | "name": "滿州鄉", 2437 | "latitude": 22.02085, 2438 | "longitude": 120.838585, 2439 | "zipCode": 947 2440 | }] 2441 | }, { 2442 | "sort": 19, 2443 | "id": "0025", 2444 | "name": "臺東縣", 2445 | "districts": [{ 2446 | "sort": 1, 2447 | "id": 347, 2448 | "name": "臺東市", 2449 | "latitude": 22.754611, 2450 | "longitude": 121.146857, 2451 | "zipCode": 950 2452 | }, { 2453 | "sort": 15, 2454 | "id": 348, 2455 | "name": "綠島鄉", 2456 | "latitude": 22.66928, 2457 | "longitude": 121.468341, 2458 | "zipCode": 951 2459 | }, { 2460 | "sort": 16, 2461 | "id": 349, 2462 | "name": "蘭嶼鄉", 2463 | "latitude": 22.024573, 2464 | "longitude": 121.556325, 2465 | "zipCode": 952 2466 | }, { 2467 | "sort": 10, 2468 | "id": 350, 2469 | "name": "延平鄉", 2470 | "latitude": 22.902532577514648, 2471 | "longitude": 121.08582305908203, 2472 | "zipCode": 953 2473 | }, { 2474 | "sort": 2, 2475 | "id": 351, 2476 | "name": "卑南鄉", 2477 | "latitude": 22.782736, 2478 | "longitude": 121.087105, 2479 | "zipCode": 954 2480 | }, { 2481 | "sort": 3, 2482 | "id": 352, 2483 | "name": "鹿野鄉", 2484 | "latitude": 22.914382934570313, 2485 | "longitude": 121.13618469238281, 2486 | "zipCode": 955 2487 | }, { 2488 | "sort": 7, 2489 | "id": 353, 2490 | "name": "關山鎮", 2491 | "latitude": 23.047513961791992, 2492 | "longitude": 121.16307830810547, 2493 | "zipCode": 956 2494 | }, { 2495 | "sort": 11, 2496 | "id": 354, 2497 | "name": "海端鄉", 2498 | "latitude": 23.102066, 2499 | "longitude": 121.176551, 2500 | "zipCode": 957 2501 | }, { 2502 | "sort": 8, 2503 | "id": 355, 2504 | "name": "池上鄉", 2505 | "latitude": 23.12245, 2506 | "longitude": 121.214934, 2507 | "zipCode": 958 2508 | }, { 2509 | "sort": 4, 2510 | "id": 356, 2511 | "name": "東河鄉", 2512 | "latitude": 22.969073, 2513 | "longitude": 121.302821, 2514 | "zipCode": 959 2515 | }, { 2516 | "sort": 6, 2517 | "id": 357, 2518 | "name": "成功鎮", 2519 | "latitude": 23.100314, 2520 | "longitude": 121.379478, 2521 | "zipCode": 961 2522 | }, { 2523 | "sort": 5, 2524 | "id": 358, 2525 | "name": "長濱鄉", 2526 | "latitude": 23.315254211425781, 2527 | "longitude": 121.45155334472656, 2528 | "zipCode": 962 2529 | }, { 2530 | "sort": 9, 2531 | "id": 359, 2532 | "name": "太麻里鄉", 2533 | "latitude": 22.615601, 2534 | "longitude": 121.007575, 2535 | "zipCode": 963 2536 | }, { 2537 | "sort": 12, 2538 | "id": 360, 2539 | "name": "金峰鄉", 2540 | "latitude": 22.5987548828125, 2541 | "longitude": 120.9610595703125, 2542 | "zipCode": 964 2543 | }, { 2544 | "sort": 13, 2545 | "id": 361, 2546 | "name": "大武鄉", 2547 | "latitude": 22.340556, 2548 | "longitude": 120.890078, 2549 | "zipCode": 965 2550 | }, { 2551 | "sort": 14, 2552 | "id": 362, 2553 | "name": "達仁鄉", 2554 | "latitude": 22.2969913482666, 2555 | "longitude": 120.88311767578125, 2556 | "zipCode": 966 2557 | }] 2558 | }, { 2559 | "sort": 18, 2560 | "id": "0026", 2561 | "name": "花蓮縣", 2562 | "districts": [{ 2563 | "sort": 1, 2564 | "id": 363, 2565 | "name": "花蓮市", 2566 | "latitude": 23.982111, 2567 | "longitude": 121.606795, 2568 | "zipCode": 970 2569 | }, { 2570 | "sort": 4, 2571 | "id": 364, 2572 | "name": "新城鄉", 2573 | "latitude": 24.039474, 2574 | "longitude": 121.604442, 2575 | "zipCode": 971 2576 | }, { 2577 | "sort": 8, 2578 | "id": 365, 2579 | "name": "秀林鄉", 2580 | "latitude": 24.118673324584961, 2581 | "longitude": 121.62486267089844, 2582 | "zipCode": 972 2583 | }, { 2584 | "sort": 2, 2585 | "id": 366, 2586 | "name": "吉安鄉", 2587 | "latitude": 23.972953, 2588 | "longitude": 121.563485, 2589 | "zipCode": 973 2590 | }, { 2591 | "sort": 3, 2592 | "id": 367, 2593 | "name": "壽豐鄉", 2594 | "latitude": 23.870252, 2595 | "longitude": 121.508972, 2596 | "zipCode": 974 2597 | }, { 2598 | "sort": 5, 2599 | "id": 368, 2600 | "name": "鳳林鎮", 2601 | "latitude": 23.744737, 2602 | "longitude": 121.451816, 2603 | "zipCode": 975 2604 | }, { 2605 | "sort": 7, 2606 | "id": 369, 2607 | "name": "光復鄉", 2608 | "latitude": 23.66937, 2609 | "longitude": 121.423254, 2610 | "zipCode": 976 2611 | }, { 2612 | "sort": 13, 2613 | "id": 370, 2614 | "name": "豐濱鄉", 2615 | "latitude": 23.601088, 2616 | "longitude": 121.521053, 2617 | "zipCode": 977 2618 | }, { 2619 | "sort": 6, 2620 | "id": 371, 2621 | "name": "瑞穗鄉", 2622 | "latitude": 23.49656, 2623 | "longitude": 121.375778, 2624 | "zipCode": 978 2625 | }, { 2626 | "sort": 11, 2627 | "id": 372, 2628 | "name": "萬榮鄉", 2629 | "latitude": 23.714951, 2630 | "longitude": 121.410985, 2631 | "zipCode": 979 2632 | }, { 2633 | "sort": 10, 2634 | "id": 373, 2635 | "name": "玉里鎮", 2636 | "latitude": 23.335626, 2637 | "longitude": 121.315197, 2638 | "zipCode": 981 2639 | }, { 2640 | "sort": 12, 2641 | "id": 374, 2642 | "name": "卓溪鄉", 2643 | "latitude": 23.346553802490234, 2644 | "longitude": 121.30339813232422, 2645 | "zipCode": 982 2646 | }, { 2647 | "sort": 9, 2648 | "id": 375, 2649 | "name": "富里鄉", 2650 | "latitude": 23.179489135742187, 2651 | "longitude": 121.25032806396484, 2652 | "zipCode": 983 2653 | }] 2654 | }] -------------------------------------------------------------------------------- /raw/neighborhood_taipei/G97_A_CALIN_P.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kurotanshi/mask-map/9cd4ea2d487ccb86b549b82f98243c2b8d1e7419/raw/neighborhood_taipei/G97_A_CALIN_P.dbf -------------------------------------------------------------------------------- /raw/neighborhood_taipei/G97_A_CALIN_P.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kurotanshi/mask-map/9cd4ea2d487ccb86b549b82f98243c2b8d1e7419/raw/neighborhood_taipei/G97_A_CALIN_P.shp -------------------------------------------------------------------------------- /raw/neighborhood_taipei/G97_A_CALIN_P.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kurotanshi/mask-map/9cd4ea2d487ccb86b549b82f98243c2b8d1e7419/raw/neighborhood_taipei/G97_A_CALIN_P.shx -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 34 | 35 | 56 | -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kurotanshi/mask-map/9cd4ea2d487ccb86b549b82f98243c2b8d1e7419/src/assets/logo.png -------------------------------------------------------------------------------- /src/components/HelloWorld.vue: -------------------------------------------------------------------------------- 1 | 33 | 34 | 42 | 43 | 44 | 60 | -------------------------------------------------------------------------------- /src/components/VueLeaflet.vue: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-unused-vars */ 2 | 19 | 20 | 132 | 133 | 180 | -------------------------------------------------------------------------------- /src/components/infoPopup.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 18 | 19 | 48 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | import store from './store' 4 | 5 | import { Icon } from 'leaflet' 6 | import 'leaflet/dist/leaflet.css' 7 | 8 | Vue.config.productionTip = false 9 | 10 | // this part resolve an issue where the markers would not appear 11 | delete Icon.Default.prototype._getIconUrl 12 | 13 | Icon.Default.mergeOptions({ 14 | iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'), 15 | iconUrl: require('leaflet/dist/images/marker-icon.png'), 16 | shadowUrl: require('leaflet/dist/images/marker-shadow.png') 17 | }) 18 | 19 | new Vue({ 20 | store, 21 | render: h => h(App) 22 | }).$mount('#app') 23 | -------------------------------------------------------------------------------- /src/resource/map-settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "center": [25.0677505, 121.5470599], 3 | "zoom": 15, 4 | "mapURL": "https://api.tiles.mapbox.com/v4/mapbox.streets/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw", 5 | "attribute": "Map data © OpenStreetMap contributors, CC-BY-SA, Imagery © Mapbox", 6 | "icon": { 7 | "iconUrl": "https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-violet.png", 8 | "shadowUrl": "https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png", 9 | "iconSize": [25, 41], 10 | "iconAnchor": [12, 41], 11 | "popupAnchor": [1, -34], 12 | "shadowSize": [41, 41] 13 | } 14 | } -------------------------------------------------------------------------------- /src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | 4 | Vue.use(Vuex) 5 | 6 | export default new Vuex.Store({ 7 | state: { 8 | stores: [] 9 | }, 10 | mutations: { 11 | setStores (state, payload) { 12 | state.stores = payload 13 | } 14 | }, 15 | actions: { 16 | async fetchPharmacies () { 17 | const json = await fetch('https://kiang.github.io/pharmacies/json/points.json') 18 | .then(res => res.json()) 19 | this.commit('setStores', json) 20 | } 21 | }, 22 | modules: { 23 | } 24 | }) 25 | -------------------------------------------------------------------------------- /src/styles/reset.scss: -------------------------------------------------------------------------------- 1 | /* http://meyerweb.com/eric/tools/css/reset/ 2 | v2.0 | 20110126 3 | License: none (public domain) 4 | */ 5 | 6 | html, 7 | body, 8 | div, 9 | span, 10 | applet, 11 | object, 12 | iframe, 13 | h1, 14 | h2, 15 | h3, 16 | h4, 17 | h5, 18 | h6, 19 | p, 20 | blockquote, 21 | pre, 22 | a, 23 | abbr, 24 | acronym, 25 | address, 26 | big, 27 | cite, 28 | code, 29 | del, 30 | dfn, 31 | em, 32 | img, 33 | ins, 34 | kbd, 35 | q, 36 | s, 37 | samp, 38 | small, 39 | strike, 40 | strong, 41 | sub, 42 | sup, 43 | tt, 44 | var, 45 | b, 46 | u, 47 | i, 48 | center, 49 | dl, 50 | dt, 51 | dd, 52 | ol, 53 | ul, 54 | li, 55 | fieldset, 56 | form, 57 | label, 58 | legend, 59 | table, 60 | caption, 61 | tbody, 62 | tfoot, 63 | thead, 64 | tr, 65 | th, 66 | td, 67 | article, 68 | aside, 69 | canvas, 70 | details, 71 | embed, 72 | figure, 73 | figcaption, 74 | footer, 75 | header, 76 | hgroup, 77 | menu, 78 | nav, 79 | output, 80 | ruby, 81 | section, 82 | summary, 83 | time, 84 | mark, 85 | audio, 86 | video { 87 | margin: 0; 88 | padding: 0; 89 | border: 0; 90 | font-size: 100%; 91 | font: inherit; 92 | vertical-align: baseline; 93 | } 94 | 95 | /* HTML5 display-role reset for older browsers */ 96 | 97 | article, 98 | aside, 99 | details, 100 | figcaption, 101 | figure, 102 | footer, 103 | header, 104 | hgroup, 105 | menu, 106 | nav, 107 | section { 108 | display: block; 109 | } 110 | 111 | body { 112 | line-height: 1; 113 | } 114 | 115 | ol, 116 | ul { 117 | list-style: none; 118 | } 119 | 120 | blockquote, 121 | q { 122 | quotes: none; 123 | } 124 | 125 | blockquote { 126 | &:before, 127 | &:after { 128 | content: ''; 129 | content: none; 130 | } 131 | } 132 | 133 | q { 134 | &:before, 135 | &:after { 136 | content: ''; 137 | content: none; 138 | } 139 | } 140 | 141 | table { 142 | border-collapse: collapse; 143 | border-spacing: 0; 144 | } 145 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | 2 | const baseUrl = process.env.NODE_ENV === 'production' ? './' : '/' 3 | 4 | module.exports = { 5 | // filenameHashing: false, 6 | devServer: { https: true }, 7 | productionSourceMap: false, 8 | publicPath: baseUrl 9 | } 10 | --------------------------------------------------------------------------------