天天看点

GMap.Net开发之地址解析与路径查找

先看地址解析,gmap中的地址解析主要用到geocodingprovider中的如下方法:

GMap.Net开发之地址解析与路径查找
GMap.Net开发之地址解析与路径查找

先定义一些变量:

GMap.Net开发之地址解析与路径查找
GMap.Net开发之地址解析与路径查找

地址解析的准确度和当前使用的地图服务有很大关系,一般使用什么mapprovider就使用该mapprovider提供的服务。

如我使用的是googlechinamap,就使用google的地址解析:

GMap.Net开发之地址解析与路径查找
GMap.Net开发之地址解析与路径查找

地址解析一般有2种情况,第一种就是根据坐标点得到该点对应的地址信息,在map的double click中,我们得到双击点的地址信息:

GMap.Net开发之地址解析与路径查找
GMap.Net开发之地址解析与路径查找

效果图如下:

GMap.Net开发之地址解析与路径查找

第二种情况就是根据地址得到对应的坐标点,输入字符串地址,在地图上得到对应的位置点,可能有多个,就做个了combobox保存所有查询得到的结果,每次选择一个地址的时候,将地图的中心位置移到对应的marker的位置,代码如下:

GMap.Net开发之地址解析与路径查找
GMap.Net开发之地址解析与路径查找

效果图:

GMap.Net开发之地址解析与路径查找

只是简单的测了下,还是比较准确的。。

再来看看路径查找,gmap中的路径查找主要用到routingprovider的如下方法:

GMap.Net开发之地址解析与路径查找
GMap.Net开发之地址解析与路径查找

先在地图上添加2个marker,确定“起点”和“终点”:

GMap.Net开发之地址解析与路径查找
GMap.Net开发之地址解析与路径查找

再通过routingprovider得到起点和终点之间的路径:

GMap.Net开发之地址解析与路径查找
GMap.Net开发之地址解析与路径查找
GMap.Net开发之地址解析与路径查找

这里使用的google的地图服务,却没有使用google的api,gmap的作者通过解析浏览器访问google地图服务器和地图服务的url(其他地图也一样),得到了每次访问的url的格式和传入参数的格式,并找到了规律,确定如何传入参数和解析返回结果而封装了这些类和api,做了这个开源的项目,有兴趣的可看其源代码,还是很有收获的。。。

参考:

https://greatmaps.codeplex.com/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

http://www.cnblogs.com/luxiaoxun/p/3494756.html

继续阅读