AngularJS 项目里使用echarts 2.0 实现地图功能

项目中有一页是显示全国地图, echarts官网的地图实例里,有一个模拟迁徙的实例,比较符合项目需求.所以大部分配置项是参考此实例.

angular 就不过多介绍了, Google出品的mvc(或者说mvvm)框架. 双向数据绑定,指令等特性很好用.

echarts 是百度的开源图表插件, 功能丰富,展示形式多样.

首先定义一个directive

.directive(‘echartsMap‘, [‘$timeout‘, function ($timeout) {
    return {
        restrict: ‘EA‘,
        replace: true,
        scope: {
            option: ‘=echartsOption‘     //这里的作用是数据绑定
        },
        template: ‘<div style="height:700px;"></div>‘,   // 自定义图表宽高
        link: function (scope, element, attrs, ctrl) {
       // 以下是echarts 初始化方法, 官网有
            require.config({
                paths: {
                    echarts: ‘js/lib/echarts‘
                },
                packages: [
                    {
                        name: ‘BMap‘,
                        location: ‘js/lib/echarts/src‘,
                        main: ‘main‘
                    }
                ]
            });

            require(
                [
                    ‘echarts‘,
                    ‘BMap‘,
                    ‘echarts/chart/map‘
                ],
                function(echarts, BMapExtension) {

                    $timeout(function () {       // 这里用一个$timeout 0, 是等 dom 加载完毕 

              var BMapExt = new BMapExtension(element[0], BMap, echarts, require(‘zrender‘));  // 这里的elemet[0] 就是这个指令本身,或者指令所在标签

              var map = BMapExt.getMap();
              var container = BMapExt.getEchartsContainer();


              var startPoint = { //初始化坐标
                x: 104.114129,  
                y: 37.550339
              };


              var point = new BMap.Point(startPoint.x, startPoint.y);
              map.centerAndZoom(point, 5);
              map.enableScrollWheelZoom(true);

              var myChart = BMapExt.initECharts(container); // echarts实例
              window.onresize = myChart.onresize;
              BMapExt.setOption(scope.option, true);

                    }, 0);

                });

        }
    };
}])

view 里

<echarts-map echarts-option="ecOption"></echarts-map>

controller 里

$scope.ecOption = {
   //这里写 echarts 的options 就可以了
};

这样,最基本的地图就可以显示出来了.

.

时间: 2024-11-03 22:41:07

AngularJS 项目里使用echarts 2.0 实现地图功能的相关文章

使用Spring Boot和Gradle创建AngularJS项目

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 本文主要是记录使用 Spring Boot 和 Gradle 创建项目的过程,其中会包括 Spring Boot 的安装及使用方法,希望通过这篇文章能够快速搭建一个项目. 1. 开发环境 操作系统: mac JDK:1.7.0_60 Gradle:2.2.1 IDE:Idea 2. 创建项目

Nodejs开源项目里怎么样写测试、CI和代码测试覆盖率

测试 目前主流的就bdd和tdd,自己查一下差异 推荐 mocha和tape 另外Jasmine也挺有名,angularjs用它,不过挺麻烦的,还有一个选择是qunit,最初是为jquery测试写的,在nodejs里用还是觉得怪怪的. 如果想简单可以tap,它和tape很像,下文会有详细说明 mocha mocha是tj写的 https://github.com/mochajs/mocha var assert = require("assert") describe('truth',

angularJs项目实战!01:模块划分和目录组织

近日来我有幸主导了一个典型的web app开发.该项目从产品层次来说是个典型的CRUD应用,故而我毫不犹豫地采用了grunt + boilerplate + angularjs + bootstrap + D3 + requirejs 的架构来实现它.angularjs早在去年6月份我就有所接触,将它应用在实验室项目的个别页面中,11月份在新浪的时候也将其推荐给了所在云事业部项目组.项目组老大程辉等人都是很有技术敏感性的人,大胆地采纳了我的建议,将之应用于原本使用dojo开发的项目前端模块上.然

AngularJS进阶(二十九)AngularJS项目开发技巧之localStorage存储

AngularJS项目开发技巧之localStorage存储 绪 项目开发完毕,测试阶段发现后台管理端二维码生成有问题,问题在于localStorage的存储.如下图左所示,二维码生成完毕包含信息如下图左所示,实际二维码信息如下图右所示: 经过测试发现二维码实际存储的是上一次的结果.好熟悉~Bingo,自己做导航栏高亮时就遇到过这个问题,当时就是使用的localStorage.问题还是出在localStorage身上.但是存储时:localStorage.setItem(key,value),如

cocos2d-x项目101次相遇:3.0 的点击事件,CCTouchDelegate已经停用了

cocos2d-x 101次相遇 / 目录 1   安装和环境搭建 -xcode 2   Scenes , Director, Layers, Sprites3   建立图片菜单 4   在HelloWorld上--建立新场景 5   增加一个精灵sprite 5.1   缩小sprite并使之完整显示6   action ,移动sprite 7   3.0 的点击事件,CCTouchDelegate已经停用了8   使用触摸事件移动 精灵 cocos2d-x 3.0 不再使用 TouchDel

在Android Studio和Android Eclipse 更改现有项目里的SDK版本

一,在Eclipse下改项目里的SDK的版本方法有几种,都比较简单:1.右键单击项目--->properties---->Resource----->Android在Project Bulid Target对话框中选择你需要的Android版本.2.Resource--->Libraries对话框右边的  Addlibraries--->Android Classpath Container---->Next--->选择项目名称即可3.如果你还不放心,那么我们再看

angularJs项目实战!03:angularjs与其他类库的协作

引言:angularjs是一个中等重量级的前端开发框架 HTML是一门很好的为静态文本设计的语言,但要构建动态的web应用它就显的乏力了.通常,我们使用以下技术来解决静态网页技术在构建动态应用上的不足: 1.类库:类库是一类函数的集合,它能帮助你写web应用.这里起主导作用是你的代码,由你来决定何时使用类库.典型的类库,例如prototype.jquery等. 2.框架:框架式一种特殊的.已经实现的web应用,你只需要填充具体的业务逻辑.这里框架是起主导作用的,由它根据具体的逻辑来调用你的代码.

AngularJs项目

AngularJs项目实践总结 今年3月接触AngularJs,并且在6月的项目中开始应用,从踩坑到填坑花了不少时间,根据项目中的实际应用情况总结了一些经验,如下: 一.UI控件选择 Angularjs是不缺控件的,Github里现成的控件非常丰富,基本上足以应付一个普通管理系统中常见的控件需求.但是控件的丰富会带来选择的困难.选择控件要满足几个原则:原则1:符合业务场景原则2:控件持续更新原则3:满足性能要求 举几个例子.首先是上传附件的控件.项目中要用到附件上传,谷歌上搜到了三个控件,分别是

angularJs项目实战!03:angularjs与其他类库的协作(转)

angularjs,在我看来是个中等重量级的框架.即不像backbone那么简单,也不像dojo和Yui那么包罗万象.很多时候,妄图包罗万象,往往会出现很多子模块的质量高不成低不就,并且修改起来较为困难.过分精简,则框架内容单薄需要写的内容太多.angularjs这种相对中庸的风格,则非常符合我的需求. 目前,AngularJS三个我认为最为精妙的组件就是数据绑定(Scope),指令(Directive)和依赖注入(Dependency Injection),表现得非常好.相对而言,它的UI组件