GMap 转

原地址:http://blog.csdn.net/chr1123/article/details/7431838

接触gMap大概一两个月了,对它的了解不深,以下是我在使用过程中常用的一些属性,列出来供有需要的朋友参考

Manager.Mode : 数据访问模式,一般设置为AccessMode.ServerAndCache
MapProvider : 地图提供商,一般使用GMapProviders.GoogleChinaMap

DragButton : 移动地图的鼠标按键,默认为右键,通常将其设置为 MouseButtons.Left

MaxZoom : 最大倍数,为一个int
MinZoom : 最小倍数,为一个int
Zoom : 当前倍数,为一个int

Position : 地图的聚焦点,为一个PointLatLng

PointLatLng :包含两个两个double表示经纬度的点,Lat表示纬度,Lng表示纬度
(30.55,114.29)武汉的一个点

GMapOverlay : 图层,通过gMap.Overlays.Add方法添加到地图中,可存放标记、路径等

GMarkerGoogle : 标记,存放在层中,新建时需要一个PointLatLng表示其位置信息和一个Bitmap表示其在地图上显示的图片
常用属性有
Tag,常用来存放一个唯一值,以便调用该标记
ToolTipText,标记显示的文本
ToolTipMode,设置ToolTip显示的模式,有始终显示、从不显示、鼠标停留时显示三种
IsVisible,标记是否可见

GMapRoute : 路径,可画出两点之间的线路、直线

SelectedArea : 当前选择区域,Shift+拖动右键 可以设置
LocationTopLeft,左上角的点,为一个PointLatLng
LocationRightBottom,右下角的点 为一个PointLatLng
gMap.SelectedArea = RectLatLng.Empty 可将其设置为空
通过新建一个RectLatLng并赋值,可以设置当前选择区域:
RectLatLng area = new RectLatLng();
area.LocationTopLeft = new PointLatLng(leftLat,leftLon);
area.Size = new SizeLatLng(leftLat-rightLat,rightLon-leftLon);
mainMap.SelectedArea = area;
mainMap.Position = area.LocationMiddle;

 

网上搜过画路线的方法,看到过两种方法直接调用GMapRoute的manager里面有个什么方法,自己写的时候总是找不到那个方法,后来朋友教了个方法,我试过后可以用

//画出两点之间的线路
private void DrawrouteBetweenTowPoint(PointLatLng pointLatLng_S,PointLatLng pointLatLng_E)
        {
            RoutingProvider rp = gMap.MapProvider as RoutingProvider;
            if(rp != null)
            {
                rp = GMapProviders.GoogleMap;
            }
            MapRoute route = rp.GetRoute(pointLatLng_S, pointLatLng_E, false, false, (int) gMap.Zoom);
            if(route!=null)
            {
                GMapRoute r =new GMapRoute(route.Points,route.Name);
                _overlay.Routes.Add(r);
             //   gMap.ZoomAndCenterRoute(r);
            }
        }
 //画出两点直接的直线
 private void DrawLineBetweenTwoPoint(PointLatLng pointLatLng_S,PointLatLng pointLatLng_E)
        {
            List<PointLatLng> points = new List<PointLatLng>();
            points.Add(pointLatLng_S);
            points.Add(pointLatLng_E);
            GMapRoute r = new GMapRoute(points, "");
            r.Stroke = new Pen(Color.Green, 1);
            _overlay.Routes.Add(r);
        }

 

posted @ 2012-07-17 16:20  如坐夕阳  Views(1092)  Comments(0Edit  收藏  举报