1

我想知道我可以将 KML 作为字符串传递给谷歌地图应用程序吗?

代码片段:

//KML String
 String document = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><kml xmlns=\"http://www.opengis.net/kml/2.2\"><Document><Folder><name>Paths</name><open>0</open><Placemark><LineString><tessellate>1</tessellate><coordinates> -112.0814237830345,36.10677870477137,0 -112.0870267752693,36.0905099328766,0</coordinates></LineString></Placemark></Folder></Document></kml>";

//Invoke Google Maps

int module = CodeModuleManager.getModuleHandle("GoogleMaps");

if (module == 0) {
  try {
    throw new ApplicationManagerException("GoogleMaps isn't installed");
  } catch (ApplicationManagerException e) {
    System.out.println(e.getMessage());
  } 
}

String[] args = {document}; //Is this possible???
ApplicationDescriptor descriptor = CodeModuleManager.getApplicationDescriptors(module)[0];
ApplicationDescriptor ad2 = new ApplicationDescriptor(descriptor, args);
try {
     ApplicationManager.getApplicationManager().runApplication(ad2, true);
    } catch (ApplicationManagerException e) {
      System.out.println(e.getMessage());
 }
4

2 回答 2

0

经过大量研发......我发现的答案是 -我们不能将 KML 作为字符串传递。

Google Maps Mobile 接受 URL 参数。这需要采用“http://”的形式,并且可以是特定参数(例如“ http://gmm/x ?..”)或 KML 文件(“ http://.. ../sample.kml ”)。

于 2010-07-12T04:37:45.770 回答
0

如果使用 GoogleMaps API,您必须解析您的 mapFile (KML, gpx, txt)。

如果您只想在 googlemaps 窗口中查看您的 KML 文件,您可以转到标准的http://www.googlemaps.com 并在 ADDRESS 框中输入您的 kml 文件的完整 http 地址。

直到 2012 年 april2012 这曾经完美地工作并且侧边栏将正确填充,带有可点击的项目(点击侧边栏条目[例如“点 1”将飞到等效位置)。截至 2012 年 5 月,此功能无法正常工作。

如果您想更进一步,您可以让 PHP 页面回显 kml(从数据库或文件动态 KML 渲染)。但是,googlemaps 不会在 10 到 15 分钟内刷新您动态生成的输出。

如果你想要一些用于 GoogleMaps API vs3 的 javascript GPX 和 TXT mapFile 渲染,请 PM 我

于 2012-06-01T21:36:25.330 回答