高德地图应用
来源:互联网 发布:基姆拉尔森公式c语言 编辑:程序博客网 时间:2024/04/30 04:29
转自:http://odoodevelop.lofter.com/
留着备用
openerp的地图应用是运用qweb来实现的。在xml中声明一个div,然后在js中初始化地图放到声明的div里即可。在js中会把这一系列的初始化地图,加载等动作注册为一个openerp的widget。最后在相关的视图页面引用这个widget即可。所有,我们如果要运用新的地图,我们只需要修改地图相关的js和xml即可。
二,高德地图实现
在进行修改之前,我们首先要把高德地图的javascript的api复制到一个静态文件之中。然后在进行如下代码的修改,修改完后在__openerp__.py中导入gaodeapi.js,gaode.js,gaode.xml即可。
gaode.xml:
<?xml version="1.0" encoding="UTF-8"?>
<templates xml:space="preserve">
</templates><t t-name="WidgetGaodeCoordinates">
<div id="container" class="gaode"></div>
</t>
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');
}- 高德地图应用
- 高德地图应用
- 高德地图GPS应用
- 应用高德地图心得
- 第三方应用调用高德地图
- 应用内跳转百度,高德地图
- 高德地图API的应用
- Android应用集成高德地图
- 高德地图API开发应用-----地图显示+定位+marker
- 基于高德地图的应用开发-----DIY地图
- iOS 应用内跳转到百度地图、苹果地图、谷歌地图、高德地图等
- Android应用中打开百度地图、高德地图、网页版百度地图
- 安卓开发——Intent跳转地图应用(百度地图、高德地图)
- Android地图开发之Overlay应用(高德)
- iOS高德地图之注册开发者账号,创建应用。
- 从自己的应用跳转到百度、高德地图
- iOS-hitTest:withEvent:在高德地图中的应用
- Android应用内直接打开高德或者百度地图
- json解析
- 三星Galaxy S6国行配备高通最强芯片 将推曲屏版
- 重拾Java回忆录(七):Java07String和Date的使用
- ViewPager用法
- 各种数据类型表示范围
- 高德地图应用
- java串口通信开发笔记
- 二分图的最大独立集-poj-2771
- c语言 字符串转换为int或float
- Java 读写文件的编码问题——读取是重点
- C#访问修饰符和声明修饰符
- 关于实现udev/mdev自动挂载与卸载
- android 小音频频繁播放
- Unity3d游戏开发之使用烘焙贴图教程(一)