好长时间没更新我的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 处理缓存的问题