日期:2014-05-17  浏览次数:20457 次

百度地图api 同时在地图上标注多个点 有问题 紧急求救
我点击一个按钮“长沙市” 进去 希望在地图上显示出长沙市的一些符合规则的企业,当然是有很多个的,每个企业一个标注(就是一个红点),点击标注 弹出一个框 显示企业的详细信息。。 问题来了。。标注可以循环添加多个 但是 那个弹出框却永远都是一个 也就是说 不管点击哪个标注 弹出的都是一个弹出框 显示的内容都是一样的。。。 纳闷啊。。代码如下:

Java code

function searchByArea(cps, cpa, cpn, areaMapAddress) {
    var companys = cps;
    var companysaddress = cpa;
    var companyname = cpn;

    var map = new BMap.Map("milkMap");          // 创建地图实例
    var point = new BMap.Point(areaMapAddress.split(",")[0].toString(), areaMapAddress.split(",")[1].toString());  // 创建点坐标
    map.centerAndZoom(point, 13);                 // 初始化地图,设置中心点坐标和地图级别
    //map.addControl(new BMap.OverviewMapControl({ isOpen: 1, anchor: BMAP_ANCHOR_TOP_RIGHT }));      //为地图添加鹰眼
    map.addControl(new BMap.NavigationControl(opts));      //为地图添加鱼骨

    //给地图添加自定义的控件;
    ZoomControl.prototype.initialize = initSearch(map);
    var myZoomCtrl = new ZoomControl();
    map.addControl(myZoomCtrl);


    map.enableScrollWheelZoom(); //启动鼠标滚轮缩放地图
    map.enableKeyboard(); //启动键盘操作地图

    if (companys != "") {
        var c = companys.split("|");
        var caddress = companysaddress.split("|");
        var cname = companyname.split("|");

        if (c.length > 0) {
            for (var i = 0; i < c.length; i++) {
                var cc = c[i].split(",");
                //------------开始标注一个地点----------
                var pointMarker = new BMap.Point(cc[0], cc[1]);  // 创建标注的坐标
                var marker = new BMap.Marker(pointMarker);        // 创建标注
                map.addOverlay(marker);                     // 将标注添加到地图中

               [color=#FF0000] var infowindow = new BMap.InfoWindow(cname[i].toString() +
                                "<br /> <span style='font-size:10px;'>公司地址:" + caddress[i].toString() + 
                                "</span><br /><img src='../../images/telephone.ico' /><a href='#' style='line-height:3em;color:#005EAC;font-size:10px;text-decoration:none;'>88888888>></a>");  // 创建信息窗口对象

                marker.addEventListener("click", function () {        //给标注添加点击事件
                    this.openInfoWindow(infowindow);
                });[/color]
                var label = new BMap.Label(cname[i].toString(), { point: pointMarker, offset: new BMap.Size(3, -6) });       //定义一个文字标签
                map.addOverlay(label);
            }
        }
    }
}




红色部分是创建弹出框的。。。。 求熟悉百度api的指教啊。。。

------解决方案--------------------
google map api 飘过
------解决方案--------------------
是不是百度地图只能标注一个啊?
------解决方案--------------------

没做过过标注多个 
不过应该可以标注多个,不过我没成功过
------解决方案--------------------
没做过 Silverlight实现容易些。
------解决方案--------------------
我也正准备要做个通过地图的监控系统
学习了