百度地图搜索、标注地图示例

由于要做一个搜索标注地图的功能,选择了百度地图的一个示例:


    
        
        采集坐标 
        
       
   
   
   
   
这个示例在百度的网站上,运行是正常的。但是弄到自己的环境中就出了点问题:每次打开后坐标没有显示,而且搜索完毕后也没有坐标显示。
百度地图上都可以正常显示,检查了一下代码,和百度的例子一样,没有什么出入!这点有点让人费解。经过一番思考,认为百度示例给的代码
是一个残缺的例子。于是自己尝试了修改:
   在标注回调函数setMarkersSetCallback中监听事件addEventListener外面添加两行代码
          var pos = marker.getPosition();
                setResult(pos.lng, pos.lat);
最后发现问题解决了。另外,center和city都可以修改。但要注意的是,center如果没有在百度上有过记录,初始化的时候会显示没有结果。因此初始化时
需要设置一个在百度有记录的地点。如一些标志性地点,大学等。。。
    当该实例存在于一个ajax页面中时, window.onload = function(){}句不会加载,需要修改成 $(function(){}样式。
   当该实例存在于一个form表单时,回车键会直接提交表单,而不是查询,因此需要删除以下句子:
 document.getElementById("keyword").onkeyup = function(e){
            var me = this;
            e = e || window.event;
            var keycode = e.keyCode;
            if(keycode === 13){
                local.search(document.getElementById("keyword").value);
            }
        };
当按钮为时,点击直接提交表单。。。
需要修改为:  点击,查询正常。。。。
如果是要读取上一次记录的地点,使用
local.search(center);
会显得有些不足,因为有的地点初始化读取时,搜索不到,改成坐标比较合适,如下:
map.centerAndZoom(new BMap.Point(130.158514, 130.291279), 18);
                map.setCurrentCity("杭州");
                document.getElementById("address").value = "财贸大学";
                 marker = new BMap.Marker(new BMap.Point(130.158503, 130.29129), {
                    enableMassClear: false,
                    raiseOnDrag: true
                 });
                setResult(130.158514, 130.291279);

百度地图搜索、标注地图示例_第1张图片

你可能感兴趣的:(为了忘却)