课程设计考察百度地图api的使用,中间碰见问题,特此记录。
1. 在将内嵌的js文件独立出来的时候碰见这个问题:Uncaught TypeError: Cannot read property 'dc' of undefined
问题表面原因: 在于js文件中创建map对象传进去的参数和之前的div中的id号不一致。 Paste_Image.png
问题根本原因:map的构造方法中传入的参数就是我们的容器的id
更多详细资料自行查看 百度地图js api类图参考
2. 百度地图右键获得点的坐标(api中事件参数的使用)
这个问题起源于我想邮件添加起始点和终止点。想通过鼠标点击事件获得对应点的坐标,然后再api中是这样写的。但是不知道怎么用。
经过资料查找发现是这样用的
/*右键监听事件,获得点击坐标*/
map.addEventListener("rightclick",function(e){
point=new BMap.Point(e.point.lng,e.point.lat);
// alert("click"+e.Point.lat+"click"+e.Point.lng);
})
应该是通过回调函数来获得对应的参数e。然后通过e来获得对应的事件参数。注意这个地方是e.point,e.target 都是小写。代表它拥有的对象参数,然后lng和lat是point的成员参数。
所以通过这种方式就得到了对应的点的坐标。
3.js参数未定义问题
这个问题源于有时候界面刷新不出来,然后通过控制台进行查看的时候,发现是在js文件报错,其中有参数未定义问题。总结一下可能出现的问题。
1. js文件的引用顺序
如果后面的js文件中的处理用到了之前的js文件中的数据,要注意先来后到问题。
比如说我们现在的百度地图的api。在所有的js文件的导入顺序中我们最先应该导入的就是下面图片中的这部分东西,即使是放到后面body结束标签之前也应该是这样的顺序。
2. 注意命名规范和命名的准确性
很多问题的出现就是前后命名不同,但是我们本意是要求相同的,粗心大意的问题。
3.网速的锅。
有时候导入的外部的js文件(尤其是网络上的js文件)太大。所以在请求然后加载的过程中耗费的时间会非常长,然后就会导致我们的页面刷新不出来,但是这个时候就再次刷新,慢慢的刷新。具体问题我也没有解决掉,但是可以考虑的途径有js文件后置和js文件异步加载。
4.说一点感受。
- 一份好的api文件真的是开发利器,同时一定要注意官方给的示例,非常方便开发。
- 一定要有信心,凡事总会有办法解决的,一定要善于利用网络资料。
- 作为一个写博客的程序员,一定要有精益求精,宁缺毋滥的特性,现在搜到的这种乱七八糟的资料太多了,然后打开之后发现是同一个解答,甚至有的连人间的解答都没有全部复制过来,弄了一半就来了。真实让人恶心啊。
- 代码的世界依旧那么神奇。
未完待续。。。
我是李庆文,希望我们能做一个有趣的人。
网友评论