javaweb-extjs调用百度地图初始化失败,要二次加载

问题描述

extjs调用百度地图初始化失败,要二次加载

extjs代码

 /*
 * 报警事项处理窗口
 * yening 2015.2.7
 *
 * paras.winTitle:窗口显示的标题
 * paras.width:窗口宽度
 * paras.height:
 *
 */
Ext.ns('Ext.ux.window');
Ext.ux.window.AlarmProcessWnd = function(paras) {
    var me = this;
    var xflwdwUrl = "./xflwdwInfo.do?reqCode=queryXflwdwInfoData";// 消防联网单位信息查询URl
    var xflwdwStaffUrl = "./xflwdwInfo.do?reqCode=queryXflwdwStaffData";// 消防联网单位人员信息查询URl
    var fireAlarmProcessUrl = "./fireAlarm.do?reqCode=updateAlarmProcessState";// 消防联网单位人员信息查询URl
    var processState = 0;
    var eventStore = null;
    // 初始化参数-----------
    Ext.applyIf(paras, {
        width : 1200,
        height : 460,
        winTitle : ''
    });

    // 部门信息--------------
    var deptStore = new Ext.data.Store({
        proxy : new Ext.data.HttpProxy({
            url : xflwdwUrl
        }),
        reader : new Ext.data.JsonReader({
            totalProperty : 'TOTALCOUNT',
            root : 'ROOT'
        }, [ {
            name : 'deptid'
        }, {
            name : 'deptname'
        }, {
            name : 'address'
        }, {
            name : 'remark'
        } ])
    });
    deptStore.on("load", function(dStore) {
        deptPanel.getForm().loadRecord(dStore.getAt(0));
    })
    var deptPanel = new Ext.form.FormPanel({
        id : 'deptPanel',
        height : 100,
        // title:'单位信息',
        // collapsible : true,
        name : 'deptPanel',
        defaultType : 'textfield',
        labelAlign : 'right',
        labelWidth : 80,
        frame : true,
        bodyStyle : 'padding:5 5 0',
        items : [ {
            fieldLabel : '单位名称',
            name : 'deptname',

            readOnly : true,
            allowBlank : true,
            anchor : '99%'
        }, {
            fieldLabel : '地址',
            name : 'address',
            allowBlank : true,
            readOnly : true,
            anchor : '99%'
        }, {
            fieldLabel : '说明',
            name : 'remark',
            allowBlank : true,
            readOnly : true,
            anchor : '99%'
        } ]
    });
    // ---------------------部门人员信息--------------
    var staffStore = new Ext.data.Store({
        proxy : new Ext.data.HttpProxy({
            url : xflwdwStaffUrl
        }),
        reader : new Ext.data.JsonReader({
            totalProperty : 'TOTALCOUNT',
            root : 'ROOT'
        }, [ {
            name : 'name'
        }, {
            name : 'sex'
        }, {
            name : 'type'
        }, {
            name : 'phone1'
        }, {
            name : 'phone2'
        } ])
    });

    var staffCm = new Ext.grid.ColumnModel([ new Ext.grid.RowNumberer(), {
        header : '姓名',
        dataIndex : 'name',
        width : 80
    }, {
        header : '性别',
        dataIndex : 'sex',
        width : 40,
        renderer : SEXRender,
        sortable : true
    }, {
        header : '类型',
        dataIndex : 'type',
        width : 100,
        renderer : XFLWDWSTAFFTYPERender,
        sortable : true
    }, {
        header : '联系电话1',
        dataIndex : 'phone1',
        width : 150,
        sortable : true
    }, {
        header : '联系电话2',
        dataIndex : 'phone2',
        width : 200,
        sortable : true
    } ]);

    var staffGrid = new Ext.grid.GridPanel({
        // title : "联系人",
        height : 120,
        // width: 800,
        autoScroll : true,
        region : 'center',
        margins : '3 3 3 3',
        store : staffStore,
        loadMask : {
            msg : '正在加载表格数据,请稍等...'
        },
        stripeRows : true,
        frame : true,
        cm : staffCm
    });

    // ----------------------事项处理Panel--------------------

    var store = new Ext.data.SimpleStore({
        fields : [ 'name', 'code', 'remark' ],
        data : [ [ '误报模板', '001', '该信息是误报,XXX' ],
                [ '确认模板', '002', '火情已确认,XXXX' ] ]
    });

    var processMode = new Ext.form.ComboBox({
        id : 'id_mode',
        hiddenName : 'processMode',
        fieldLabel : '处理模板',
        triggerAction : 'all',
        store : store,
        displayField : 'name',
        valueField : 'code',
        mode : 'local',
        forceSelection : true,
        typeAhead : true,
        resizable : true,
        anchor : '99%',
        emptyText : '请选择'

    });
    processMode.on("select", function(combo, record) {
        var txt = Ext.getCmp("processText");
        var remark = record.get("remark");
        txt.setValue(remark);
    });
    var processForm = new Ext.form.FormPanel({
        name : 'processForm',
        // title : "火警处理",
        labelWidth : 80, // 标签宽度
        frame : true,
        // frame : true, //是否渲染表单面板背景色
        defaultType : 'textfield', // 表单元素默认类型
        labelAlign : 'right', // 标签对齐方式
        bodyStyle : 'padding:5 5 5 5', // 表单元素和表单面板的边距
        items : [ processMode, {
            id : "processText",
            fieldLabel : '处理结果',
            name : 'processText',
            xtype : 'textarea',
            height : 80, // 设置多行文本框的高度
            emptyText : '请填写处理结果相关内容', // 设置默认初始值
            allowBlank : false,
            anchor : '99%'
        }, {
            id : "eventid",
            name : 'eventid',
            fieldLabel : '事件id',
            hidden : true,
            anchor : '99%'
        }, {
            id : "processstate",
            name : 'processstate',
            fieldLabel : '事件处理状态',
            hidden : true,
            anchor : '99%'
        } ]

    });

    var eventItemPanel = new Ext.Panel({
        layout : 'form',
        resizable : false,
        draggable : true,
        closeAction : 'hide',
        modal : true,
        titleCollapse : true,
        maximizable : false,
        buttonAlign : 'right',
        border : false,
        animCollapse : true,
        animateTarget : Ext.getBody(),
        constrain : true,
        items : [ deptPanel, staffGrid, processForm ],
        buttons : [ {
            text : '火警误报',
            iconCls : 'exclamationIcon',
            handler : function() {
                processEventFunction(1);
            }
        }, {
            text : '火警确认',
            iconCls : 'acceptIcon',
            handler : function() {
                processEventFunction(2);
            }
        }, {
            text : '转119',
            iconCls : 'userIcon',
            handler : function() {
                processEventFunction(3);
            }
        }, {
            text : '关闭',
            iconCls : 'deleteIcon',
            handler : function() {
                eventItemWindow.hide();
            }
        } ]
    });

    // -------------------------GIS页面-----------------------
    var GISPanel = new Ext.Panel(
            {
                collapsible : false,
                margins : '3 3 3 3',
                html : '<iframe id="gis" name="gis" src="app/fireAlarm/js/GIS.htm" width="100%" height="100%" frameborder=0 scrolling=auto></iframe>'
            });
    // ----------------------------------------------事项处理窗口-------------------
    // ---
    var eventItemWindow = new Ext.Window({
        title : paras.winTitle,
        layout : 'column',
        width : paras.width,
        height : paras.height,
        closable : true, // 是否可关闭
        closeAction : 'hide',
        maximizable : true,// 最大化
        animateTarget : Ext.getBody(),
        collapsible : true, // 是否可收缩
        border : true,
        modal : true,
        resizable : false,
        draggable : true,
        titleCollapse : true,
        animCollapse : true,
        margins : '3 3 3 3',
        pageY : 20,
        pageX : 50,
        // pageX : document.body.clientWidth / 2 - 420 / 2,
        constrain : true,// 设置窗口是否可以溢出父容器
        items : [ {
            collapsible : true,
            columnWidth : .3,
            AutoHeight:true,
            region : 'west',
            autoScroll : true,
            items : [ eventItemPanel ]
        }, {
            region : 'center',
            columnWidth : .7,
            items : [ GISPanel ]
        } ]
    });

    this.getProcessState = function() {
        return processState;
    };
    /**
     * 显示窗口
     */
    this.showWindow = function(grid) {
        var record = grid.getSelectionModel().getSelected();
        eventStore = grid.store;
        processState = 0;
        if (Ext.isEmpty(record)) {
            Ext.MessageBox.alert('提示', '请先选中要查看的事项');
            return;
        }

        var eventID = record.get("eventid");// 事件ID
        var deptID = record.get("deptid");// 部门ID
        var longitudeInfo = record.get("longitude");
        var latitudeInfo = record.get("latitude");
        deptStore.load({
            params : {
                deptid : deptID
            }
        });
        staffStore.load({
            params : {
                deptid : deptID
            }
        });
        processForm.getForm().reset();
        eventItemWindow.show();
        Ext.getCmp("eventid").setValue(eventID);
        window.frames['gis'].theLocation(longitudeInfo, latitudeInfo);
    }

    /**
     * 获得经度
     *
     */
    function longitude() {
        for (var i = 0; i < deptStore.getCount(); i++) {
            var longitudeRecord = deptStore.getAt(i);
            longitudeInfo = longitudeRecord.get('longitude');
            return longitudeInfo;
        }
    }
    /**
     * 获得纬度
     *
     */
    function latitude() {
        for (var i = 0; i < deptStore.getCount(); i++) {
            var latitudeRecord = deptStore.getAt(i);
            latitudeInfo = latitudeRecord.get('latitude');
            return latitudeInfo;
        }
    }
    /**
     * 事件处理
     */
    function processEventFunction(precessState) {
        if (!processForm.form.isValid()) {
            alert("请填写火警处理结果信息。。。。");
            return;
        }
        update(precessState);
    }

    /**
     * 事件处理
     */
    function update(precessState) {
        var cmpProcessState = Ext.getCmp("processstate");
        cmpProcessState.setValue(precessState);
        processForm.form.submit({
            url : fireAlarmProcessUrl,
            waitTitle : '提示',
            method : 'POST',
            waitMsg : '正在处理数据,请稍候...',
            success : function(form, action) {

                eventItemWindow.hide();
                eventStore.reload();
                form.reset();
            },
            failure : function(form, action) {
                var msg = action.result.msg;
                Ext.MessageBox.alert('提示', '数据修改失败:<br>' + msg);
            }
        });
    }

}

