地理信息管理与地图控制

在现代企业管理中,无论是公司、客户、供应商还是员工,都需要记录大量的信息,包括他们的位置(地址、城市等)。随着地理定位技术的发展,记录地理位置的地理坐标(纬度和经度)变得越来越重要,这有助于在地图上查看位置、记录地面细节以及计算路线,特别是位置和这些实体的位置之间的路线,反之亦然。这种控制有助于实现所有这些任务的全球解决方案。

控制由两个文件组成,都使用Google Maps API v3:

  • GMaps.dll - 用VB.NET编写,可以集成到任何WinForms应用程序中。
  • GMaps.html - HTML与JavaScript代码,用于地图显示任务,应放置在应用程序启动文件夹中。

要求:最低屏幕分辨率为1360x768。

问题

自2015年12月以来,Google Maps JavaScript API应用程序需要认证,这个程序停止了正常工作(在“路线”视图中,方向蓝线和文本方向面板没有显示),因为HTML/JavaScript文件在Visual Studio的WebBrowser控制下运行,默认情况下是Internet Explorer版本7,这不足以满足要求。

使用代码

下载.ZIP文件。.ZIP文件包括GMaps_Documentation.PDF,该PDF文件完全描述了控制。控制的源代码和测试项目在Visual Studio 2008版本中提供,但可以通过后续版本升级。控制的DLL位于...\GMaps_All-in-1\GMaps\bin\Release\GMaps.dll。将其添加到工具箱,右键单击工具箱区域 -> 选择项目... -> 浏览 -> 选择DLL。

在解决方案资源管理器中,选择项目,打开项目 -> 引用 -> 添加... -> 浏览 -> 选择GMaps。将控件(GMaps)从工具箱拖到表单上。给它一个小尺寸,它可以是0;0。HTML文件位于...\GMaps_All-in-1\GMaps\GMaps.html。将其复制到应用程序启动文件夹(IDE项目或实际应用程序)。

当启动提供的解决方案时,如果收到消息“A项目具有类库输出类型,不能直接启动”,则:转到解决方案资源管理器,选择GMaps_Test项目,右键单击鼠标按钮并点击设置为启动。

控制的使用

1) 控制与3种类型的实体/点/标记一起工作:类型1(“MyPlace”) - 所有者的位置、公司、办公室等。可以是路线的起点或终点。类型2(“Place2”) - 正在管理的实体类型(公司/客户/供应商/员工)。可以是路线的起点或终点。类型0(WayPoint) - 多达8个位置,从起点到终点的路线操作。

2) 基本上,控制用于将正在处理的实体的地址元素转换为坐标。这可以通过调用方法实现,而无需加载控制。

3) 但是通过加载控制,可以执行以下操作(跟踪所有位置的定义和调整结果):在地图上查看位置(地图或卫星视图),视觉上调整任何位置,计算两个位置之间的路线,可选地带有途径点,查看实体的位置在地面级别(StreetView)进入地址元素并定义位置在应用程序表单之外。

1) Google地图视图查看、编辑和调整位置:“地点”,“地点2”,途径点(s)拖动标记将更新内部位置表。要添加、编辑或删除位置,请使用详细信息面板:要快速调整“地点2”:完成后,要快速重新定位地图:2) 路线视图绘制两个点之间的路线,包括最终的途径点(s),并显示文本指令。拖动起点、终点或途径点不会更新内部位置表。要更改路线选项,请使用路线选项面板:在所有情况下,当选中/取消选中按钮/框时,将调用方向服务,地图和方向显示将重新绘制。3) StreetView视图查看“地点2”位置在地面级别。要更改StreetView选项,请使用视点选项面板:在两种情况下,当滑动光标时,当释放鼠标时,视图将重新绘制。

控制的属性、方法和事件的简要描述

有关完整描述、语法、示例、结果和提示,请参见GMaps_Documentation.PDF和演示源代码。属性MyPlace - 重新定义标签,简短描述所有者的位置/公司/办公室等Place2 - 重新定义标签,简短描述正在管理的实体类型(公司/客户/供应商/员工)。

方法Clear - 清除控制中存储的所有位置信息Coord2DMS - 将坐标从十进制度格式转换为度分秒格式GeoCoding - 给定一个或多个文本地址元素,返回包含地理编码结果的字符串数组GeoReverse - 给定纬度和经度,返回包含地理编码结果的字符串数组LoadGMaps - 控制传递给GMaps的特定实例LoadPlace - 将位置(MyPlace、Place2或WayPoint)加载到控制中PrepFullAddr - 准备字符串以进行地理编码目的SetCenter - 覆盖预定义的初始地图中心Str2DSCulture - 给定坐标,用当前文化的小数分隔符替换小数分隔符(点或逗号)Str2DSDot - 给定坐标,用点替换小数分隔符(点或逗号)。

事件GeoResults - 每当定义或调整位置(在Google地图视图中)时,地理编码结果状态为“OK”。

HTML/Javascript文件

需要用于地图显示任务,应放置在应用程序启动文件夹中(IDE项目或实际应用程序)。使用了4个google.maps类:Geocoder - 在Google地图视图中。函数AddMarker接收来自控制的内部位置表的数据并创建标记,当调整/拖动时,将反馈发送到控制。相关资源:var Map1, div mapPanel - 100%DirectionsService/DirectionsRenderer - 在路线视图中。函数calcRoute拾取标记的位置,设置路线的起点和终点以及最终途径点,绘制适当的路线(var Map2, div routePanel - 69.7%)并根据从控制接收到的参数编写文本指令(div dirPanel - 30%),StreetViewPanorama - 在StreetView视图中。函数initStView拾取“地点2”的标记位置并绘制地图(var Map3, div sviewPanel - 49.8%)和全景(div panorPanel - 50%),根据从控制接收到的参数。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485