在Ext框架中嵌入百度地图在地图中加入自定义图层后访问图层上的标示浏览器报错
错误是:
ReferenceError: map is not defined
TypeError: ud is null
在排除了百度地和ExtJs框架冲突以后
最后发现是错误原因是
map这个变量是存在域是在自己定义的函数中,导致百度的函数库找不到变量
错误代码是
var namespace = 'log';
var action = 'operate-log';
MapModel = function() {
return {
show : function() {
//map定义在这里百度函数库中自定义图层函数会访问不到该变量。
var map = new BMap.Map("container"); // 创建地图实例
map.centerAndZoom("贵阳", 15); // 初始化地图,设置中心点坐标和地图级别
map.enableScrollWheelZoom();
map.addControl(new BMap.NavigationControl()); // 添加默认缩放平移控件
var customLayer;
function addCustomLayer(keyword) {
if (customLayer) {
map.removeTileLayer(customLayer);
}
customLayer = new BMap.CustomLayer(15853);
map.addTileLayer(customLayer);
customLayer.addEventListener('hotspotclick', callback);
}
addCustomLayer();
function callback(e)// 单击热点图层
{
var customPoi = e.customPoi, str = [];
str.push("address = " + customPoi.address);
str.push("phoneNumber = " + customPoi.phoneNumber);
var content = '<p style="width:280px;margin:0;line-height:20px;">地址:'
+ customPoi.address
+ '<br/>电话:'
+ customPoi.phoneNumber + '</p>';
var searchInfoWindow = new BMapLib.SearchInfoWindow(map,
content, {
title : customPoi.title, // 标题
width : 290, // 宽度
height : 40, // 高度
panel : "panel", // 检索结果面板
enableAutoPan : true, // 自动平移
enableSendToPhone : true, // 是否显示发送到手机按钮
searchTypes : [BMAPLIB_TAB_SEARCH, // 周边检索
BMAPLIB_TAB_TO_HERE, // 到这里去
BMAPLIB_TAB_FROM_HERE // 从这里出发
]
});
var point = new BMap.Point(customPoi.point.lng,
customPoi.point.lat);
searchInfoWindow.open(point);
}
}
}
}();
Ext.onReady(function() {
MapModel.show();
});
修改代码将map变量定义到window下程序正常运行
var namespace = 'log';
var action = 'operate-log';
var map;//这个位子定义map
MapModel = function() {
return {
show : function() {
//map定义在这里百度函数库中自定义图层函数会访问不到该变量。
map = new BMap.Map("container"); // 创建地图实例
map.centerAndZoom("贵阳", 15); // 初始化地图,设置中心点坐标和地图级别
map.enableScrollWheelZoom();
map.addControl(new BMap.NavigationControl()); // 添加默认缩放平移控件
var customLayer;
function addCustomLayer(keyword) {
if (customLayer) {
map.removeTileLayer(customLayer);
}
customLayer = new BMap.CustomLayer(15853);
map.addTileLayer(customLayer);
customLayer.addEventListener('hotspotclick', callback);
}
addCustomLayer();
function callback(e)// 单击热点图层
{
var customPoi = e.customPoi, str = [];
str.push("address = " + customPoi.address);
str.push("phoneNumber = " + customPoi.phoneNumber);
var content = '<p style="width:280px;margin:0;line-height:20px;">地址:'
+ customPoi.address
+ '<br/>电话:'
+ customPoi.phoneNumber + '</p>';
var searchInfoWindow = new BMapLib.SearchInfoWindow(map,
content, {
title : customPoi.title, // 标题
width : 290, // 宽度
height : 40, // 高度
panel : "panel", // 检索结果面板
enableAutoPan : true, // 自动平移
enableSendToPhone : true, // 是否显示发送到手机按钮
searchTypes : [BMAPLIB_TAB_SEARCH, // 周边检索
BMAPLIB_TAB_TO_HERE, // 到这里去
BMAPLIB_TAB_FROM_HERE // 从这里出发
]
});
var point = new BMap.Point(customPoi.point.lng,
customPoi.point.lat);
searchInfoWindow.open(point);
}
}
}
}();
Ext.onReady(function() {
MapModel.show();
});
分享到:
相关推荐
在Python编程过程中,可能会遇到一个常见的错误提示"TypeError: 'list' object is not callable"。这个错误通常是由于程序员不小心将内置的数据结构名称如`list`、`tuple`等作为变量名,导致后续尝试调用这些内置...
TypeError: notify.sendNotifybyWxPucher is not a function!
TypeError: ‘required’ is an invalid argument for positionals 的解决方法 当我在使用argparse模块时,遇到了如下错误: import argparse parser = argparse.ArgumentParser(description = 'debug_example') ...
在使用Qt 5.8版本时,可能会遇到一个常见的错误,即`TypeError: Property 'asciify' of object Core`。这个错误通常发生在尝试访问或使用`Core`对象的`asciify`属性时,而该属性在当前环境中并未定义或者不支持。这...
1. jQuery插件报错问题:在使用jQuery插件时可能会遇到"TypeError: $.browser is undefined"的报错,这主要是因为从jQuery 1.9版本开始,jQuery移除了$.browser和$.browser.version这两个用于获取浏览器基本信息的...
TypeError: cannot concatenate ‘str’ and ‘int’ objects print str + int 的时候就会这样了 python + 作为连接符的时候,不会自动给你把int转换成str 补充知识:TypeError: cannot concatenate ‘str’ and ...
然而,在使用jQuery过程中,开发者有时会遇到JavaScript控制台抛出“Uncaught TypeError: Illegal invocation”错误。这个错误通常不是由jQuery自身引起的,而是与JavaScript作用域及上下文有关。 当我们进行Ajax...
主要介绍了Django 错误:TypeError at / 'bool' object is not callable解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
### 解决Python中报错TypeError: must be str, not bytes问题 #### 一、问题背景与常见场景 在Python编程过程中,尤其是处理文件操作时,可能会遇到“TypeError: must be str, not bytes”这一错误。这通常发生在...
然而,当你遇到`TypeError: this.$set is not a function`的错误时,通常是因为`this`上下文没有正确指向Vue实例。下面我们将深入探讨这个问题及其解决方案。 ### 报错场景 在开发过程中,你可能在尝试将API获取的...
在调整loss计算的时候遇到了TypeError: only integer tensors of a single element can be converted to an index这个问题,原来的计算公式为: self.loss_D = (self.loss_D_fake + self.loss_D_real) * 0.5 调整后...
今天把最近一直在开发的小程序放安卓手机上测试一下,结果某个页面就一直报错: Uncaught TypeError: Converting circular structure to JSON 先说一下基本的环境: 系统:Android 6.0.1 手机:小米4 微信版本:...
TypeError: Unexpected keyword argument passed to optimizer: learning_rate 3.问题定位: 先看报错代码:大概意思是, 传给优化器的learning_rate参数错误。 模型训练是在服务器Linux环境下进行的,之后在...
title: 'Vue.js路由报错:TypeError: Cannot read property ''_c'' of undefined'错误详情:像上面这