首页 > 编程技术 > php

PHP与echarts读取地图数据并显示例子

发布时间:2016-11-25 15:33

echarts是一个jquery插件了可以实现地图上标数据了,我信下面一起来看一篇关于PHP与echarts读取地图数据并显示例子,希望例子能够对各位有用了。

<div id="myChart" style="width:700px;height:560px"></div>

引入echarts百度图表插件和全国各地数据china.js

<script type="text/javascript"" width=100% src="js/echarts.min.js"></script>
<script type="text/javascript"" width=100% src="http://libs.useso.com/js/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript"" width=100% src="js/china.js"></script>

接下来设置echarts相关属性和api接口

option = {
    title: {
        text: '2015年GDP统计数据',
        subtext: '数据来源网络(单位:万亿元)',
        left: 'center'
    },
    tooltip: {
        trigger: 'item',
        formatter: "{a} <br/>{b} : {c}万亿元"
    },
    visualMap: {
        min: 0,
        max: 10,
        left: 'left',
        top: 'bottom',
        orient: 'horizontal',
        text: ['高', '低'], // 文本,默认为数值文本
        calculable: true  //是否启用值域漫游,即是否有拖拽用的手柄,以及用手柄调整选中范围。
    },
    toolbox: {//工具栏
        show: true,
        orient: 'vertical', //垂直
        left: 'right',
        top: 'center',
        feature: {
            mark: {show: true},
            saveAsImage: {show: true} //保存为图片
        }
    },
    series: [
        {
            name: '2015年GDP',
            type: 'map',
            mapType: 'china',
            roam: false, //是否开启鼠标缩放和平移
            itemStyle: {
                normal: {label: {show: true}},
                emphasis: {label: {show: true}}
            },
            data: []
        }
    ]
};
var myChart = echarts.init(document.getElementById('myChart'));
 
myChart.showLoading();
myChart.setOption(option);

最后远程加载中国地图数据

$.ajax({
    type: "post",
    async: false, //同步执行 
    url: "mapdata.php",
    dataType: "json", //返回数据形式为json 
    success: function(result) {
        myChart.hideLoading(); //隐藏加载动画 
        myChart.setOption({//渲染数据 
            series: [{
                    // 根据名字对应到相应的系列 
                    name: '2015年GDP',
                    data: result
                }]
        });
    },
    error: function() {
        alert("请求数据失败!");
    }
});

PHP读取中国省份表

$sql = "select * from echarts_map";
$query = mysql_query($sql);
while($row=mysql_fetch_array($query)){
    $arr[] = array(
        'name' => $row['province'],
        'value' => $row['gdp']
    );
}

最后附上中国省份地图表

