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

在天地图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] + "
" + lnglatArr[j * 6 + 1] + "
" + lnglatArr[j * 6 + 2] + "
" + lnglatArr[j * 6 + 3] + "
" + lnglatArr[j * 6 + 4] + "
" + 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 + "
" + 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数组的最后一个值。

你可能感兴趣的:(Web前端,天地图API,地图,js)