为什么在vs2010版本显示正常在vs2012中出错

问题描述

为什么在vs2010版本显示正常在vs2012中出错

未经处理的异常,行 1,列 282,在 http://api.map.baidu.com/library/MarkerClusterer/1.2/src/MarkerClusterer_min.js

0x800a138f - Microsoft JScript 运行时错误: 无法获取属性“lng”的值: 对象为 null 或未定义

解决方案

一个是将vs2012中的jscript验证关掉,当然是在确认你的js code正确的情况下;
另外一个检查你的js code,应该是哪里编写的不标准,漏掉的些细微之处导致的验证检查失败

解决方案二:

代码太乱了,给你格式化一下

 var BMapLib = window.BMapLib = BMapLib || {}; (function() {
    var b = function(m, l, j) {
        l = d(l);
        var n = m.pointToPixel(l.getNorthEast());
        var i = m.pointToPixel(l.getSouthWest());
        n.x += j;
        n.y -= j;
        i.x -= j;
        i.y += j;
        var h = m.pixelToPoint(n);
        var k = m.pixelToPoint(i);
        return new BMap.Bounds(k, h)
    };
    var d = function(i) {
        var k = f(i.getNorthEast().lng, -180, 180);
        var h = f(i.getSouthWest().lng, -180, 180);
        var j = f(i.getNorthEast().lat, -74, 74);
        var l = f(i.getSouthWest().lat, -74, 74);
        return new BMap.Bounds(new BMap.Point(h, l), new BMap.Point(k, j))
    };
    var f = function(j, k, h) {
        k && (j = Math.max(j, k));
        h && (j = Math.min(j, h));
        return j
    };
    var a = function(h) {
        return "[object Array]" === Object.prototype.toString.call(h)
    };
    var c = function(l, n) {
        var j = -1;
        if (a(n)) {
            if (n.indexOf) {
                j = n.indexOf(l)
            } else {
                for (var k = 0,
                h; h = n[k]; k++) {
                    if (h === l) {
                        j = k;
                        break
                    }
                }
            }
        }
        return j
    };
    var e = BMapLib.MarkerClusterer = function(l, h) {
        if (!l) {
            return
        }
        this._map = l;
        this._markers = [];
        this._clusters = [];
        var k = h || {};
        this._gridSize = k.gridSize || 60;
        this._maxZoom = k.maxZoom || 18;
        this._minClusterSize = k.minClusterSize || 2;
        this._isAverageCenter = false;
        if (k.isAverageCenter != undefined) {
            this._isAverageCenter = k.isAverageCenter
        }
        this._styles = k.styles || [];
        var j = this;
        this._map.addEventListener("zoomend",
        function() {
            j._redraw()
        });
        this._map.addEventListener("moveend",
        function() {
            j._redraw()
        });
        var i = k.markers;
        a(i) && this.addMarkers(i)
    };
    e.prototype.addMarkers = function(k) {
        for (var j = 0,
        h = k.length; j < h; j++) {
            this._pushMarkerTo(k[j])
        }
        this._createClusters()
    };
    e.prototype._pushMarkerTo = function(h) {
        var i = c(h, this._markers);
        if (i === -1) {
            h.isInCluster = false;
            this._markers.push(h)
        }
    };
    e.prototype.addMarker = function(h) {
        this._pushMarkerTo(h);
        this._createClusters()
    };
    e.prototype._createClusters = function() {
        var j = this._map.getBounds();
        var l = b(this._map, j, this._gridSize);
        for (var k = 0,
        h; h = this._markers[k]; k++) {
            if (!h.isInCluster && l.containsPoint(h.getPosition())) {
                this._addToClosestCluster(h)
            }
        }
    };
    e.prototype._addToClosestCluster = function(l) {
        var p = 4000000;
        var n = null;
        var k = l.getPosition();
        for (var m = 0,
        j; j = this._clusters[m]; m++) {
            var h = j.getCenter();
            if (h) {
                var o = this._map.getDistance(h, l.getPosition());
                if (o < p) {
                    p = o;
                    n = j
                }
            }
        }
        if (n && n.isMarkerInClusterBounds(l)) {
            n.addMarker(l)
        } else {
            var j = new g(this);
            j.addMarker(l);
            this._clusters.push(j)
        }
    };
    e.prototype._clearLastClusters = function() {
        for (var j = 0,
        h; h = this._clusters[j]; j++) {
            h.remove()
        }
        this._clusters = [];
        this._removeMarkersFromCluster()
    };
    e.prototype._removeMarkersFromCluster = function() {
        for (var j = 0,
        h; h = this._markers[j]; j++) {
            h.isInCluster = false
        }
    };
    e.prototype._removeMarkersFromMap = function() {
        for (var j = 0,
        h; h = this._markers[j]; j++) {
            h.isInCluster = false;
            this._map.removeOverlay(h)
        }
    };
    e.prototype._removeMarker = function(h) {
        var i = c(h, this._markers);
        if (i === -1) {
            return false
        }
        this._map.removeOverlay(h);
        this._markers.splice(i, 1);
        return true
    };
    e.prototype.removeMarker = function(h) {
        var i = this._removeMarker(h);
        if (i) {
            this._clearLastClusters();
            this._createClusters()
        }
        return i
    };
    e.prototype.removeMarkers = function(l) {
        var k = false;
        for (var h = 0; h < l.length; h++) {
            var j = this._removeMarker(l[h]);
            k = k || j
        }
        if (k) {
            this._clearLastClusters();
            this._createClusters()
        }
        return k
    };
    e.prototype.clearMarkers = function() {
        this._clearLastClusters();
        this._removeMarkersFromMap();
        this._markers = []
    };
    e.prototype._redraw = function() {
        this._clearLastClusters();
        this._createClusters()
    };
    e.prototype.getGridSize = function() {
        return this._gridSize
    };
    e.prototype.setGridSize = function(h) {
        this._gridSize = h;
        this._redraw()
    };
    e.prototype.getMaxZoom = function() {
        return this._maxZoom
    };
    e.prototype.setMaxZoom = function(h) {
        this._maxZoom = h;
        this._redraw()
    };
    e.prototype.getStyles = function() {
        return this._styles
    };
    e.prototype.setStyles = function(h) {
        this._styles = h;
        this._redraw()
    };
    e.prototype.getMinClusterSize = function() {
        return this._minClusterSize
    };
    e.prototype.setMinClusterSize = function(h) {
        this._minClusterSize = h;
        this._redraw()
    };
    e.prototype.isAverageCenter = function() {
        return this._isAverageCenter
    };
    e.prototype.getMap = function() {
        return this._map
    };
    e.prototype.getMarkers = function() {
        return this._markers
    };
    e.prototype.getClustersCount = function() {
        var k = 0;
        for (var j = 0,
        h; h = this._clusters[j]; j++) {
            h.isReal() && k++
        }
        return k
    };
    function g(h) {
        this._markerClusterer = h;
        this._map = h.getMap();
        this._minClusterSize = h.getMinClusterSize();
        this._isAverageCenter = h.isAverageCenter();
        this._center = null;
        this._markers = [];
        this._gridBounds = null;
        this._isReal = false;
        this._clusterMarker = new BMapLib.TextIconOverlay(this._center, this._markers.length, {
            styles: this._markerClusterer.getStyles()
        })
    }
    g.prototype.addMarker = function(k) {
        if (this.isMarkerInCluster(k)) {
            return false
        }
        if (!this._center) {
            this._center = k.getPosition();
            this.updateGridBounds()
        } else {
            if (this._isAverageCenter) {
                var j = this._markers.length + 1;
                var o = (this._center.lat * (j - 1) + k.getPosition().lat) / j;
                var m = (this._center.lng * (j - 1) + k.getPosition().lng) / j;
                this._center = new BMap.Point(m, o);
                this.updateGridBounds()
            }
        }
        k.isInCluster = true;
        this._markers.push(k);
        var h = this._markers.length;
        if (h < this._minClusterSize) {
            this._map.addOverlay(k);
            return true
        } else {
            if (h === this._minClusterSize) {
                for (var n = 0; n < h; n++) {
                    this._markers[n].getMap() && this._map.removeOverlay(this._markers[n])
                }
            }
        }
        this._map.addOverlay(this._clusterMarker);
        this._isReal = true;
        this.updateClusterMarker();
        return true
    };
    g.prototype.isMarkerInCluster = function(j) {
        if (this._markers.indexOf) {
            return this._markers.indexOf(j) != -1
        } else {
            for (var k = 0,
            h; h = this._markers[k]; k++) {
                if (h === j) {
                    return true
                }
            }
        }
        return false
    };
    g.prototype.isMarkerInClusterBounds = function(h) {
        return this._gridBounds.containsPoint(h.getPosition())
    };
    g.prototype.isReal = function(h) {
        return this._isReal
    };
    g.prototype.updateGridBounds = function() {
        var h = new BMap.Bounds(this._center, this._center);
        this._gridBounds = b(this._map, h, this._markerClusterer.getGridSize())
    };
    g.prototype.updateClusterMarker = function() {
        if (this._map.getZoom() > this._markerClusterer.getMaxZoom()) {
            this._clusterMarker && this._map.removeOverlay(this._clusterMarker);
            for (var l = 0,
            j; j = this._markers[l]; l++) {
                this._map.addOverlay(j)
            }
            return
        }
        if (this._markers.length < this._minClusterSize) {
            this._clusterMarker.hide();
            return
        }
        this._clusterMarker.setPosition(this._center);
        this._clusterMarker.setText(this._markers.length);
        var k = this._map;
        var h = this.getBounds();
        this._clusterMarker.addEventListener("click",
        function(i) {
            k.setViewport(h)
        })
    };
    g.prototype.remove = function() {
        for (var j = 0,
        h; h = this._markers[j]; j++) {
            this._markers[j].getMap() && this._map.removeOverlay(this._markers[j])
        }
        this._map.removeOverlay(this._clusterMarker);
        this._markers.length = 0;
        delete this._markers
    };
    g.prototype.getBounds = function() {
        var k = new BMap.Bounds(this._center, this._center);
        for (var j = 0,
        h; h = this._markers[j]; j++) {
            k.extend(h.getPosition())
        }
        return k
    };
    g.prototype.getCenter = function() {
        return this._center
    }
})();
时间: 2024-05-21 20:28:29

