帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
16
帖子
0
勋章
244
Y币

[插件使用] ios平台下bmap中标注点击出现气泡问题:点击标注,不出现...

[复制链接]
发表于 2016-4-1 10:11:44
ios平台下bmap中标注点击出现气泡问题:点击标注,不出现气泡? 每次都要执行两次addAnnotations() 方法才会显示气泡! 安卓下没有问题。


0
帖子
0
勋章
2139
Y币
能发下能安装的二维码吗
16
帖子
0
勋章
244
Y币
ios的 你们安装不了
16
帖子
0
勋章
244
Y币
caizhu 发表于 2016-4-1 10:22
能发下能安装的二维码吗

ios的你们安装不了
16
帖子
0
勋章
244
Y币
Samho 发表于 2016-4-1 10:26
ios的你们安装不了

官方下的列子也是一样的啊
你的代码逻辑设计有问题

1,addannotations接口本身支持一次添加多个标注,不必把这个接口放在for循环里调用
2,addannotations接口的回调事件是在用户点击标注时候或拖动标注时候触发的。当用户点击标注模块会判断该标注是否已经设置了气泡信息,若已经设置了,则弹出气泡并回调点击事件,若没设置则只回调该事件不弹出气泡。而你的代码里setbubble接口是放在addannotations接口的回调里的。所以第一次点击的时候你还没有设置该标注的气泡,当然就不会弹出气泡了,只有再次点击的时候才会弹出气泡。这个逻辑你好好体会琢磨下
3,setbubble接口的回调函数是在用户点击气泡上的配图或内容时才触发,既然是点击气泡上的内容或配图,那么此时气泡肯定是弹出状态,不然用户也点不到,这个时候只能点标注。你的代码里把popbubble放在了setbubble的回调里,很明显不合理。
16
帖子
0
勋章
244
Y币
function searchInCity(city){
        api.showProgress({
            style: 'default',
            animationType: 'fade',
            title: '搜索中...',
            text: '请稍候...',
            modal: false
        });
        function callBack(ret,err){
                if(ret){
                        addAnnotations(ret.results);
                        setBubbles(ret.results);
                }
        }
        var params = {
                values: {
                        page : page,
                        pageSize : pageSize
                }
        }
        var url = '/mobile/map/group';
        ajaxRequest(url, 'get', params, callBack);
}

//添加地图标注
function addAnnotations(results){
        for(var i in results){
                map.addAnnotations({
                    annotations: [{
                        id: results[i].uid,
                        lon: results[i].lon,
                        lat: results[i].lat
                    }],
                    icon: 'widget://image/mark.png',
                    draggable: true
                }, function(ret){
                    if(ret){
                            map.popupBubble({
                                    id: ret.id
                                });
                    }
                });
    }
    if(isFirst){
            map.setCenter({
                    coords: {
                        lon: results[0].lon,
                        lat: results[0].lat
                    },
                    animation:false
                });
                isFirst = false;
        }
}

//添加地图气泡
function setBubbles(results){
        for(var i in results){
            //设置点击标注时弹出的气泡信息
            map.setBubble({
                    id: results[i].uid,
                    bgImg: 'widget://image/mapbg.png',
                    content: {
                        title: results[i].name,
                        subTitle: results[i].address
                    },
                    styles: {
                        titleColor: '#009900',
                        titleSize: 14,
                        subTitleColor: '#999',
                        subTitleSize: 12,
                        illusAlign: 'left'
                    }
                }, function(ret){
                    if(ret){
                                var params = {
                                        openType: 0,
                                        groupId: results[i].uid,
                                        latlng: results[i].lat+','+results[i].lon,
                                        name: results[i].name
                                };
                        if(results[i].groupType == 'other'){
                                       openWindow('company', 'widget://html/first_frame/company/company_header.html',params)
                        }else if(results[i].groupType == 'association'){
                                        openWindow('association', 'widget://html/first_frame/association/association_header.html',params);
                                }
                    }
                });
        }
}
16
帖子
0
勋章
244
Y币
模块咨询-Turbo 发表于 2016-4-1 12:11
你的代码逻辑设计有问题

1,addannotations接口本身支持一次添加多个标注,不必把这个接口放在for循环里调 ...

谢谢指点,已经修复完成!
就是第一点的addannotations的数据问题一次添加多个标注,它的属性是不支持title 和 subTitle的等其他扩展字段的,所以我才把从服务器取的数据 便利添加,您看看以下代码!
66
帖子
0
勋章
283
Y币
模块咨询-Turbo 发表于 2016-4-1 12:11
你的代码逻辑设计有问题

1,addannotations接口本身支持一次添加多个标注,不必把这个接口放在for循环里调 ...

点击才出来信息,可以默认就展示信息吗(不需要点击)?
1
帖子
0
勋章
12
Y币
everwjj 发表于 2016-7-20 15:09
点击才出来信息,可以默认就展示信息吗(不需要点击)?

你找到方法了没 是否有点击默认显示的方法 我也再找这个方法  实现了能否告诉我一下 谢谢!
12下一页
您需要登录后才可以回帖 登录

本版积分规则