国家天地图API 循环添加点 参数传递问题

来源:互联网 发布:c语言快速入门教程 编辑:程序博客网 时间:2024/05/21 08:01

在天地图API中,进行循环添加点,添加Infowindow这个对大家都很容易,只是在传递Infowindow的参数时会存在一些问题。

    var lnglatArr = data.split(',');                            //设置显示地图的中心点和级别                             if (lnglatArr.length % 6 == 0 && lnglatArr.length != 0) {                                for (var j = 0; j < lnglatArr.length / 6; j++) {                                    map.centerAndZoom(new TLngLat(lnglatArr[4], lnglatArr[5]), zoom);                                    var icon = new TIcon("/Content/mapImgs/TIcon.png", new TSize(10, 13), { anchor: new TPixel(9, 27) });                                    var marker = new TMarker(new TLngLat(lnglatArr[j * 6 + 4], lnglatArr[j * 6 + 5]), { icon: icon });                                    arr1.push(marker);                                    map.addOverLay(marker);                                    var infoWin;                                    //添加信息窗口                                    var lnglat = new TLngLat(lnglatArr[j * 6 + 4], lnglatArr[j * 6 + 5]);                                    marker.txt = lnglatArr[j * 6] + "<br/>" + lnglatArr[j * 6 + 1] + "<br/>" + lnglatArr[j * 6 + 2] + "<br/>" + lnglatArr[j * 6 + 3] + "<br/>" +                                        lnglatArr[j * 6 + 4] + "<br/>" + lnglatArr[j * 6 + 5];                                    TEvent.addListener(marker, "mouseover", function () {                                        this.icon.setImageUrl("/Content/mapImgs/TIcon2.png", new TSize(10, 13), { anchor: new TPixel(9, 27) });                                        var lnglat2 = this.getLngLat();                                        infoWin = new TInfoWindow(lnglat2, new TPixel([0, 0]));                                        infoWin.setOffset(new TPixel(-3, -25));                                        infoWin.setLabel(this.txt + "<br/>" + lnglat2.getLng() + "," + lnglat2.getLat());                                        map.addOverLay(infoWin);                                    });                                    TEvent.addListener(marker, "mouseout", function () {                                        this.icon.setImageUrl("/Content/mapImgs/TIcon.png", new TSize(10, 13), { anchor: new TPixel(9, 27) });                                        infoWin.closeInfoWindow();                                    });                                }                            }


 


红色的位置是设置Infowindow显示的位置,只能写在事件监听外面,紫色的位置必须现获取这里的显示位置的经纬度才可以,不然每次传回来,只会传入lnglatArr数组的最后一个值。

0 0
原创粉丝点击