<<上篇 | 首页 | 下篇>>

IC卡、ID卡、M1卡、CPU卡它们之间的区别--中国一卡通论坛

IC卡的定义 : 

IC(Integrated Circuit)卡是1970年由法国人Roland Moreno发明的,他第一次将可编程设置的IC芯片放于卡片中,使卡片具有更多功能。“IC卡”和“磁卡”都是从技术角度起的名字,不能将其和“信用卡”、“电话卡”等从应用角度命名的卡相混淆。自IC卡出现以后,国际上对它有多种叫法。英文名称有“Smart Card”、“IC Card”等;在亚洲特别是香港、台湾地区,多称为“聪明卡”、“智慧卡”、“智能卡”等;在我国,一般简称为“IC卡”。

IC卡的分类: 

第一种分类方法:IC卡根据卡中所镶嵌的集成电路芯片的不同可以分成两大类,分别是存储器卡和CPU卡(智能卡)。
存储器卡采用存储器芯片作为卡芯,只有“硬件”组成,包括数据存储器和安全逻辑控制等;智能卡采用微处理器芯片作为卡芯,由硬件和软件共同组成,属于卡上单片机系统。 

第二种分类方法:若按卡上数据的读写方法来分类,有接触型IC卡和非接触型IC卡两种。
当前使用广泛的是接触型IC卡,其表面可以看到一个方型镀金接口,共有八个或六个镀金触点,用于与读写器接触,通过电流信号完成读写。读写操作(称为刷卡)时须将IC卡插入读写器,读写完毕,卡片自动弹出,或人为抽出。接触式IC卡刷卡相对慢,但可靠性高,多用于存储信息量大,读写操作复杂的场合。
非接触型IC卡具有接触式IC卡同样的芯片技术和特性,最大的区别在于卡上设有射频信号或红外线收发器,在一定距离内即可收发读写器的信号,因而和读写设备之间无机械接触。在前述IC卡的电路基础上带有射频收发及相关电路的非接触IC卡被称作“射频卡”或“RF卡”。 这种IC卡常用于身份验证,电子门禁等场合。卡上记录信息简单,读写要求不高,卡型变化也较大,可以作成徽章等形式。
因此,不但可以存储大量信息,具有极强的保密性能,并且抗干扰、无磨损、寿命长。因此在广泛的领域中得到应用。 

第三种分类方法:根据IC卡的应用领域,可以分为金融卡和非金融卡两大类。金融信用卡是我国大力建设的金卡工程的主要媒体。由银行发行和管理。由于IC卡上记录了持卡人主要信息,故不一定要求消费场所与银行联网。比起磁卡等仅记录少量数据的卡型,具有极大的灵活性和可靠性。 

非金融卡主要是作为电子证件,用来记录持卡人的各方面信息,作为身份识别。如IC卡身份证、学生证、进门证、考勤卡、医疗证、住宿证等。由于IC卡可以记录大量信息,并且可以分区存款,因此可以做到一卡多用,简化验证的手续。 
------------------------------------------------
因此,LZ的问题可简单回答如下:
IC卡是智能卡的总称。
ID卡是电子证件卡(主要指身份证卡)的简称。
M1卡是NXP(飞利浦)公司的最著名也是目前应用最广泛的非接触卡(如校园卡、公交卡等)。
CPU卡是指芯片内含8/16/32位CPU,具备逻辑处理能力的智能卡。

阅读全文……

标签 : ,

GeoMap/api.md at master · x6doooo/GeoMap · Raphael

GeoMap.js文档

概述

  • geomap.js是一个绘制矢量地图控件,基于jQuery、Raphael,

  • 支持geoJSON格式的数据源

  • 通过Raphael绘制地图,默认采用svg,低版本IE采用vml,兼容性较好(支持IE7、8)

使用方法

基本操作:

//实例化一个GeoMap对象
var map = new GeoMap();

//载入geoJSON格式的数据
map.load(geo_json_data);    

//渲染
map.render();

设置:

//实例化GeoMap对象时可以传入设置项目的对象
var map = new GeoMap(cfg);

//不传参数时, 将使用内置的默认参数
defaultCfg = {
    //地图所在的位置
    container: 'body',
    //地图的偏移量, eg:{x:10, y:10}
    offset: null,
    //地图的缩放比例, eg:{x:10, y:10}
    scale: null,
    //地图样式
    mapStyle: {
        'fill': '#fff',
        'stroke': '#999',
        'stroke-width': 0.7
    },
    //是否显示鼠标跟随的十字刻度线
    crossline:{
        enable: false,
        color: '#ccc'
    },
    //地图背景
    background:'#fff'
};

指定渲染位置:

