问题标签 [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.
javascript - 加载后 KML 覆盖默认视图
我正在使用本地机器上的 geoxml3 来加载 kml。但是,一旦加载了 kml,默认视图中心就会发生变化。我确实尝试添加行“preserveViewport:true”,但在加载后我仍然可以看到 kml 的完整视图。任何阻止这种情况的建议。
这是我的代码
javascript - Google Maps api 和 GeoXML3 尝试使用 containsLocation 的问题
我正在尝试设置一个加载 KMZ 文件并使用谷歌地图显示它的系统,然后测试用户是否在 KMZ 创建的多边形范围内单击。我已经搜索了所有这些论坛和网络,但没有找到有效的解决方案。
我在加载和读取 KMZ 文件时没有问题,并且多边形在地图上完美显示。但是,当我尝试使用 geoXML3 返回的多边形数据来测试某个位置是否在边界内时,我会收到各种错误,具体取决于我的处理方式。我正在本地加载 geoxml3.js 文件和 KMZ 文件的解析器,正如我所说的那样工作正常,所以我不会包括所有这些。KMZ 文件是服务器本地的,可以正常读取。
这就是我所拥有的:
如您所见,我仅使用硬编码的长纬度值进行测试,它给了我错误“未捕获的 TypeError:b.get 不是函数”。单击按钮时会触发 testlimit 函数。
我最初有更多代码,但由于它不起作用,这就是我结束的地方。任何帮助,将不胜感激。
javascript - Google Maps API 和 geoxml 3 - 在地图上点击/居中地标缩放到地标
更新的脚本 - 单击和缩放/居中
还是不太对,第一次点击显示 infoWindow put 不缩放/居中
XML:
您好我正在尝试使用 Google Maps API 和 geoxml3 创建自定义地图。我设法设置了地图并添加了一个自定义侧边栏,其中包含从外部 KML.xml 文件加载的地标列表。
我想要它,所以当您从侧边栏或地图本身单击地标时,地图将自动以地标为中心并放大。
这是我到目前为止的 HTML 和脚本,
HTML:
脚本:
任何帮助将不胜感激。
javascript - Javascript 仅在页面重新加载后访问对象属性
我的代码有一个非常奇怪的问题。我正在使用 geoxml3 解析一个 kml 文件,它解析了所有折线,但是当它到达标记时,控制台说它是undefined
. 奇怪的是,每次我重新加载页面时,它都可以正常工作,但是每次我在新标签中打开时,它都会再次中断。更奇怪的是,当我console.log
在条件之前放置一个右侧以检查它是折线还是标记时,浏览器的控制台会显示有一个marker
属性。
这是 geoxml3 需要的我的 useTheData 函数:
javascript - 在其他站点上使用时不显示 KMZ 图层
所以我在我的网站上显示了一个 KMZ 图层,但不会在其他任何地方显示。这是我的 Javascript:
例如 127.0.0.1/localhost 使用 xampp 或http://example.com/test/map.html时,parking2.kmz 层将不会显示。但是,它将显示在http://example.com/map.html上。有任何想法吗?
google-maps - 自定义图标在谷歌地图 KML 上消失了
海关图标在我的谷歌地图(带有 KML 文件)上工作,但它们消失了。我阅读了有关 stackoverflow 的相关帖子,但由于我还没有使用<color/>
我的地图上可以做什么?
您可以在此处查看示例页面,脚本如下:
javascript - 如何使用 geoxml3 获取 KMZ 或 KML 文件的边界?
我的项目涉及从包含大约 600 多个 kmz/kml 文件的目录中加载多个 kmz 文件。当用户移动地图并单击按钮以加载相关的 kmz 文件时,最多将加载 5 个文件。将进行检查以确保缩放足够大,以使覆盖的区域不会太宽。
要加载相关的 kmz/kml 文件,其想法是如果来自 kmz/kml 的地标甚至部分落在视口内,则加载该文件。为了快速加载这些 kmz/kml 文件,我想到了以下步骤:
步骤1:分别提取每个kmz/kml文件的边界并存储在一个文件中。我知道如何获取视口的边界map.getBounds()
,以及 kmz 中的特定多边形,geoXmlDoc.placemarks[i].polygon.bounds
. 但是有没有办法为包括所有点、线、多边形的整个 kmz 文件获取边界?
我了解此步骤只需执行一次即可生成包含所有 kmz/kml 文件边界的边界文件。我尝试通过循环分别加载每个文件并调用视口的 getBounds 但不幸的是,视口并不完全适合 kmz 的边界。视口通常更大。
第 2 步:当用户将地图移动到新位置并单击加载相关的 kmz 文件时,如果视口边界与任何 kmz 边界相交,则只会检查合并的边界数组。
javascript - 带有来自 .kml 文件的地标的 Google 地图多边形(使用 geoxml3 和 kmllayer)
我正在尝试将多边形图层和地标图层合并到同一张地图中。
但是,在使用 geoxml3 解析器从 .kml 文件加载多边形图层后。
我尝试加载一些 Placemarks 图层并成功,但是 Placemarks 似乎位于多边形下方。
尝试在线搜索并尝试解析后才加载图层的建议,但没有奏效。还尝试了 kmllayer 上的 zIndex,但效果不佳。
我该怎么做才能使地标出现在多边形的顶部?
我的代码的一小部分如下所示。
javascript - 刷新时删除旧的 geoxml3 层
我的网页上有一个谷歌地图,并使用 geoxml3 来解析图层(带有许多地标)。
有一个计时器会每 10 秒触发一次 jquery 来拉取新的 .kml 文件。但是我想在解析新层之前删除旧层。
问题:移除/销毁的正确方法是什么?
我知道有一个geoXml.hideDocument();
,但它只会隐藏图层,它不会删除/销毁图层,对吗?(下面是 hideDocument() 实现)
refreshMap() - 隐藏上一层并显示新层
即使这样可行,但我担心的是,如果它每 10 秒拉一次数据,如果页面打开 1 小时,是否会导致任何延迟?原因是叠加层实际上并没有被销毁/删除,它们仍然在内存中,只是我们失去了对它的引用(因为现在引用指向新层)。
更新
我在网上找了一些资料,看来我不必担心这个实现。
“由于 Javascript 是垃圾收集,因此您不需要自己删除对象 - 当无法再引用它们时,它们将被删除。”
google-maps-api-3 - 获取使用geoxml3绘制的KML中鼠标点击的纬度和经度
有没有办法在谷歌地图上使用geoxml3在解析的KML图层上获得右键单击事件。我正在获得地图的右键单击事件,即KML的外部区域。但我无法在解析的 KML 上获得点击事件。
我这样用过