百度地图代码

 <html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
        body, html{width: 100%;height: 100%;margin:0;font-family:"微软雅黑";}
        #allmap{height:500px;width:100%;}
        #r-result{width:100%; font-size:14px;}
        .anchorBL {  display: none;}
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=WQOD7GtcqdZaEDDPVBqdqeYj"></script>
    <title>城市名定位</title>
</head>
<body>
    <div id="allmap"></div>

</body>
</html>
<script type="text/javascript">
function initMap(longitudeInfo, latitudeInfo){
// 百度地图API功能
var new_point = new BMap.Point(longitudeInfo, latitudeInfo);
    var map = new BMap.Map("allmap");    // 创建Map实例
    map.centerAndZoom(new_point,14);
    map.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放
    var marker = new BMap.Marker(new_point); // 创建标注
        map.addOverlay(marker); // 将标注添加到地图中
        marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
}

    var longitude = 116.331398;
    var latitude = 39.897445;
    initMap(longitude, latitude);

    // 用经纬度设置地图中心点
    function theLocation(longitude, latitude) {

        initMap(longitude, latitude);
    }

</script>

时间: 2024-09-08 17:41:12

javaweb-extjs调用百度地图初始化失败,要二次加载的相关文章

谢谢-web调用百度地图时样式出现问题想知道怎么修改?

