JVectorMap 分级统计图

Choropleth map 即分级统计图。在整个制图区域的若干个小的区划单元内(行政区划或者其他区划单位),根据各分区资料的数量(相对)指标进行分级,并用相应色级或不同疏密的晕线,反映各区现象的集中程度或发展水平的分布差别。
分级统计图法可反映布满整个区域的现象(如地貌切割密度)、呈点状分布的现象(如居民点的密度)或线状分布的现象(如河流密度或道路网密度),但较多的是反映呈面状但属分散分布的现象,如反映人口密度、某农作物播种面积的比、人均收入等。此法因常用色级表示,故亦称色级统计图法。

在创建了世界地图后,我们可以使用其他参数改变地图的外观,具体参数描述请参看 JVectorMap API 。

接下来我们将创建一个 choropleth map ,这个例子中我们将会对2010年各个国家的 GDP 信息进行展示。首先我们需要一些数据,可以从 IMF 网站上去下载得到格式为 XLS 的数据文件,然后将之转化为下面的格式,将文件存储为名字为 gdp-data.js 的文件。 (更多…)

继续阅读

JVectorMap API 之 数据格式

如果你对 JVectorMap 不太了解,请先阅读《开源JS地图插件JVectorMap介绍》。

使用 Converter 生成的 JVectorMap 数据文件大小跟数据源大小和精度相关,数据主要存储于文件中的 path 字段,它代表了地图中所有区域的路径信息。数据文件格式如下:

jQuery.fn.vectorMap('addMap', 'afg_mill_en',
    {
        "insets": [
            {
                "width": 900.0,
                "top": 0,
                "height": 642.33050485257525,
                "bbox": [
                    {"y": -4509613.1491, "x": 6738787.2362},
                    {"y": -3365824.1687, "x": 8341404.6963}
                ],
                "left": 0
            }
        ],
        "paths": {
            "24": {
                "path": "M485.72,476.51l-0.74 ... Z",
                "name": "Paktika"
            },
        },
        "height": 642.33050485257525,
        "projection": {"type": "mill", "centralMeridian": 0.0},
        "width": 900.0
    }
);

下面详细说明这些字段的意义 (更多…)

继续阅读

JVectorMap API 之 Converter

如果你对JVectorMap不太了解,请先阅读《开源JS地图插件JVectorMap介绍》。

Converter 是 JVectorMap 提供给我们把 shapefile 数据文件转化为地图数据的转化器。它是基于 Python 编写的,官方建议版本 >=2.7(貌似 3.x2.x 语法有不少区别,不要使用 3.x 以及以后版本)。另外还需要依赖库 Anyjson , GDAL 和 Shapely

Converter依赖库安装

Linux 下手动安装

# install anyjson
$ wget https://pypi.python.org/packages/source/a/anyjson/anyjson-0.3.3.tar.gz
$ tar zxvf anyjson-0.3.3.tar.gz && cd anyjson-0.3.3
$ python setup.py build && python setup.py install
# install Shapely
$ wet "https://pypi.python.org/packages/source/S/Shapely/Shapely-1.4.0.tar.gz#md5=8194c567cfdcfe0b458e041366924270"
$ tar zxvf Shapely-1.4.0.tar.gz && cd Shapely-1.4.0
$ python setup.py build && python setup.py install
# install GDAL
$ wget https://pypi.python.org/packages/source/G/GDAL/GDAL-1.11.0.tar.gz
$ tar zxvf GDAL-1.11.0.tar.gz && cd GDAL-1.11.0
$ python setup.py build && python setup.py install

(更多…)

继续阅读

JVectorMap API之Proj

如果你对JVectorMap不太了解,请先阅读《开源JS地图插件JVectorMap介绍》。

Proj是投影类,可以进行球面上的点和笛卡尔坐标系的双向转换。目前支持 merc(墨卡托投影),lcc(兰勃特正交投影),aea(阿尔伯斯圆锥等面积投影),mill(米勒圆柱投影)四种投影方式。

