OpenERP|ODOO高德地图应用
发布时间:2015-04-06 11:01:37来源:http://www.chinamaker.net
在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');
}
OpenERP|ODOO高德地图应用的更多相关文章
- 高德地图api实现地址和经纬度的转换(python)
利用高德地图web服务api实现地理/逆地址编码 api使用具体方法请查看官方文档 文档网址:http://lbs.amap.com/api/webservice/guide/api/georegeo ...
- IOS原生地图与高德地图
原生地图 1.什么是LBS LBS: 基于位置的服务 Location Based Service 实际应用:大众点评,陌陌,微信,美团等需要用到地图或定位的App 2.定位方式 1.GPS定位 ...
- 【原创】web端高德地图javascript API的调用
关于第三放地图的使用,腾讯.百度.高德 具体怎么选择看你自己怎么选择了. 高德地图开放平台:http://lbs.amap.com/ 本次使用的是高德的javascript API http://lb ...
- 高德地图-搜索服务-POI搜索
高德地图-搜索服务-POI搜索 之前公司项目收货地址仿饿了么的收货地址,结果发现自己实现的关键字搜索和周边搜索,搜索到的poi列表跟饿了么的并不完全一样,后来考虑了下,应该是搜索的范围.类型之类的设置 ...
- 【krpano】高德地图导航插件(源码+介绍+预览)
简介 krpano可以利用js调用第三方网页版地图,因此可以实现导航效果,用来帮助用户导航到我们全景所在的位置. 效果截图如下,在手机端点击左侧按钮,便会对用户进行定位,跳转至高德地图进行导航 ...
- C# GMap下提供一个高德地图
using System; using GMap.NET.Internals; using GMap.NET.Projections; namespace GMap.NET.MapProviders ...
- [OC][地图] 高德地图之定位初探(一)
使用前的说明 高德地图开放平台的iOS定位模块网址-->http://lbs.amap.com/api/ios-location-sdk/summary/ 高德地图有Web端.android平台 ...
- Android学习十一:高德地图使用
写这篇文章主要有三个目的: 1.使用高德地图api定位 2.获取天气数据 3.编程练手 文件结构 清单文件信息说明: <?xml version="1.0" encoding ...
- 时时获得高德地图坐标 http://lbs.amap.com/console/show/picker
1.高德地图标注 在做开发时,或者做高德地图标注的时候,要用到高德地图的坐标,时时获得高德地图坐标 http://lbs.amap.com/console/show/picker 老的高德地图标注地址 ...
随机推荐
- Flask实战第48天:首页轮播图实现
首页的布局如下 因为以后所有的内容都是在main-container里面,所以这里我们修改front_base.html,把{% block body%}{% endblock%}放到里面去 < ...
- 【Nginx】初试反向代理:反向代理的原理和用途
Nginx是一个轻量级的服务器,是一个俄罗斯的开发者开发的开源软件.Nginx具有占内存小.并发能力高的特点,底层采用epoll(Linux2.6+)和kqueue(FREEBSD)网络I/O模型,相 ...
- Python开发基础-Day4-布尔运算、集合
布尔值 True 真 False 假 所有的数据类型都自带布尔值,数据只有在0,None和空的时候为False. print(bool()) print(bool()) print(bool('')) ...
- BZOJ 2733 [HNOI2012]永无乡(启发式合并+Treap+并查集)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2733 [题目大意] 给出n个点,每个点都有自己的重要度,现在有连边操作和查询操作, 查 ...
- BZOJ 1700 [Usaco2007 Jan]Problem Solving 解题(单调DP)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1700 [题目大意] 共有p道题目要做,每个月收入只有n元,用于付钱做题之外的部分都会吃 ...
- 【线段树】XIII Open Championship of Y.Kupala Grodno SU Grodno, Saturday, April 29, 2017 Problem J. Jedi Training
题意:给你一个序列,支持两种操作:单点修改:询问一个区间中所有相邻位置下标奇偶性均不同的子序列中,和最大的是多少. 线段树每个结点维护四个值: 以奇数下标开始到奇数下标结束的最大子序列和: 以偶数下标 ...
- openstack-cinder-netapp
https://communities.netapp.com/docs/DOC-31749 http://docs.openstack.org/havana/config-reference/cont ...
- 一次完整的HTTP请求的大致过程(转)
说明:这些理论基本都来自网上,所以不一定准确,但一定是比较好理解的,如果要刨根问底,最好的方式就是看书,且要看权威的书. 一次完整的HTTP请求所经历的7个步骤 HTTP通信机制是在一次完整的HTTP ...
- jQuery:validate内置验证的使用
(1)required:true 必输字段(2)remote:"check.php" 使用ajax方法调用check.php验证输入值(3)email:true 必须输入正确格式的 ...
- Unity3d通用工具类之定时触发器
时隔多日,好不容易挤出点时间来写写博文.不容易,请送我几朵红花,点个赞也行. 今天呢,我们主要来扩展下通用工具类==>定时触发器. 顾名思义,所谓的定时触发器,就是告诉程序在过多长时间后,我要执 ...