我创建了一个hello world程序来加载一个本地kml文件(借用谷歌的文档):
var ctaLayer = new google.maps.KmlLayer("http://localhost:8080/kml/cta.kml");
Run Code Online (Sandbox Code Playgroud)
这不起作用(没有任何东西被加载).
但是,当我将该行更改为:
var ctaLayer = new google.maps.KmlLayer("http://gmaps-samples.googlecode.com/svn/trunk/ggeoxml/cta.kml");
Run Code Online (Sandbox Code Playgroud)
它正确加载.两个kml文件都是相同的.在自己提供服务时,我需要做些什么来加载它?(我尝试了绝对和相对路径,我知道我使用的路径是正确的......)
我还在我的appserver的配置文件中添加了正确的mime类型:
<mime-mapping>
<extension>kml</extension>
<mime-type>application/vnd.google-earth.kml+xml</mime-type>
</mime-mapping>
<mime-mapping>
<extension>kmz</extension>
<mime-type>application/vnd.google-earth.kmz</mime-type>
</mime-mapping>
Run Code Online (Sandbox Code Playgroud)
但它仍然没有加载.
我在谷歌的文档中发现了这个:
Google Maps API支持用于显示地理信息的KML和GeoRSS数据格式.这些数据格式使用KmlLayer对象显示在地图上,该对象的构造函数采用可公开访问的KML或GeoRSS文件的URL.
所以,我想什么,我试图做的是没有可能的,而不从公开访问的网址服务的KML ......除非有人能够证明否则
我有什么方法可以在谷歌地图中使用KMZ文件吗?我的KML文件大约为10.7MB,因此无法在Google地图上加载.KMZ文件大约2MB.我看到它的唯一方法是拥有多个KML,但它的工作量太大了.我可能最终会这样做,但只是想知道KMZ是否可以使用?
谢谢.
我\xe2\x80\x99m 正在寻找一种方法,将 C# 中的 ColorDialog Box 返回的颜色代码转换为 KML/KMZ 文件格式使用的颜色格式。任何信息,将不胜感激!!
\n我是KML的新手,这应该很简单,但我无法弄清楚。
在我的KML中,我定义了几种样式,可以使用styleUrl标签轻松地将它们分配给特定的地标。我的样式仅在背景颜色上有所不同,但它们还包含一个相当复杂的“ BalloonStyle”,这对所有样式都是相同的。现在,我不想将相同的Ballonstyle复制到我拥有的每种样式中,并增加KML的大小。
我需要为地标分配两种样式,就像我在CSS中所做的那样:
<styleUrl>#greenArea #myBalloonStyle</styleUrl>
Run Code Online (Sandbox Code Playgroud)
<styleUrl>#redArea #myBalloonStyle</styleUrl>
或在我的样式中写一些它从第二种样式“继承”其气球样式的内容。
先感谢您
我需要按照以下步骤将KmlLayer添加到Google地图中.
首先,我正在使用"Google maps utils"和以下Gradle
compile 'com.google.maps.android:android-maps-utils:0.4+'
Run Code Online (Sandbox Code Playgroud)
并作为此文档
以下是应用代码:
try {
KmlLayer kmlLayer = new KmlLayer(googleMap, R.raw.traiff160809, RTA.getContext());
kmlLayer.addLayerToMap();
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
但我无法在构造函数中传递业务实例的Google地图
建议,谢谢!
我坚持转换.
我有一个带有一些坐标的KMZ文件.我读了这样的文件:
m=Import["~/Desktop/locations.kmz","Data"]
Run Code Online (Sandbox Code Playgroud)
我得到这样的东西:
{{LayerName->Point Features,
Geometry->{
Point[{-120.934,49.3321,372}],
Point[{-120.935,49.3275,375}],
Point[{-120.935,49.323,371}]},
Labels->{},LabeledData->{},ExtendedData->{},
PlacemarkNames->{1,2,3},
Overlays->{},NetworkLinks->{}
}}
Run Code Online (Sandbox Code Playgroud)
我想从每个点以及与点相关联的地标名称{1,2,3}中提取{x,y,z}.即使我可以从几何中得到分数 - > {}也没关系,因为我可以将它们提取到List @@@的列表中,但是我在基本部分丢失了,我无法提取几何"规则".
谢谢你的帮助,
罗恩
有没有办法只使用Java API for KML(JAK)将图像文件添加到kmz文件中?我可以创建一个没有问题的kml文件,但我试图只是嵌入一个资源(例如带有一些图像文件的图像文件夹),但是marshalAsKmz方法只将Kml对象作为附加文件,所以我无法想象如何只包括额外的图像.
我遇到了IIS和KMZ文件的特殊问题.我已经将MIME类型添加到IIS并且它工作正常 - 但是,似乎随机删除了MIME类型.现在已经发生了几次,每次我要解决的问题都是再次添加MIME类型.
报告损坏的链接时会识别该问题,并且一旦我将MIME类型添加回来就很好.
有关导致它的原因的任何想法,或找出造成它的原因的方法?
谢谢!
我必须在我的传单地图中使用 KMZ 文件。我找到了在 Leaflet Maps 中使用 KML 文件的好插件和教程,但找不到使用KMZ文件的方法。
使用 KML 的插件之一是:Leaflet-Omnivore。对于 KML,我所要做的就是(我的 Leaflet 地图位于我的 ExtJs 应用程序中):
var myMap = Ext.ComponentQuery.query("leaflet")[0];
myMap.getMap().addLayer(omnivore.kml('http://url/doc.kml'))
Run Code Online (Sandbox Code Playgroud)
谁能指导我如何在 Leaflet 中使用 KMZ 而不是 KML?
如果不可能,那么有没有办法使用 JavaScript 将 KMZ 转换为 KML?
我使用十六进制颜色来标记图标。对于蓝色,我使用0000ff
. 在 KML 文件中,它是<color>ff0000ff</color>
. 但是,当在 Google 地球中打开 KML 时,图标地标为红色。
查看https://developers.google.com/kml/documentation/kmlreference我的看法是颜色应该编码为ff
+ hexadecimal number
,因此黑色表示为ff000000
,这有效,但ff0000ff
蓝色则不然。
我尝试了各种样式和图标选项,但没有成功。我已经阅读并看到了如何合并图标和颜色的分层效果。似乎使用wht-blank.png将是一个中性画布来应用颜色,但我怀疑它可能会产生干扰。
下面是我的测试kml。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2">
<Document>
<name>kml_test</name>
<Placemark>
<name>uniq_name</name>
<Style>
<IconStyle>
<scale>1</scale>
<color>ff0000ff</color>
<Icon>
<href>http://maps.google.com/mapfiles/kml/paddle/wht-blank.png</href>
</Icon>
</IconStyle>
</Style>
<LabelStyle>
<color>ffffffff</color>
<scale>0.6</scale>
</LabelStyle>
<LookAt>
<longitude>-118.000000</longitude>
<latitude>34.000000</latitude>
<range>1000</range>
</LookAt>
<Point>
<altitudeMode>clampToGround</altitudeMode>
<extrude>0</extrude>
<coordinates>-118.000000,34.000000,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>
Run Code Online (Sandbox Code Playgroud)
我希望<color>ff0000ff</color>
在 Google Earth 中打开 kml 时显示蓝色图标,而不是红色图标。
kmz ×10
kml ×8
google-earth ×2
java ×2
android ×1
c# ×1
colordialog ×1
gis ×1
google-maps ×1
iis ×1
jak ×1
javascript ×1
leaflet ×1
mime-types ×1
rules ×1