private void addmyMark(string name, double x, double y) { //初始化标注图层,并将其作为子元素添加到地图容器 if (this.markLayer1 == null) { this.markLayer1 = new MarkLayer(); this.iMSMap1.AddChild(this.markLayer1); } //创建并实例化标注控件,对其属性进行设置 Image img = new Image(); BitmapImage b = new BitmapImage(new Uri("/images/walk.png", UriKind.RelativeOrAbsolute)); img.Source = b; img.Width = 25; img.Height = 30; IMSmyMark mark = new IMSmyMark(img); mark.CoordinateType = CoordinateType.Logic; mark.markName = name; mark.X = x; mark.Y = y; mark.EnableRevisedPos = true; mark.MarkClickCallback += new MarkClickDelegate(onClick); //标注点击事件回调 mark.MarkControl.MouseLeave += new MouseEventHandler(img_MouseLeave); //标注鼠标移出事件监听 markLayer1.AddMark(mark); //将标注添加到标注图层中 }
private void onClick(IMSmyMark mark) { if (markInfo == null) { //如果markInfo为空,则实例化markInfo控件,并设置其相关属性 markInfo = new MarkInfo(); markInfo.placename.Text = mark.markName; markInfo.xInfo.Text = mark.X.ToString(); markInfo.yInfo.Text = mark.Y.ToString(); markInfo.mapContainer = iMSMap1; if (markLayer1.EnablePolymericMark) { markInfo.logicX = this.iMSMap1.MouseDownLogicPnt.X; markInfo.logicY = this.iMSMap1.MouseDownLogicPnt.Y; } else { markInfo.logicX = mark.X; markInfo.logicY = mark.Y; } markInfo.updateposition(); markInfo.Show(); } else {//如果markInfo不为空,直接赋值 markInfo.placename.Text = mark.markName; markInfo.xInfo.Text = mark.X.ToString(); markInfo.yInfo.Text = mark.Y.ToString(); markInfo.mapContainer = iMSMap1; if (markLayer1.EnablePolymericMark) { markInfo.logicX = this.iMSMap1.MouseDownLogicPnt.X; markInfo.logicY = this.iMSMap1.MouseDownLogicPnt.Y; } else { markInfo.logicX = mark.X; markInfo.logicY = mark.Y; } markInfo.updateposition(); markInfo.Show(); } }