问题标签 [geoxml3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
390 浏览

kml - geoxml3:markerOptions{shape} 的语法

我想限制 KML 文件中所有图标的可点击区域,但我对如何实现这一点有点困惑。这些图标都是相同的典型样式指针,我想将可点击区域限制在指针顶部所包围的圆圈内。图标是 19x32,所以我我想要一个圆,中心距顶部 9px,距左侧 9px,半径为 9px。如果 geoxml3 会这样做,我认为这将在解析器对象中指定,尽管它可能会在 KML 文件的 IconStyle 中。如果事实上那将在解析器对象中,我还没有找到正确的语法。显然不是:

所以请把我理顺。

谢谢,德鲁

0 投票
1 回答
201 浏览

layer - Can I get an Unclickable geoxml3 Shadow Layer that sits entirely behind a Clickable Marker Layer?

In order to have markers that are clickable and marker shadows that are not, I'm setting up two geoxml3 parsers, one for the markers and one for the shadows. That works, but I'm hoping that having two layers will also let me keep the shadow of one marker from falling on another marker. It's a subtle thing, but having a visually horizontal shadow overlaid on a visually vertical marker undercuts the 3-D effect. And in a cluster of markers, things get pretty murky down among the marker stems.

Now, I get that icons are rendered from north to south, so that an icon will peek over the top of an overlapping icon to the south of it. What I was expecting was that each parser would create its own layer, in the sense that a marker layer would appear entirely in front of a preceding shadow layer, with no shadow falling on any marker. It sure looks, though, like the parsers are working north to south down both "layers" at the same time. It seems like for each point they render the shadow image and then the corresponding marker image before moving down to the next point. If the next marker is pretty close to the southwest of the previous marker, its shadow image falls onto that previous marker.

To make sure I wasn't seeing some sort of illusion, as an exercise I put together a map with a couple of big, overlapping shadowed markers. What I'd hope for would be to have the images layered, bottom to top:

  1. East Greenland Shadow
  2. Greenland Shadow
  3. East Greenland Marker
  4. Greenland Marker

Instead, they appear to be layered:

  1. East Greenland Shadow
  2. East Greenland Marker
  3. Greenland Shadow
  4. Greenland Marker

with the Greenland Shadow falling on the East Greenland Marker.

So, can I get all of the markers to appear, collectively, in front of all the shadows? I can't track it down at the moment, but I believe I saw a list of standard Google Maps layers somewhere, which included something like a non-clickable "Shadow Layer". When I create a google.maps.KmlLayer with standard icons, the API automatically pulls up the corresponding shadow images and places those on what I guess is the Shadow Layer, which sits entirely behind the KmlLayer I asked for.

In my current project, I need a geoxml3 marker layer, so I can programatically access the placemarks. Since I can actually work with 32x32 icons, in this case I can just fall back to using a KmlLayer for the shadows, but for future reference it would be great to have the option of a non-clickable geoxml3 layer that sits entirely behind a clickable layer. Is there a way to do that? Would that be a matter of somehow rendering onto that Google Maps Shadow Layer?

Here's the script:

The two KML files are identical except for the IconStyles:

versus:

0 投票
0 回答
1730 浏览

google-maps - 使用 geoxml3 在谷歌地图上渲染 kmz 文件数据

我使用 geoxml3 的 kmz 分支从 kmz 文件中简单地渲染地理日期。但效果不好。地标渲染得很好,但我看不到任何叠加层。这是我的代码:

这是kml:

这两个 png 文件都包含在 kmz 中。并且控制台中没有错误或警告。有人可以帮忙吗?

PS对不起我的英语。

0 投票
2 回答
2915 浏览

javascript - 使用 parseKmlString() 和 parse() 使用 geoxml 加载地图

旧帖子

怎么能parseparseKmlString一起用??我需要显示加载一个 KML 文件(我使用parse(<kml_file>))和两个 XML 字符串(我使用parseKmlString(<xml_string>))的地图。我如何useTheDataafterParse财产中使用?我不知道我必须如何处理这个案子。我可以只使用一个geoxml = new geoxml.parser()用于三个“层”吗?我将如何管理doc参数userTheData以获取“KML 文件层”或“XML 字符串层”?

PD:对不起我的英语。很难解释我需要什么。

修改后的帖子

我用 ASP 动态地绘制地图。如果我得到 3 层,则写入 3 个对象(geoxml_1、geoxml_2 和 geoxml_3)。这将只是一个对象,并显示和隐藏第 1 层或第 2 层……这是我的问题。它确实有效,但它不是很好的代码。当我加载地图时,它会显示所有图层,并在几秒钟内只显示第一层并隐藏其他图层。我只想要第一层,当我单击地图内按钮中的其他层时,它会显示和隐藏层。这是我的代码(对不起,它太大了):

PD:您可以使用initialize_1(). 太重了,希望你能更好地解释我的问题。

最终解决方案

我想我已经找到了解决问题的方法。最后我只创建了一个 geoXml 对象。我使用以下方法加载了四层parse(<url>)

如果你检查geoxml.docs.length你得到2!所以,如果我显示或隐藏layer2olayer3可能是错误的。解决方案已调用不同的 url 以获取geoxml.docs.length==4

0 投票
1 回答
1860 浏览

javascript - 使用geoxml3隐藏/​​显示谷歌地图中的一些地标

我加载了一个包含 3 层的地图:

谁可以隐藏一些地标而无需隐藏所有图层?我在 KML 中添加了一些额外的信息来检测我必须隐藏的所有点/多边形,但我不知道这是否是最好的工作方式。虽然没关系,但我怎么能检测到 KML 中的 TAG 以使用例如geoXml.docs[1].markers[xx].setVisible(false);(在我的情况下,我想隐藏 where "Codigo"-tag='PRA-239'

文件2.kml

0 投票
1 回答
1180 浏览

google-maps-api-3 - geoxml3 删除设置中心位置

我正在使用 geoxml3 加载 KML 文件。加载谷歌地图时会应用中心位置,但一旦 geoxml3 应用 kml 文件,它就会移动中心位置。

0 投票
1 回答
1082 浏览

javascript - Google Maps geoXML3:将地标传递给它自己的事件监听器?

我正在处理一个 Intranet 项目,因此我的 KML 文件无法在外部使用。这意味着我依赖 geoXML3 库将我的 XML 解析到我的谷歌地图上。然而,缺乏事件监听器的文档令人沮丧。我想调用一个单击侦听器并传入 geoXML3 地标。我正在尝试执行以下操作,但是始终将循环中clickListener处理的最后一个多边形接收为.afterParsep

如果我使用的是 Google Maps API 的 KML 支持,我可以这样做并将多边形传递给侦听器。

有没有办法(更可取)将正确的 geoXML3 地标可靠地传递给clickListener,或者(不太可取)geoXML3.parser我可以将点击事件绑定到并接收kmlMouseEvent我使用 Google Maps API kml 解析器的方式的属性?最终,我需要能够更改多边形的样式并在数组中跟踪它已被选中/取消选中。

0 投票
1 回答
380 浏览

google-maps-api-3 - 更新 geoxml3 上的中心点

我已经使用 geoxml3 加载并设置了样式。现在我想更新地图只改变中心点和缩放级别。我怎么能做到这一点。

加载上述内容后,我想使用 onclick 应用 chnages。我的 onclick 运行以下js功能

这不保留原来的风格等。

0 投票
1 回答
309 浏览

gwt - GWT:基本 KML 渲染不起作用

我已将 geoxml3.js 添加到我的 GWT 项目并添加<script type="text/javascript" src="geoxml3.js"></script>到我的主机 html 文件中。

在我的 java 源文件中,我有:

它被称为:

KML 文件位于该 java 文件所在的同一包中。

我从谷歌的官方页面获得了 KML 文件:http: //gmaps-samples.googlecode.com/svn/trunk/ggeoxml/cta.kml

请有任何提示

0 投票
1 回答
651 浏览

google-maps - 将 Google 我的地图与 geoxml3 一起使用

我想知道将 Google 的“我的地图”中的数据与 geoxml3 一起使用的最佳方法是什么。目前只能从“我的地图”中导出 kmz 数据格式。我将导出的 kmz 与 geoxml kmz 版本(http://geoxml3.googlecode.com/svn/branches/kmz/)一起使用,但无法使其工作(但当我将它加载到 Google Earth 并再次保存时它工作了作为kmz!)。我还尝试使用指向“我的地图”的网络链接(我最喜欢),但没有成功,只收到消息“XMLHttpRequest 无法加载http://www.google.com/maps/d/kml?mid=。 …………”。谷歌不再允许这样做了吗?

来自柏林 ralf 的问候