各位大神,帮忙看看我这代码里有什么错误?为什么不显示呢?

huihuiworf 2012-03-01 05:42:20
我想在百度地图的当前视窗画个跟视窗一样大小的矩形,代码如下,请各位大神帮我看看问题出在哪儿了、

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>百度map</title>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>
</head>

<body>
<div id="container" style="width:400px; height:300px;float:left; "></div>
<script type="text/javascript">

function SquareOverlay(bounds, opt_weight, opt_color) {
this._bounds = bounds;
this._weight = opt_weight || 2;
this._color = opt_color || "#FF0000";
}

// 继承API的BMap.Overlay
SquareOverlay.prototype = new BMap.Overlay();

// 实现初始化方法
SquareOverlay.prototype.initialize = function (map) {

// 创建div元素,作为自定义覆盖物的容器
var div = document.createElement("div");
div.style.border = this._weight + "px solid " + this._color;
div.style.position = "absolute";

// 将div添加到覆盖物容器中
map.getPanes().markerPane.appendChild(div);

// 保存div实例
this._map = map;
this._div = div;

// 需要将div元素作为方法的返回值,当调用该覆盖物的show、
// hide方法,或者对覆盖物进行移除时,API都将操作此元素。
//return div;
}

// 从地图面板删除 DIV
SquareOverlay.prototype.remove = function () {
this._div.parentNode.removeChild(this._div);
}

// 将我们的数据复制到新的矩形
SquareOverlay.prototype.copy = function () {
return new Rectangle(this._bounds, this._weight, this._color,
this._backgroundColor, this._opacity);
}

// 实现绘制方法
SquareOverlay.prototype.draw = function () {

// 根据地理坐标转换为像素坐标,并设置给容器
var position1 = this._map.pointToOverlayPixel(this._bounds.getSouthWest());
var position2 = this._map.pointToOverlayPixel(this._bounds.getNorthEast());
this._div.style.width = Math.abs(position2.x - position1.x) + "px";
this._div.style.height = Math.abs(position2.y - position2.y) + "px";
this._div.style.left = (Math.min(position2.x - position1.x) - this._width) + "px";
this._div.style.top = (Math.min(position2.y - position1.y) - this._width) + "px";

}

// 实现显示方法
SquareOverlay.prototype.show = function () {
if (this._div) {
this._div.style.display = "";
}
}

// 实现隐藏方法
SquareOverlay.prototype.hide = function () {
if (this._div) {
this._div.style.display = "none";
}
}

// 添加自定义方法
SquareOverlay.prototype.toggle = function () {
if (this._div) {
if (this._div.style.display == "") {
this.hide();
}
else {
this.show();
}
}
}

// 初始化地图
var map = new BMap.Map("container");
var point = new BMap.Point(116.404, 39.915);
map.centerAndZoom(point, 11);

// 添加自定义覆盖物
var bounds = map.getBounds();
//var mySquare = new SquareOverlay(map.getBounds(), 400, 300, "red");

var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var lngDelta = northEast.lng - southWest.lng;
var latDelta = northEast.lat - southWest.lat;
var rectBounds = new GLatLngBounds(
new GLatLng(southWest.lat + latDelta,
southWest.lng + lngDelta),
new GLatLng(northEast.lat - latDelta,
northEast.lng - lngDelta));

map.addOverlay(new SquareOverlay(rectBounds));

map.enableScrollWheelZoom(); // 开启鼠标滚轮缩放
map.enableKeyboard(); // 开启键盘控制
map.enableContinuousZoom(); // 开启连续缩放效果
map.enableInertialDragging(); // 开启惯性拖拽效果

</script>
</body>
</html>
...全文
150 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
血痕123456 2012-03-02
  • 打赏
  • 举报
回复
代码好长,建议你把css提出来写,这个能够保证你的程序看起来比较舒服,易懂
但是问题还是没有找出来······
三石-gary 2012-03-02
  • 打赏
  • 举报
回复
运行了一下。。报方法undefined
var rectBounds = new GLatLngBounds(
new GLatLng(southWest.lat + latDelta,
southWest.lng + lngDelta),
new GLatLng(northEast.lat - latDelta,
northEast.lng - lngDelta));
lbp307852591 2012-03-01
  • 打赏
  • 举报
回复
。。。不懂
huihuiworf 2012-03-01
  • 打赏
  • 举报
回复
为什么没人来呢。。。 各位大神、、
内容概要:本文介绍了一个基于Python的无人机三维路径规划项目,采用差分进化算法(DE)在复杂三维环境中自动生成安全、高效的飞行路径。项目构建了包含起点、终点和多个长方体障碍物的三维空间模型,通过将路径编码为中间航点向量,利用差分进化进行全局优化。适应度函数综合考量路径长度、碰撞惩罚、安全距离、转弯代价、爬升能耗和高度约束,确保生成的路径在安全性、平滑性和可行性之间取得平衡。优化后还引入路径简化机制,删除冗余航点并检测直连安全性,以减少航点数量并提升可执行性。程序输出包括三维路径图、障碍物可视化、适应度收敛曲线及各项性能指标,支持后续扩展至真实地图、地形模型和动力学仿真。; 适合人群:具备Python编程基础,熟悉NumPy、matplotlib等库,从事无人机、智能优化、路径规划相关研究或开发的科研人员、研究生及工程师(工作年限1-3年或有相关项目经验者); 使用场景及目标:①解决城市、山区、工业区等复杂三维环境下的无人机避障路径规划问题;②学习差分进化算法在连续空间优化中的应用;③为低空物流、应急救援、巡检监测等实际场景提供算法原型与二次开发基础; 阅读建议:建议结合提供的完整代码与可视化结果进行实践,重点关注环境建模、适应度函数设计、差分进化实现与路径后处理逻辑,可通过调整参数(如种群规模、权重系数)观察优化效果变化,深入理解多目标权衡与算法调参策略。
内容概要:本文围绕2026年高教社杯全国大学生数学建模竞赛B题“无线电干扰源的快速自动定位与清除”提供了一套完整的数学建模、算法实现与论文撰写的免费资源。该资源由“荔枝科研社”出品,依托一个涵盖智能优化算法、机器学习、深度学习、信号处理、通信技术、电力系统管理等多个前沿领域的综合性科研资源共享平台。文档以MATLAB和Python为主要工具,聚焦于复杂工程问题的建模与求解,尤其在干扰源定位、状态估计、路径规划及优化调度等方面具有突出的应用价值。资源不仅包含竞赛题目解析,还提供了大量可复现的代码实例与技术文档,旨在帮助用户深入理解算法原理并提升科研实践能力。; 适合人群:具备一定编程基础,特别是熟练掌握MATLAB或Python语言的本科生、研究生,正在备战数学建模竞赛的学生,以及从事通信、信号处理、电力系统等相关领域研究的科研人员和技术开发者。; 使用场景及目标:①为参赛学生提供B题的完整解题思路、模型构建方法与代码实现路径,加速竞赛准备进程;②为科研工作者提供高质量、可复现的算法代码与技术参考,推动智能算法在无线通信、应急响应、环境监测等实际场景中的应用研究;③促进跨学科技术融合,支持教学、科研与工程实践的协同发展。; 阅读建议:建议读者结合文中提供的网盘链接与《荔枝科研社资源整理目录》系统性地查阅资料,优先选择与自身研究方向契合的技术模块进行深入学习,并动手运行代码以验证算法效果。同时推荐关注微信公众号“荔枝科研社”以获取持续更新的技术内容与社群支持。

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