文档章节

OpenERP|Odoo高德地图应用

tiexinliu
 tiexinliu
发布于 2015/04/06 11:07
字数 477
阅读 81
收藏 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
苏州
私信 提问
关于OpenERP改名Odoo的一些想法

5月15日,OpenERP S A 在合作伙伴Webinar 宣布 OE即将改名Odoo,融资1000万美元, 代码托管更换到Github, 很多内容。OpenERP 名字更改,合作伙伴合作方式也有新政策。OpenERP开源, Odoo仍将继...

Annieguo
2014/05/19
9.8K
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
Odoo8.0正式版发布

源码下载地址: https://github.com/odoo/odoo/archive/8.0.zip OpenERP8.0界面汉化演示网址: http://www.osbzr.net:8899/ 用户名:admin 密码:admin OpenERP界面汉化参与者名单: http:/...

保定-粉刷匠
2014/09/18
4.5K
4
北京路远通公司与 Odoo 正式签约实施伙伴!

odoo 实施伙伴 2015-06-18 公司正式与比利时 odoo 公司签定合作协议,将有利于公司更好的服务于客户,提供更全面的支持和实施服务: odoo培训 odoo部署实施 odoo二次开发 odoo云服务 odoo(O...

路远通
2015/08/19
3K
2

没有更多内容

加载失败,请刷新页面

加载更多

老男孩 - python基础

基础知识 %s 字符串格式输出 ,%d 数字格式化输出 可变类型(mutable):列表,字典,集合 不可变类型(unmutable):数字,字符串,元组 列表 基础 l = []l =[‘张三‘,‘李四’,'alex']...

以谁为师
10分钟前
0
0
【Keras】减少过拟合的秘诀——Dropout正则化

Dropout正则化是最简单的神经网络正则化方法。其原理非常简单粗暴:任意丢弃神经网络层中的输入,该层可以是数据样本中的输入变量或来自先前层的激活。它能够模拟具有大量不同网络结构的神经...

阿里云官方博客
11分钟前
0
0
使用openoffice实现文档在线预览

下载地址:http://www.openoffice.org/zh-cn/download/ 安装 wget https://jaist.dl.sourceforge.net/project/openofficeorg.mirror/4.1.6/binaries/zh-CN/Apache_OpenOffice_4.1.6_Linux_x8......

果树啊
16分钟前
0
0
微信小程序 用canvas绘制的图插入到分享中

用canvas绘制图 createNewImg: function () {var that = this;var ctx = wx.createCanvasContext('mycanvas');ctx.setFillStyle("#F4F4F4");// context.setFillStyle("#fff")ctx.fillRe......

潇潇程序缘
23分钟前
1
0
公司报表数据库优化

报表系统优化 背景: 11.22早晨 刚放下背包,收到一份邮件,邮件意思是公司报表数据库慢,让我帮忙看看。邮件还附带了一个SQL文本,指出这个SQL慢。随后电话了开发人员了解事情来龙去脉,原来...

hnairdb
24分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部