为什么在vs2010版本显示正常在vs2012中出错的相关文章

解决Win7下安装VS2010不显示序列号框的两种方法

VS2010在Windows 7下安装,一些朋友发现怎么在安装的时候输入序列号框怎么不出现呢?这该如何解决?下面西部e网的icech就找到了两种解决方法帮您解决这个问题: 1.修改setup.sdb文件的方法 这是一个老办法了,setup.sdb文件是从ISO文件中提取出来的setup文件进行编辑,只需要修改里面的[Product Key]项,在安装的时候就不用输入序列号了. 这里icech提供的是: [Product Key] YCFHQ9DWCYDKV88T2TMHG7BHP 也可以根据你的

操作-Unity不能用VS2010版本的调试吗?

问题描述 Unity不能用VS2010版本的调试吗? 才下了个Unity VS1.81版本,可是我根据网上的步骤来操作时在我的VS里面没找到(****Microsoft Visual Studio12.0Common7IDEExtensionsSyntaxTreeUnityVS) 这个文件,难道是Unity不能用VS2010版本的调试吗? 解决方案 应该需要VS2013最新版吧 解决方案二: 哦哦 谢谢了 那我重新安装过VS 解决方案三: 可以,最好下一个插件visual studio 2010

nvoke sync-WPF中怎么把一些VS2012中的一些代码在VS2010中写