CREATE TABLE IF NOT EXISTS `echarts_map` ( 
  `id` int(11) NOT NULL AUTO_INCREMENT, 
  `province` varchar(45) NOT NULL, 
  `gdp` decimal(10,2) NOT NULL, 
  PRIMARY KEY (`id`) 
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

异常处理虽然说使用简单但是我们应该在哪些情况下使用异常处理呢,今天小编就来为各位介绍关于php异常处理的使用方法了,具体的操作细节如下所示。
首先看一段官方解释(异常处理),如上,其最后一句话说明解释异常与PHP错误的关联解决上。
下面来看异常与PHP错误机制各有什么优缺点?应该如何使用?
根据PHP官方说明PHP的错误机制(错误码)出现于异常之前,用于输入PHP的错误信息,从衍生性来看异常这个概念可以看成是自定义错误机制,用于弥补PHP错误机制(错误码)的不足。
这就说明了一点在信息量方便,异常, 可以包含更丰富的错误信息, 比如错误信息, 错误码, 错误的行数, 文件, 甚至出错上下文, 避免错误信息不丰富的问题
此次是性能上,对于异常处理的性能问题,这里附图说明,如下:
注: 图中有一处不严谨, 即在确定是否最后一个catch块的时候, 会同时判断(is_a), 如果是才进入最后一个catch块执行。
性能和方便, 往往是一个矛盾体,根据场景,自己来选择。
最后一个要讨论的是强迫症问题,如果所有错误都用异常,那么你会看到满屏的try{}catch{},错误很多,有自己决定怎么解决。这就是现在很多框架下会有自定义异常的扩展需求(太多可能的Uncaught Exception),我想意思可能是,交给用户自己设计。

注:使用try{}catch{}不能铺货WARNING错误,需要自己定义捕获错误的函数,例如:

set_error_handler(function () {
    throw new Exception('Ach!');
});
 
try {
    $result = 4 / 0;
} catch( Exception $e ){
    echo "Divide by zero, I don't fear you!".PHP_EOL;
    $result = 0;
}
 
restore_error_handler();

WDCP面板做linux主机的朋友都用到的比较多了,今天我们来看一篇关于WDCP面板基于PHP5.3/5.4/5.5安装soap扩展步骤,希望这篇文章能够为各位同学带来帮助。

第一、安装、升级且确定PHP版本

如果我们采用的是WDCP默认版本,官方默认包是PHP5.2,一般我们肯定是需要升级PHP版本的,毕竟PHP5.2的处理信息能力还是比较慢的,虽然不要求我们升级到PHP7,毕竟支持7版本的程序兼容性还需要一段时间。

这里如果我们需要升级WDCP面板PHP环境,可以参考的文章:

鉴于这位网友的实际环境,我在本地测试机中安装默认WDCP面板之后,升级至PHP5.3.17版本。


wget http://soft.itbulu.com/wdcp/php_up53.sh
sh php_up53.sh

 

这个升级过程可能稍微需要一点时间,总之我们等待就可以。

 

安装、升级且确定PHP版本

 

第二、安装soap扩展过程

 

这里我们基于上面的第一步升级到PHP版本之后,可以看到根目录有php-5.3.17文件夹。



cd php-5.3.17

cd ext/soap

 

进入soap目录,这里需要注意的问题是,如果我们是PHP其他版本,也就进入对应的PHP安装目录,如果我们不小心将PHP安装包删除,那也不要紧,直接到PHP官方网站下载对应的包然后进来。
 代码如下 复制代码

/www/wdlinux/php/bin/phpize

 

安装soap扩展过程
 代码如下 复制代码

./configure --with-php-config=/www/wdlinux/php/bin/php-config --enable-soap
make
make install

 

soap-3


这里我们需要留下这一段:


/www/wdlinux/apache_php-5.3.17/lib/php/extensions/no-debug-non-zts-20090626/

 

然后我们在PHP.INI文件添加文件代码:

 

 代码如下 复制代码

extension=/www/wdlinux/apache_php-5.3.17/lib/php/extensions/no-debug-non-zts-20090626/soap.so


第三、重启生效soap



service httpd restart

 

这样重启生效,我们来看看探针中是否有soap扩展。


重启生效soap


第四、WDCP安装soap扩展总结


通过上面的步骤,还是很简单的就可以在WDCP面板环境中安装SOAP扩展的,主要是要基于PHP安装目录中的文件编译,不同的PHP版本,然后在PHP.INI文件中添加重启服务器就可以生效。

trim函数是删除格的但是在使用时我们一定要注意了,小编今天来为各位介绍trim函数在删除空间时的一些问题与bug了。


trim — 去除字符串首尾处的空白字符(或者其他字符)

用法:

string trim ( string $str [, string $charlist = ” \t\n\r\0\x0B” ] )

trim函数大家应该不会陌生,从4.1.0 新增可选的 charlist 参数。默认的用法就不多说了,说说在使用到第二个参数的情况:

$path = trim(dirname(__FILE__), ‘/’).’/’; // 保证$path只有一个/结束

这种用法也是没有问题的。那什么情况下会出问题?再举个例子:

$domain = trim(‘www.example.com.tw’, ‘www.’); // 大家期望的结果是example.com.tw,可实际的结果却是example.com.t,tw中的w没了。

问题出现在第二个参数$charlist,它代表的是一个字符列表,而不是一个单纯的字符串,所以tw的w属于www.这个列表中的一员,被一起去掉了。具体可以再参考trim

替代方法:

$domain = preg_replace(‘/^www\.|www\.$/’, ”, ‘www.example.com.tw’);

imagettftext是一个图形处理函数了,如果在使用imagettftext函数时碰到Call to undefined function imagettftext()的话就是函数组件没有打开了,所以我们只需要简单的配置即可。

在一个新环境中装Tipask v2.5的时候发现后台验证码无法显示。出错的函数是imagettftext(),由于index.php使用了error_reporting(0)将错误隐去,导致这次莫名的错误,去掉,错误立马出现:

Fatal error: Call to undefined function imagettftext()
现在我们就明确了,出现错误的原因是PHP编译时没有加上FreeType。

解决办法

首先编译安装FreeType,以2.4.0为例:

wget http://download.savannah.gnu.org/releases/freetype/freetype-2.4.0.tar.bz2
tar -jxf freetype-2.4.0.tar.bz2
cd reetype-2.4.0
# 安装到/usr/local/freetype
./configure –prefix=/usr/local/freetype
make && make install
下面我们重新编译PHP,加上参数–with-freetype-dir=/usr/local/freetype

./configure –with-freetype-dir=/usr/local/freetype
编译完成重启php

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
再GD库中找到FreeType Support说明安装成功!

需要注意的是,如果服务器freetype的版本是1.*,那么你可能需要改变编译参数为–with-ttf[=DIR],以下转自ChinaUnix论坛:

字库 配置开关
FreeType 1.x 要激活 FreeType 1.x 的支持,加上 –with-ttf[=DIR]。
FreeType 2 要激活 FreeType 2 的支持,加上 –with-freetype-dir=DIR。
T1lib 要激活 T1lib(Type 1 字体),加上 –with-t1lib[=DIR]。
本地 TrueType 字符串函数 要激活本地 TrueType 字符串函数的支持,加上 –enable-gd-native-ttf。

标签:[!--infotagslink--]

您可能感兴趣的文章: