文档章节

OpenERP|Odoo高德地图应用

tiexinliu
 tiexinliu
发布于 2015/04/06 11:07
字数 477
阅读 80
收藏 0

    在openerp中的fleet模块,每一个车辆都有地图应用。默认采用的是谷歌地图,但是在应用得时候如果想换其他的地图该怎么做那?以下我们以国内市 面上比较流行的高德地图为例,给大家分析一下如何换地图。

    一,openerp的地图设计思路

    openerp的地图应用是运用qweb来实现的。在xml中声明一个div,然后在js中初始化地图放到声明的div里即可。在js中会把这一系列的初 始化地图,加载等动作注册为一个openerp的widget。最后在相关的视图页面引用这个widget即可。所有,我们如果要运用新的地图,我们只需 要修改地图相关的js和xml即可。

    二,高德地图实现

    在进行修改之前,我们首先要把高德地图的javascript的api复制到一个静态文件之中。然后在进行如下代码的修改,修改完后在__open

erp__.py中导入gaodeapi.js,gaode.js,gaode.xml即可。

    gaode.xml:

    <?xml version="1.0" encoding="UTF-8"?>

    <templates xml:space="preserve">

    <t t-name="WidgetGaodeCoordinates">

           <div id="container" class="gaode"></div>

    </t>

    </templates>


    gaode.js:

    openerp.fleet = function(instance) {

    var _t = instance.web._t,

        _lt = instance.web._lt;

    var QWeb = instance.web.qweb;

    instance.fleet = {};

    instance.web.form.widgets.add('color', 'instance.oepetstore.FieldColor');

    instance.fleet.WidgetGaodeCoordinates = instance.web.form.FormWidget.extend({

        init: function() {

            this._super.apply(this, arguments);

        },

        start: function() {

            this._super();

            this.field_manager.on("field_changed:provider_latitude", this, this.display_map);

            this.field_manager.on("field_changed:provider_longitude", this, this.display_map);

            this.on("change:effective_readonly", this, this.display_map);

            this.display_map();           

        },

        

        display_map: function() {

            var self = this;

            var provider_latitude = this.field_manager.get_field_value("provider_latitude");

            var provider_longitude = this.field_manager.get_field_value("provider_longitude");

            this.$el.html(QWeb.render("WidgetGaodeCoordinates", {

                "latitude": provider_latitude || 0,

                "longitude": provider_longitude || 0,

            }));

            var mapObj = new AMap.Map("container");

            

            mapObj.plugin(["AMap.ToolBar","AMap.OverView","AMap.Scale"],function(){  

                //加载工具条  

                tool=new AMap.ToolBar({  

                  direction:false,//隐藏方向导航  

                  ruler:false,//隐藏视野级别控制尺  

                  autoPosition:false//禁止自动定位  

                });  

                mapObj.addControl(tool);  

                //加载鹰眼  

                view=new AMap.OverView();  

                mapObj.addControl(view);  

                //加载比例尺  

                scale=new AMap.Scale();  

                mapObj.addControl(scale);  

              });  

            

            var marker = new AMap.Marker({

                id:"m",

                position:new AMap.LngLat(provider_latitude,provider_longitude),

                offset: new AMap.Pixel(-8,-34),

                icon: "http://webapi.amap.com/static/images/marker_sprite.png",

                level: 15

            });

            var point = new AMap.LngLat(provider_latitude, provider_longitude);

            mapObj.setCenter(point);

            mapObj.addOverlays(marker);

        },

    });

    instance.web.form.custom_widgets.add('coordinates', 'instance.fleet.WidgetGaodeCoordinates');

}                                                    


© 著作权归作者所有

共有 人打赏支持
tiexinliu
粉丝 0
博文 1
码字总数 477
作品 0
苏州
如何在CentOS 7.x中安装OpenERP(Odoo)

各位好,这篇教程关于的是如何在CentOS 7中安装Odoo(就是我们所知的OpenERP)。你是不是在考虑为你的业务安装一个不错的ERP(企业资源规划)软件?那么OpenERP就是你寻找的最好的程序,因为...

酱醋茶丶
2015/11/09
0
0
CentOS 7.x里yum安装Odoo 8.0&9.0(OpenERP)

(总结)CentOS 7.x里yum安装Odoo 8.0&9.0(OpenERP) 最近想了解下合适中小企业使用的ERP系统,研究了几款主流的开源ERP系统以及了解下SAP、Oracle EBS等大型ERP系统,开源ERP里Odoo(以前叫...

李伟铭k
07/09
0
0
Ubuntu Server + openerp(四)

继续上篇,我们来安装OpenERP 7.0,由于官方还没有放出正式版,所以我们先安装社区版 1.从网上下载程序 wget http://nightly.openerp.com/7.0/nightly/deb/openerp7.0-latest-1all.deb,如下图...

Elvin_Wang
2013/01/03
0
0
CentOS6.4下安装openERP7.0

以前搞的都是windows下面的oe,不管是all in one还是green openerp,都很省事,最多两分钟搞定, 最近需要搞个linux版的,就做了个step by step式的安装,有参考http://my.oschina.net/Jerry6/...

深圳市唤梦科技
2013/09/29
0
1
odoo 中多币种处理(外币处理)

odoo多币种处理 http://www.cnblogs.com/godzone/archive/2012/11/05/2754436.html OpenERP的价格表(Pricelist)机制: http://www.chinamaker.net/html/2011/study_1123/78.html odoo 文章L......

斯文剑客
2015/07/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

go语言学习总结

一、描述 go语言是直接将源码编译成二进制机器码的语言;它支持面向对象、也支持函数式编程;支持并发很容易; 二、基本语法学习路径 https://studygolang.com/subject/2...

盼望明天
25分钟前
1
0
JSP 九大内置对象及其作用域

JSP 中一共预先定义了 9 个这样的对象,分别为:request、response、session、application、out、pagecontext、config、page、exception ,下面就简单介绍下。 1、request 对象 request 对象...

几个栗子
36分钟前
0
0
Java中的坑之方括号

Java中的坑之方括号 这一段时间,在做项目的时候,发现了一个坑,这个坑说大不大,说小不小,不知道的足够喝一壶,知道的就可以轻松解决。 问题描述 在做数据统计的时候,遇见了如下形式的数...

星汉
46分钟前
1
0
[雪峰磁针石博客]python机器学习、web开发等书籍汇总

Building Machine Learning Systems with Python Third Edition - 2018.pdf 下载地址 Get more from your data by creating practical machine learning systems with Python Key Features ......

python测试开发人工智能安全
57分钟前
1
0
文件的压缩与解压(linux)

Linux下*.tar.gz文件解压缩命令 1.压缩命令:   命令格式:tar -zcvf 压缩后文件名.tar.gz 被压缩文件名 可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。 2.解压缩命令: ...

qimh
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部