Proj支持的方法

Proj提供的方法均为静态<static>方法,下面是支持的方法列表。 (更多…)

继续阅读

开源JS地图插件JVectorMap介绍

jvectormap

JVectorMap是一款优秀的Javascript地图插件。它几乎能够兼容市面上所有主流浏览器,包含移动端浏览器。同时它还提供的地图转化器,可以把shapefile数据文件转化为JVectorMap使用的地图数据。

JVectorMap的功能特点

  • 基于Javascript开发

JVectorMap使用到的有JavascriptHTMLCSSSVG或者VML,市面上主流浏览器都会支持这些技术,因此使用它描绘地图无需单独安装插件。 (更多…)

继续阅读

JVectorMap API之WorldMap

如果你对JVectorMap不太了解,请先阅读《开源JS地图插件JVectorMap介绍》。WorldMap非常重要的类,它可以创建地图、画路径、绑定事件。

WorldMap构造方法参数

名称类型描述
mapString地图数据的名称。格式一般为:territory_proj_langterritoryISO 3166 标准定义的国家代码,proj 为投影名称,lang为国家或地区语言。
backgroundColorString地图背景色。
zoomOnScrollBoolean如果为true可以使用鼠标滚动缩放,默认为true。
zoomMaxNumber表示地图可以缩放的最大比例,默认为8。
zoomMinNumber表示地图可以缩放的最小比例,默认为1。
zoomStepNumber表示使用+ / -按钮缩放地图的倍数,默认是1.6。
regionsSelectableBoolean如果设置为true,区域可以被选择,默认为false。
regionsSelectableOneBoolean同时只可以选择一个区域,默认为false。
markersSelectableBoolean标记是否可选,默认为false;
markersSelectableOneBoolean同时只可以选择一个标记,默认为false。
regionStyleObject为地图区域设置样式。每个区域或者标记有四种状态:initial (默认状态), hover (鼠标经过区域或者标记时), selected (区域或标记被选择时), selectedHover (区域或标记被选择时鼠标经过)。每个状态都可以设置样式,默认参数值为:{initial:{fill:'white',"fill-opacity":1,stroke:'none',"stroke-width":0,"stroke-opacity":1},hover:{"fill-opacity":0.8},selected:{fill:'yellow'},selectedHover:{}}
markerStyleObject给标记设置样式。其中r代表圆的半径,默认参数值为:
{initial:{fill:'grey',stroke:'#505050',"fill-opacity":1,"stroke-width":1,"stroke-opacity":1,r:5},hover:{stroke:'black',"stroke-width":2},selected:{fill:'blue'},selectedHover:{}}
markersObject | Array地图初始化时设置标记。如果值为数组,标记的codes将会使用数组索引作为字符串表示。一般每组标记都会包含latLng (数字数组,纬经度), name (标记上现实的名字) 和样式内容。
seriesObject这个对象包含 markersregions 键值,请参看DataSeries
focusOnObject | String这个参数用来设置地图viewport的初始positionscale。例如设置焦点为地图中心并且放大2倍可以使用下面的值:
{x: 0.5,y: 0.5,scale: 2}
selectedRegionsArray | Object | String设置初始选择区域
selectedMarkersArray | Object | String设置初始选择标记
onRegionLabelShowFunction(Event e, Object label, String code)将在区域标签将被显示前调用。
onRegionOverFunction(Event e, String code)鼠标悬停在区域标签上方时调用。
onRegionOutFunction(Event e, String code)鼠标从在区域标签移走时调用。
onRegionClickFunction(Event e, String code)将在区域标签将被点击时调用。
onRegionSelectedFunction(Event e, String code, Boolean isSelected, Array selectedRegions) 区域被选择时调用。回调方法里面的参数isSelected表示区域是否被选择。参数selectedRegions被选择区域的代码。
onMarkerLabelShowFunction(Event e, Object label, String code) 标记被展示前调用。
onMarkerOverFunction(Event e, String code)鼠标在标记上面悬停时触发。
onMarkerOutFunction(Event e, String code)鼠标从标记上方移出时触发。
onMarkerClickFunction(Event e, String code)点击标记时触发。
onMarkerSelectedFunction(Event e, String code, Boolean isSelected, Array selectedMarkers) 标记被选择时触发。回调方法里面的参数isSelected表示区域是否被选择。参数selectedRegions被选择区域的代码。
onViewportChangeFunction(Event e, Number scale)地图的窗口改变时触发(地图移动或缩放视图)。
(更多…)

