在开发中使用GMap.Net的心得三

来源:互联网 发布:普通话发音软件 编辑:程序博客网 时间:2024/05/15 09:59

好长时间没更新我的Blog 了,今天抽个空,继续写一下我对GMap.Net控件的使用心得

这次我要用GMap.Net控件来查找定位到某个地点,我这我也是参考伍华聪伍大神的,待会我会把他的链接地址贴过来.不过人家是大神,把控件里面有些接口都改了,如果全照搬

他的,那肯定不行,绝对运行不了,容易把人搞郁闷.幸亏事先我对GMap.Net 的一定的了解,才没有把自己深陷其中.

好了闲话不多说,开始吧 

      /// <summary>        /// 查找定位到某个地方        /// </summary>        private void button1_Click(object sender, EventArgs e)        {            string search = this.textBox1.Text;            this.gMapControl1.Zoom = 8;            try            {                GeoCoderStatusCode code = this.gMapControl1.SetCurrentPositionByKeywords(search);                if (code == GeoCoderStatusCode.G_GEO_SUCCESS)                {                    MessageBox.Show(search + "到了");                    AddLocation(search);//绘制图标                }                else//如果没有定位成功 则返回失败的原因                {                    MessageBox.Show("地址没有找到" + " 原因:" + code.ToString());                }            }            catch (Exception se)            {                MessageBox.Show(se.Message);            }            }        /// <summary>        /// 查到地点之后 再绘制图标        /// </summary>        /// <param name="place">地点</param>        public void AddLocation(string place)        {            GeoCoderStatusCode unknow = GeoCoderStatusCode.Unknow;            PointLatLng? latLngFromGeocoder = Singleton<GMaps>.Instance.GetLatLngFromGeocoder(place, out unknow);            if (latLngFromGeocoder.HasValue && (unknow == GeoCoderStatusCode.G_GEO_SUCCESS))            {                     GMapMarker item = new GMapMarkerGoogleGreen(latLngFromGeocoder.Value);                item.ToolTipText = place;                item.ToolTipMode = MarkerTooltipMode.Always;                this.MyMark.Markers.Add(item);            }           }

GeoCoderStatusCode  我也不大了解到底是干什么用的,只会用,应该是保存一种状态的基类吧

PointLatLng? latLngFromGeocoder = Singleton<GMaps>.Instance.GetLatLngFromGeocoder(place, out unknow);
还有这句话我也不清楚,暂时不清楚也不紧,会用,达到了自己的要求即可.
 对呢 还有一个截图功能 点击截图按钮
private void jietuBtn_Click(object sender, EventArgs e)        {            try            {                using (SaveFileDialog dlg = new SaveFileDialog())                {                    dlg.Filter = "PNG(*.png)|*.png";                    dlg.FileName = "GMap.NET image";                    Image image = this.gMapControl1.ToImage();                    if (image != null)                    {                        using (image)                        {                            if (dlg.ShowDialog() == DialogResult.OK)                            {                                string filename = dlg.FileName;                                if (!filename.EndsWith(".png", StringComparison.OrdinalIgnoreCase))                                {                                    filename += ".png";                                }                                image.Save(filename);                                MessageBox.Show("图片已保存:" + dlg.FileName, "GMap.NET");                            }                        }                    }                }            }            catch (Exception exception)            {                MessageBox.Show("图片保存失败:" + exception.Message, "GMap.NET");            }        }
可以生成png 格式的图片 有一定的用处
伍大神的 链接地址  http://www.cnblogs.com/wuhuacong/archive/2010/03/10/1681790.html

下一次 我会讲一下关于 GMap.Net 处理缓存的问题

	
				
		
原创粉丝点击