//GeoMap默认在body元素下生成地图
//实例化时可以设置container指定渲染位置
var map = new GeoMap({
    container: '#map'
});

缩放与偏移:

//geoJSON数据是真实地理经纬度数据
//转换到页面显示需要设置偏移和缩放
var map = new GeoMap({
    //偏移:确定地图位置
    offset: {
        x: 0, y: 0  //世界地图默认不需位移
    },
    //缩放:确定地图大小
    scale:{
        x: 2.6, y: 3
    }
});
//如果不设置偏移,脚本会自动计算路径数据,并让地图从左上角开始渲染

清空画布:(since 0.4.7)

map = new GeoMap({...});
map.load(data_1);
map.render();
//完成一次绘制后,map对象可以清空画布
map.clear();
//重新绘制其他地区数据
//重绘需要注意:如果不确定偏移和缩放是否能够沿用,最好清空一次,让load方法重新计算这两个值
map.scale = null;
map.offset = null;
map.load(data_2);   //载入新数据
map.render();   //重绘

属性绑定:

//通过Raphael的data方法绑定地区的属性

操作地图上的区块:

var map = new GeoMap(config);
map.load(data);
map.render();

//渲染之后,map的shapes属性即地图上的各个区块,可以添加事件
map.shapes.hover(function(){
    ...
});

画点:

//map对象有一个setPoint方法,该方法接受一个坐标参数(取实际经纬度坐标)
//比如北京坐标是x: 116.4551, y: 40.2539
//setPoint方法会根据当前地图的缩放和偏移自动计算图上坐标
point = map.setPoint({x: 116.4551, y: 40.2539});

//点是用Raphael的circle方法画出的,可以通过属性设置,更改点的大小
point.attr('r', 5);

计算一个点的实际经纬度:

map.getGeoPosition([10, 10]); //=> 页面地图上10,10这个点的实际经纬度坐标

画线:(since 0.5.3)

//通过点地图上的点,绘制线段

//假设绘制任意三个点
p1 = map.setPoint({x: 坐标值, y: 坐标值});
p2 = map.setPoint({x: 坐标值, y: 坐标值});
p3 = map.setPoint({x: 坐标值, y: 坐标值});

//将三个点用线段连接起来
lines = map.drawLineByMapPoints([p1, p2, p3]);

//按数组先后顺序,给线段增加箭头的画法
lines = map.drawLineByMapPoints([p1, p2, p3], true);

//给线段和箭头设置样式的画法
lines = map.drawLineByMapPoints([p1, p2, p3], {
    size: 12,       //箭头大小
    rad: 8,         //箭头角度
    color: 'red'    //箭头和线的颜色
});

绘制马赛克式地图:(since 0.5.0)

此方法计算量较大,低版本IE慎用。

//加载geoJSON数据
map.load(json));
//不使用render方法,直接使用mosaic方法,绘制马赛克式地图 
map.mosaic();

关于数据源

geomap.js支持geoJSON格式的数据源。

为了保证地图在页面上的渲染位置,以及缩放比例,在新建一个GeoMap对象时,最好手动设置好offset和scale两个属性。

如果不手动设置,geomap.js加载geoJSON数据的时候,会自动遍历所有节点,算出偏移量和缩放比。

上述两种方法效率都不是很高,最好的方法是对geoJSON进行预处理。bin目录下的formatJSON可以对geoJSON数据源进行预处理,给数据增加一个srcSize属性,其中记录了偏移和缩放数据。geomap.js加载数据时,会根据这一属性的值对地图进行渲染。

formatJSON是一个node脚本,使用方法如下:

//geojson.json是需要预处理的geoJSON文件
./formatJSON geojson.json

阅读全文……

Quickest way to convert XML to JSON in Java - Stack Overflow

The JSON in Java page on json.org has some great resources.

Looks like XML.java and JSONML.java are the classes you're looking for:

public class Main {       
public static int PRETTY_PRINT_INDENT_FACTOR = 4;      
public static String TEST_XML_STRING =         "<?xml version=\"1.0\" ?><test attrib=\"moretest\">Turn this to JSON</test>";       
public static void main(String[] args) {          
try {              
JSONObject xmlJSONObj = XML.toJSONObject(TEST_XML_STRING);              
String jsonPrettyPrintString = xmlJSONObj.toString(PRETTY_PRINT_INDENT_FACTOR);              
System.out.println(jsonPrettyPrintString);          
} catch (JSONException je) {              
System.out.println(je.toString());          
}      }  }

Looks like it does the job. Output is:

{"test": {     "attrib": "moretest",     "content": "Turn this to JSON" }}

Expanded from my original entry. I hope this helps.

阅读全文……

标签 : , ,