你好,建议一下两种方式: 1. (推荐)使用UTFGrid,参考博客:高亮地图点及属性信息展示优化方案 2. 将相关点线面全部查询回来放到Vector图层上,注册点击事件。
获取不到数据提示 代码中该设置都设置了
能不能帮我看看 ,一天没有解决掉这个问题。
一下两种方法二选一,关键就是在于utfgridSchool.maxExtent属性。 1. utfgridSchool.maxExtent = new SuperMap.Bounds(-180,-90,180,90); // 对应地图范围,左下右上 2. 先map.addLayer(layer); 之后再 utfgridSchool.maxExtent = layer.maxExtent; 因为layer是异步加载的,你的写法执行到赋值那句时layer.maxExtent还是null或者undefined。 另外,直接在iServer地图服务那儿,浏览于 for JavaScript,比如: http://support.supermap.com.cn:8090/iserver/services/map-china400/rest/maps/China_4326.ijs 右上角选择图层,鼠标移动会显示属性,用的就是UTFGrid
现在数据显示出来了,但是utfgrid哪个效果没有显示出来,即如图
我用了例子代码,研究了下,现在鼠标也找到标记标点,但是没有执行map.addPopup(infowin);所以没有弹出窗口,知道原因吗。
老大,这个弹出框怎么没有显出出来
if (info1 && info1.data) { var dom1 = "<div class='pop' >" + "<div class='pop_header'><div class='pop_close' onclick='closeInfoWin1()'></div></div>" + "<img src='image/park.png' style='height: auto;width: auto;max-width: 100%;opacity: 1'>" + "<div class='pop_content'><p><span>地点:</span><span>" + info1.data.OBJNAME + "</span></p><p><span>坐标:</span><span>x:" + info1.data.SmX + " y:" + info1.data.SmY + "</span></p></div>" + "<div class='pop_arrow'></div>" + "</div>"; alert(dom1); var xOff1 = -(1 / map.getScale()) * 0.018; var yOff1 = (1 / map.getScale()) * 0.035; var pos1 = new SuperMap.LonLat(new Number(info1.data.SmX) + xOff1, new Number(info1.data.SmY) + yOff1); infowin1 = new SuperMap.Popup("chicken", pos1, new SuperMap.Size(20, 20), dom1, false, null); //根据弹窗内容自动调整弹窗大小 infowin1.autoSize = true; //设置默认样式不显示 infowin1.backgroundColor = "none"; //移动地图以确保弹窗显示在窗口内 infowin1.panMapIfOutOfView = true; map.addPopup(infowin1); popfeature = new SuperMap.Feature.Vector(new SuperMap.Geometry.Point(info1.data.SmX, info1.data.SmY), null, { externalGraphic: "image/radar.gif", graphicWidth: 64, graphicHeight: 64 } ); vectorLayer.addFeatures([popfeature]); }