1

我正在尝试使用嵌入了 Google Maps API 的 C# 编写桌面应用程序。为此,我在应用程序中嵌入了一个 Web 浏览器并使用 Maps API。我可以在应用程序中使用 Maps API 的基本功能。

我的目的是动态创建一个 KML 文件并将其显示在地图上。KML 文件是使用 GDAL 从 shapefile 成功创建的。我通过将它们导入到 maps.google.com 来检查它们的有效性。我面临的问题是无法使用 Maps API 在本地磁盘上显示 KML 文件。我无法将这些 KML 文件上传到 Google 可以访问的公共服务器。我在网上搜索,发现 geoxml3 可以用于这些目的,但我无法处理它。由于 Geoxml3 受到相同的跨域下载限制,因此当我尝试解析本地磁盘上的 KML 文件时出现“访问被拒绝”错误。如何确保我的 KML 文档与包含的地图页面来自同一个域?我对 javascript 很陌生,所以任何帮助都将不胜感激。

如果有另一种方法可以实现我正在尝试做的事情(比如将本地 kml 文件即时导入 Google 服务器等),请告诉我。先感谢您。

伊金格迪克

4

1 回答 1

0

跨域问题的通常答案(至少在最近使用 CORS 的浏览器之前:Cross-Origin Resource Sharing,我见过但没有尝试过),是在与网页相同的域中使用代理。我不确定这将如何与本地文件一起使用。

您应该能够从本地计算机上运行的应用程序访问本地文件,但我不确定这是否符合开发以外的使用条款。

另一种选择是将 kml 作为字符串传递给 geoxml3 并使用 parseKmlString 方法。那将避免xmlHttpRequest。

于 2012-07-11T13:36:15.980 回答