我正在使用 xmlreader.read() 读取 xml gps 数据。我想输出不在线元素内的所有坐标点。下面包含在文件中,我想排除列出的坐标。
<place>
<desc>home</desc>
<line>
<coordinate>123,123,123</coordinate>
<coordinate>1223,1223,22123</coordinate>
</line>
</place>
Run Code Online (Sandbox Code Playgroud)
这是我想要输出和处理的有效坐标的示例(全部位于同一文件中):
<place>
<desc>home</desc>
<point>
<coordinate>123,123,123</coordinate>
</point>
</place>
Run Code Online (Sandbox Code Playgroud)
区别在于,一个是线对象的一部分,另一个是点。我目前有这段代码,它抓住了一切。
while (lxmlReader.Read())
{
if (lxmlReader.NodeType == XmlNodeType.Element)
{
if (lxmlReader.Name == "coordinate")
{
rtxtOutput.Text += "\r\nElement Name: " + lxmlReader.Name.ToString();
rtxtOutput.Text += " Value: " + lxmlReader.ReadInnerXml().ToString();
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在制作一个使用谷歌地图来帮助部署太阳能的网络应用程序。本质上,我正在全屏加载谷歌地图并使用以下代码覆盖 KML 图层:
window.solarLayer = new google.maps.KmlLayer({
url: 'somelink'
});
window.solarLayer.setMap(window.map);
Run Code Online (Sandbox Code Playgroud)
该应用程序的另一个功能是,用户可以单击地图上的任意位置,并使用单击点处的纬度和经度,将太阳能数据返回给用户。
通过使用点击事件处理程序,这一切都可以正常工作:
google.maps.event.addListener(map, 'click', function(event) {
var latitude = event.latLng.lat();
var longitude = event.latLng.lng();
console.log( latitude + ', ' + longitude );
});
Run Code Online (Sandbox Code Playgroud)
但是,地图中具有 KML 图层的部分仅注册该图层的单击,而不会访问我创建的单击事件...
有谁知道如何禁用 KML 图层的点击事件?或者如何让我的事件侦听器取代 KML 层的事件侦听器?
我尝试通过在 KML 图层和地图上使用单击事件来获取纬度和经度,但这只会产生该图层所在位置的静态经度,而不是用户实际单击的位置。
感谢您提前提供任何帮助!
我有一个来自建筑师的 KML 文件,他说他对线条(白色、蓝色、红色)进行了着色,我看到文件本身中的代码,所以我知道它们在那里。正确的颜色确实会显示在 Google 地球中,但不会显示在我作为 KML 图层添加到 MapBox中的 Google 地图http://lonesomevalley.com/site-map-mapbox/中。当我带入 Geojson.io 工具时,它们也不会显示,所以一定有问题。我看到谷歌地图支持这种颜色,所以想知道为什么它不起作用。请帮忙!提前致谢!我的代码可以在这里下载:http : //evolv.com/lonesome.kml
在 KML 中包含与号的正确格式是什么?我在名称标签中使用它们。如果我包含一个常规的 '&' 那么它是无效的。
我需要正确编码哪些其他字符?
我正在使用这种格式:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.2">
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个 PHP 解决方案。我正在用 PHP 创建 KML。
我试图将 Javascript 变量传递到 URL 中,但其中存在某种语法错误。
function initMap() {
var jsonData = { $tourArray }
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: {
lat: jsonData.CenterLat,
lng: jsonData.CenterLon,
},
})
var kml = jsonData.KmlFile
var src = 'http://www.example.com/KML/?= + kml'
var kmlLayer = new google.maps.KmlLayer(src, {
map: map,
})
}
Run Code Online (Sandbox Code Playgroud)
该变量var kml基本上是存储在服务器上的 KML 文件夹内的 kml 文件名,我正在尝试访问该文件以便在我的谷歌地图上添加 KML 图层。
URL 语法似乎不正确。
我想知道一种简单易用的方法来解析 KML 文件并将其数据存储在对象中,以便我可以立即访问其数据这是我的 kml 文件
我有一个代码显示地图并使用 openlayers 库进行地理编码。您还可以通过在地图上拖动来显示 kml 文件。现在我希望用户从设备内存中选择这个文件并将其插入到地图中。例如,使用搜索按钮并选择文件来执行此操作。可以使用openlayers库吗?我找不到任何东西。我该怎么做?请指导我。谢谢 这是我的代码:
<!DOCTYPE html>
<html>
<head>
<title>KML</title>
<link rel="stylesheet" href="https://openlayers.org/en/v5.3.0/css/ol.css" type="text/css">
<!-- The line below is only needed for old environments like Internet Explorer and Android 4.x -->
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=requestAnimationFrame,Element.prototype.classList,URL"></script>
<script src="https://openlayers.org/en/v4.6.5/build/ol.js"></script>
</head>
<body>
<div id="map" class="map"></div>
<div id="info"> </div>
<script>
var raster = new ol.layer.Tile({
source: new ol.source.BingMaps({
imagerySet: 'Aerial',
key: 'Ar3HbeAWJ2BNWw49Jnce_gbrbyqiPSBFuci9N4942gLNyBZgfzFPYn0d4QvpH06G'
})
});
var vector = new ol.layer.Vector({
source: new ol.source.Vector({
url: 'Data/earth.kml',
format: new ol.format.KML()
})
});
var map = new ol.Map({
layers: [raster, …Run Code Online (Sandbox Code Playgroud) 我需要将坐标从 C++ 文件输入到 KML 文件中才能与 Google Earth 一起运行,您将如何执行此操作?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"
xmlns:kml="http://www.opengis.net/kml/2.2"
xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
<name>Path.kml</name>
<Style id="pathstyle">
<LineStyle>
<color>ff190cff</color>
<width>2</width>
</LineStyle>
</Style>
<Placemark>
<name>Path</name>
<description>This is the path between the 2 points</description>
<styleUrl>#pathstyle</styleUrl>
<LineString>
<tessellate>1</tessellate>
<coordinates>
long1,lat1,0
long2,lat2,0
</coordinates>
</LineString>
</Placemark>
Run Code Online (Sandbox Code Playgroud)
当输入纬度和经度时,如何从c++文件中输入数据?它们被声明为双浮点数
我从一个位置weeb服务获得这个KML,我需要解析它.我需要读取所有PLACEMARK标签,我只需要从它们的名称纬度和经度.感谢任何帮助.
<?xml version="1.0" encoding="UTF-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Lociraj.net (C) 2010</name>
<StyleMap id="highlighting">
<Pair>
<key>normal</key>
<styleUrl>#normalState</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#highlightedState</styleUrl>
</Pair>
</StyleMap>
<Style id="highlightedState">
<IconStyle>
<scale>1.1</scale>
<Icon>
<href>http://maps.google.com/mapfiles/kml/pal3/icon55.png</href>
</Icon>
</IconStyle>
<LabelStyle>
<scale>1.1</scale>
</LabelStyle>
</Style>
<Style id="normalState">
<IconStyle>
<Icon>
<href>http://maps.google.com/mapfiles/kml/pal3/icon63.png</href>
</Icon>
</IconStyle>
</Style>
<Placemark>
<name>Vaša lokacija</name>
<description />
<LookAt>
<longitude>15.976903</longitude>
<latitude>45.813182</latitude>
<altitude>0</altitude>
<range>500</range>
</LookAt>
<Style>
<IconStyle>
<Icon>
<href>http://lociraj.net/img/icon_map_your_location.png</href>
</Icon>
</IconStyle>
</Style>
<Point>
<coordinates>15.976903,45.813182,0</coordinates>
</Point>
</Placemark>
<Folder>
<name>Bankomati</name>
<Placemark>
<name>Raiffeisen</name>
<description>
<![CDATA[ Ilica 1a, Zagreb<br><br>Raiffeisenbank<br>
<b>Udaljenost:</b> 65m<br>
]]>
</description>
<LookAt>
<longitude>15.9761</longitude>
<latitude>45.813</latitude> …Run Code Online (Sandbox Code Playgroud) kml ×9
google-maps ×3
xml ×3
c# ×2
javascript ×2
.net ×1
android ×1
c++ ×1
data-layers ×1
google-earth ×1
html ×1
mouseevent ×1
openlayers ×1
web ×1