问题描述 web调用百度地图时样式出现问题想知道怎么修改? 编写城市定位的时候调用了 百度地图,但是我还有很多地方我根本用不到,影响美观,想要知道怎么样才可以把不要的东西去除掉,急 ~~~~在线等.. 解决方案 百度地图地图上 会叠加各种图层.叠加物 可以进行叠加物图层的删除叠加 http://developer.baidu.com/map/jsdemo.htm 参考这个 用api提供的方法进行删除 对于非叠加物显示问题, 可以在外部css或js中强行屏蔽样式 如 标签 document.get

sdk-在调用百度地图Sdk时出现以下报错,改如何解决?

问题描述 在调用百度地图Sdk时出现以下报错,改如何解决? 03-28 00:03:17.710: I/System.out(1125): so Failed to load. 03-28 00:03:17.770: W/dalvikvm(1125): No implementation found for native Lcom/baidu/platform/comjni/map/commonmemcache/JNICommonMemCache;.Create:()I 03-28 00:03:

js调用百度地图接口

原文:js调用百度地图接口   这是前几天公司做的新项目,上面需要用到地图的数据.第一次做这类型的东西没啥思路,咱们经理说,这东西简单,截个图存文件夹里调整好尺寸,数据库里存上图片的地址动态调用就行了.心想:恩,这方法好,不过...这么多地址,难道我要一张张截图,再打开ps调尺寸么?笔者很懒的好吧.. 于是笔者就想了,能不能调用百度啊什么的地图接口呢?会不会很难呢? 好吧,到这里笔者就开始利用搜索引擎了.   搜出来的结果有很多,各个企业提供的接口也都有各自的特色,笔者比较喜欢百度提供的接口,功