继续阅读

JVectorMap API之DataSeries

如果你对JVectorMap不太了解,请先阅读《开源JS地图插件JVectorMap介绍》。DataSeries也就是数据序列,它主要包含了标记(markers)和区域(regions)信息内容。

DataSeries构造参数

params为构造数据序列的参数,类型为对象,其内部属性信息如下:

名称类型描述
valuesArray设置可视化数据
attributeString表示可视化数据数字或者颜色属性,内容通常为:1,标记(markers)和区域(regions)共有属性:fill, stroke, fill-opacity, stroke-opacity;2,仅限于标记(markers)属性:r (radius)。
scaleArray用来表示不同范围的数据表现方式,不同范围数据将会有不同颜色。其中第一个代表数值最小的颜色,依次推断,最后一个代表数值最大的颜色。默认为['#C8EEFF', '#0071A4']
normalizeFunctionFunction|String这个参数可能是方法或者字符串。如果是字符串会有两个值:linear 或者 polynomial,默认为linear。如果是方法则表示用来映射输入数据到提供的scale数据。
minNumber数据集的最小值。如果没有提供,将会自动运算。
maxNumber数据集的最大值。如果没有提供,将会自动运算。
(更多…)

继续阅读

CMAQ相关介绍

CMAQ是美国1997年发布的第三代空气质量模型,它是美国环保局开发的用来模拟空气质量运算的开源项目。

90年代开始,随着计算机性能的增强,特别是高性能计算与通信计划的实施,更复杂的考虑多种大气过程、多尺度的空气质量模式的开发工作在美国展开。模式中需要考虑多种排放源,如工业、电厂、交通、生物排放等过程,研究的污染物和污染问题包括首要污染物、臭氧、颗粒物、能见度、酸沉降等。90年代末开发的代表目前国际领先水平的综合多尺度空气质量模式Models-3/CMAQ(Community Multi-scale Air Quality),本着“一个大气”(One Atomosphere)的设计理念,融入了许多当前大气化学和大气环境领域的最新研究成果,将区域对流层大气作为整体,周密的考虑所有已知的物理和化学过程,综合考虑了不同物种之间的相互影响与转化, 最大限度的模拟真实的大气环境,可用于局地到区域多种尺度光化学烟雾,区域酸沉降、大气颗粒物质等大气污染问题的理论研究与业务预报。Models-3为Third-Generation量模式三部分组成。其核心是Community Air Quality Modeling System的通称,由中尺度气象模式、污染排放模式和多尺度空气质量模式系统,所以也可以称其为Models-3/CMAQ模式。

CMAQ的最大特色在一个大气(One-Atmosphere)的观念,打破了传统模式对单一物种的模拟。将复杂的空气污染情况如对流层的臭氧、PM、有毒物质、酸沉降及能见度等问题综合处理,用于多尺度、多污染物的空气质量预报、评估和决策政策等多种途径。美国环保局研制的未来第四代空气质量模型系统,将尽可能考虑气圈、永圈、和生物圈之闯的互相作用,以便提供一个更加全面的方法对整个 生态系统中的污染物的输送和消亡过程进行预报和评估。 CMAQ是目前国际领先水平的空气质量模型系统。

(更多…)

继续阅读