问题描述 WPF中怎么把一些VS2012中的一些代码在VS2010中写 请问:Task.Run(()=>ReceiveFromClient());在VS2010中应该怎么写? 改成 Task task=new Task(ReceiveFromClient): Task.Start(); 对吗? 2.请问:Private void AddInfo(string format,params object [] args) { textBlock1.Dispatcher.InvokeAsync(()=

让网页根据不同IE版本显示不同的内容_javascript技巧

这篇blog 主要讲如何让静态HTML代码根据不同IE版本显示不同内容. 这里的技巧就是利用IE的HTML注释表达式. HTML 的注释格式是 <!-- Comment content --> , IE 对HTML注释做了一些扩展,使之可以支持条件判断表达式: <!--[if expression]> HTML <![endif]--> 当表达式expression 为True 的时候,显示 HTML 内容. 例子: 复制代码 代码如下: <!--[if IE 5

vs2012-MFC VS2012 中工具栏中的所有控件消失

问题描述 MFC VS2012 中工具栏中的所有控件消失 我右击VS2012工具箱,选择"添加项",然后vs2012就不知道运行了什么,然后我关掉那个窗口后,工具箱中的所有控件都消失了? 我同一台电脑上的vs2010 中工具箱 的控件竟然也都消失了. 我看有网友说是因为控件的 frame work 版本 比 我所建立的窗口的frame work版本高 还有网友说要取消 "以兼容模式运行" 解决方案 VS2012 中MFC的控件找不到了? 解决方案二: 程序正在运行时

vs2012中for循环循环条件作用域

问题描述 vs2012中for循环循环条件作用域 for(int i = 0; i < 4; i++);int i = 2;printf(""%d""i);//这里输出是4int *pi = &i; *pi = 1;printf(""%d""i);//这里输出也是4//这里的i值无法修改.... 没有悬赏分 就是分享给大家 虽然我也不知道是为什么,但是遇到这个问题了,调试了很久 解决方案 C++的for循环作用域

在VS2012中使用GDAL时,出现一百多个“无法解析的外部符号”错误

问题描述 在VS2012中使用GDAL时,出现一百多个"无法解析的外部符号"错误 在VS2012中使用GDAL时,出现一百多个"无法解析的外部符号"错误( error LNK2019: 无法解析的外部符号),是因为我的GDAL没有配置好吗?还是怎么回事,请大神请教,库文件包含文件附加依赖项都按照网上教程配置过了,还是出现这个错误... 解决方案 你编译的GDAL 是多少位的,你建立的工程是多少位的,lib和dll放在debug下了么? 解决方案二: LNK2019都

代码-VS2012中录制视频问题

问题描述 VS2012中录制视频问题 本人新手,用VS2012实现一个简单的录制视频声音的功能,在网上找了很多,大多数都是VS2010的,找到了一个源代码是用AForge来实现的(在VS2010环境中运行正常),我加到VS2012环境后,里面有个AForge.video.FFMPEG.dll的文件总是报"未能加载文件或程序集"AForge.Video.FFMPEG.dll"或它的某一个依赖项"的错误,网上的很多方法都试过了,在APP.config文件添加代码.改变项

VS2012中的全部预定义键盘快捷键列表

原文 http://www.elanblog.com/2013/05/14/vs2012-key-list/#sectionToggle7 Visual Studio 集成开发环境 (IDE) 包括若干预定义的键盘快捷键方案. 当您首次启动 Visual Studio 并选择设置时,将会自动设置关联的方案. 之后,通过使用"选项"对话框中的键盘选项页,您可以从其他方案中进行选择,也可以创建您自己的键盘快捷键. 本主题显示与 .NET Framework 开发和 Web 开发相关的键盘快