android 百度导航-百度导航初始化失败 求助

问题描述 百度导航初始化失败 求助 初始化失败,这是怎么回事,求助 解决方案 百度地图导航初始化导航失败,不能使用导航百度地图中导航部分引擎初始化失败的解决办法2015年11月20 关于百度地图导航初始化失败的一个教训 解决方案二: http://blog.csdn.net/readreply/article/details/42040709

android 百度地图 定位失败

问题描述 android 百度地图 定位失败 今天朋友写了一个关于百度定位的示例 在他哪里调试的时候好好的 为什么发给我导入工程时定位总是失败 .以为是K的问题 从新申请个K还是不得行. 提示错误 import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import c

android调用百度地图 报如下的错

问题描述 android调用百度地图 报如下的错 java.lang.NoClassDefFoundError: com.baidu.mapapi.BMapManager 解决方案 这种问题一般都与Android的Context有关系,例如你在Service中调用了对话框,因为你贴的代码信息比较少,也看不出具体内容,大概是初始化BMapManager传的Comtext有问题 解决方案二: 文件找不到,看包有没有导全? 解决方案三: 有导入百度sdk jar包吗 解决方案四: 如果确定已经导入了s

如何调用百度地图API实现手机自动定位_Android

最近由于项目需要,研究了下百度地图定位,他们提供的实例基本都是用监听器实现自动定位的.我想实现一种效果:当用户进入UI时,不定位,用户需要定位的时候,自己手动点击按钮,再去定位当前位置.经过2天研究和咨询,找到了解决方案,在此备忘一下. //声明地址解析器 var geoc = new BMap.Geocoder(); //自动定位 var autoLocation = function () { if (navigator.geolocation) { //判断浏览器是否能获取当前位置 nav

Android 调用百度地图API示例

Android 调用百度地图API 一.到 百度地图开发平台下载SDK http://lbsyun.baidu.com/index.php?title=androidsdk/sdkandev-download 1.点击自定义下载 2.下载自己想要的功能包我这里选了三个 3.获取密钥 获取密钥之前我们要新建一个应用 填写好相关的信息 二. 新建一个项目工程 1. 把下载好的百度sdk中的jar包拷贝到项目的libs目录下 2.在application中添加开发密钥 3.添加所需的权限 <uses-

苹果-手机调用百度地图。。是在手机浏览器在面调用。

问题描述 手机调用百度地图..是在手机浏览器在面调用. 在苹果和安卓手机的浏览器在调用百度地图,实现定位当前位置.可以拉伸,缩放的..有吗..求啊..... 解决方案 手机浏览器和电脑上的浏览器差不多,你需要做的是使用第三方接口通过ip地址得到地址,然后用百度的地址解码器解码地址为经纬度后就行了javascript通过ip获取物理地址接口 地址解码:http://developer.baidu.com/map/index.php?title=jspopular/guide/service#.E5