json2select的全国城市数据

去年写过一个小插件,json2select 一直想要转换出配套的数据,但总有这样那样的问题之后,终于拖到了现在。
好在一切悲剧的日子已经过去了,新时代已经来临。猛击这里
三级联动,直辖市精确到城镇街道,一般城市到达区。强烈推荐。

这一切都要感谢 Asfman ,辛勤的工作,当然也少不了感谢搜狐白社会,是他们提供了这么好的数据,也要感谢我们伟大祖国,我们中华民族地大物博,省市也很多……

这套数据有100K多一点,但可以想办法压缩
把其中重复字符串替换掉,把街道替换成j,市替换成s,区替换成q,都可以减少文件体积。要用的时候先用正则替换后,再eval执行字符串就能得到数据了,可以达到68K左右
另外,保存成gb2312的话也可以减小体积。目前我手头的是52K左右大小了。但可能导致乱码,慎用。

进一步,如果通过词频分析,找出重复最多的前20个,替换的话,相信可以把体积维持在30K以下了。但手头没工具,最近也很忙,所以大家自己发挥吧。
我粗略压缩后的东西我就不单独发布了。

update:
在热心网友 Noker (虽然截止到目前位置似乎博客里还空着)的帮助下,已经把这套数据压缩到只有30K左右了。太棒了!
大家可以到 移步到这里下载 对应的数据,以及查看demo

update:
网友fantasy提出一个潜在的bug,由于这套数据中只有 标题 子元素 而没有对应的value值,所以后台无法获取到。为此需要修改一下源文件创建option的那一行

《json2select的全国城市数据》有21个想法

  1. 试验了下,分析字频后替换,gb2312的确能到30K以下,utf8的在40k左右,有时间我来压缩一个试试:)

      1. http://www.cnweb.org/down/areajson/

        我完成压缩了:)下载地址见上面这个URL。
        希望大家能用上,我自己机器上测试木有发现问题。

        压缩前文件大小:93.3KB(GB2312)  122KB(UTF-8)
        压缩后文件大小:28.9KB(GB2312)  37.8KB(UTF-8)
        压缩后与前比率:约33%       约31%

        如发现有问题,欢迎通过页面上的邮箱给我反馈,谢谢

        1. 做前端做项目时间不短了,也有些积累,但都没怎么记录,感觉这样是不对的,所以最近才把网站架起来,以后好放点东西出来分享。
          上次你发给我的那个群,很想加入,但~~~人已满,啥时候清理成员啊,我好去占个位,也贡献下自己的经验,好和同道重任交流交流:)

  2. <option value='"+sd.v+"'
    在哪里,下载到的是压缩的了啊,改了么?

    1. 你好,是这样的,如果你是新下载的,可以看看版本号是不是1.0.1,如果是的话,说明已经是最新版了

    1. 唉,我最近用看到淘宝的也问题多多。反正国内这区县经常在换,拆拆合合也搞不定。多一个选择也总是好的。你可以直接把你做的发出来,我会在原文后面加上链接的。多谢啦~

  3. 词频分析这个简单 用javascript packer 压缩算法,吧\w+改成 var WORDS = /[\u4e00-\u9fa5]/g;

    县|区|市|辖|族|山|治|自|城|州|阳|江|安|南|东|平|河|宁|西|新|海|旗|龙|川|兴|水|尔|武|昌|大|北|德|中|金|源|湖|台|临|永|林|长|溪|丰|石|和|克|云|清|都|口|陵|青|省|定|苗|化|华|巴|通|古|白|乌|拉|家|阿|彝|高|乐|泉|子|吉|特|兰|乡|广|沙|黄|门|庆|天|

    前几位的

  4. 市辖|自治|族自|治县|彝族|回族|苗族|地区|瑶族|满族|藏族|山市|治州|土家|族苗|河区|蒙古|傣族|山区|科尔|市中|侗族|黎族|哈尼|朝阳|
    两个字的平率

  5. 可以给个实质的例子看看怎样调取选择的数据吗?看不明白你写的

发表评论