现在的位置: 首页 > 综合 > 正文

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

2018年02月18日 ⁄ 综合 ⁄ 共 1311字 ⁄ 字号 评论关闭

天地图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数组的最后一个值。

抱歉!评论已关闭.