完全有可能将折线的坐标传递给谷歌地图,但是有很多考虑因素。
首先,折线坐标必须是UTM(即经度和纬度)。
接下来,您必须在地图 Web 浏览器中嵌入一个 javascript 才能传递您的点。
最后,您必须使用Google API从点构造折线并将其设置为地图。
有一些警告...Web浏览器控件将允许您调用脚本(请记住Javascript是区分大小写的),但它只允许您传递单个变量。好消息是,变量必须是 javascript 函数的每个必需参数的数组。
考虑到您要显示一个标记,您可能只需要传递一个地理编码点(-112.53412,84.84533),因此您的javascript函数可以接受2个变量,一个用于经度,一个用于纬度,但是,如果您需要传递未知数量的折点,则javascript函数将不会接受超过其定义处理的变量。要解决此问题,请使用带分隔符的字符串作为 points 数组,然后将分隔符传递给 javascript 函数。
- 'This is our argument array
- Dim Args(1) As String
- 'Build our list of points, X & Y coords (i.e. Lon/Lat)
- For N = 0 to polypoints.count - 1
- Args(0) = Args(0) & polypoints(N).X & "," & polypoints(N).Y
- Next
- 'Pass our delimiter
- Args(1) = ","
- 'Call the script
- WebBrowser1.document.InvokeScript("MakePoly",Args)
- function MakePoly(points, delimiter){
- //you need to unpack your points using the delimiter
- //and create an array of GLatLng for API V2 or LatLng for API V3
- //polyline building code goes here
- }
在我发热之前,我有一段时间没有使用VBA了,所以这个例子可能包含错误..特别是AutoCAD对象...我不敢相信我忘记这些事情的速度有多快...
顺便说一句,您也可以将函数的值作为com对象返回给调用函数,但是没有关于如何与它交互的文档,尽管我已经取得了一些进展,但它在大多数情况下被击中并错过,尽管字符串和标记返回得很好,并且相对容易交互和操作。
祝你好运! |