KML 文件和自定义类
KML file and custom classes?
我有这个 kml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Placemark>
<name>CDATA example</name>
<description>
<![CDATA[
<h1>CDATA Tags are useful!</h1>
<p><font color="red">Text is <i>more readable</i> and
<b>easier to write</b> when you can avoid using entity
references.</font></p>
]]>
</description>
<Point>
<coordinates>102.595626,14.996729</coordinates>
</Point>
</Placemark>
</Document>
</kml>
(示例取自谷歌地图文档)当我将类添加到 KML 内部的 href 时:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Placemark>
<name>CDATA example</name>
<description>
<![CDATA[
<h1>CDATA Tags are useful!</h1>
<p><font color="red">Text is <i>more readable</i> and
<b>easier to write</b> when you can avoid using entity
references.<a class="read_more" href="http://google.com">Read More</a></font></p>
]]>
</description>
<Point>
<coordinates>102.595626,14.996729</coordinates>
</Point>
</Placemark>
</Document>
</kml>
KMl 只是剥离它,我猜这是由于"内容清理"https://developers.google.com/earth/documentation/balloons
这是我当前的JavaScript:
jQuery(document).ready(function($) {
function initialize() {
var myLatlng = new google.maps.LatLng(51.201465,-0.30244);
var mapOptions = {
zoom: 12,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
var kmlLayer = new google.maps.KmlLayer({
url: 'http://*****.com/new/wp-content/themes/required-starter/KML_Samples.kml?rand='+(new Date()).valueOf(),
suppressInfoWindows: false,
map: map
});
google.maps.event.addListener(kmlLayer, 'click', function(kmlEvent) {
var text = kmlEvent.featureData.description;
alert(text);
});
}
google.maps.event.addDomListener(window, 'load', initialize);
});
我找不到正确的参数来停止数据清理,也找不到 kml 文档中将类添加到描述包装器或气泡的选项。我想这是由于我的无能,请帮忙!克里斯
我认为
您无法避免我所知道的任何方式清理数据。但是您可以采取行动并控制数据。比如,首先一些风格:
<style type="text/css">
.foo .read_more {
font-family: papyrus, parade;
}
.foo h1,p{
margin:0;
padding:0;
}
</style>
然后制作你自己的(好吧,好吧,这是谷歌的)信息窗口:
function initialize() {
var myLatlng = new google.maps.LatLng(51.201465,-0.30244);
var mapOptions = {
zoom: 4,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
var kmlLayer = new google.maps.KmlLayer({
url: 'SomeKmlFile.kml',
suppressInfoWindows: true,
map: map
});
var infoWindow = new google.maps.InfoWindow({pixelOffset: new google.maps.Size(0, -32)});
var div = document.createElement('div');
google.maps.event.addListener(kmlLayer, 'click', function(kmlEvent) {
var text = kmlEvent.featureData.description;
div.innerHTML = text;
div.className = 'foo';
div.getElementsByTagName('a')[0].className = 'read_more';
infoWindow.setPosition(kmlEvent.latLng);
infoWindow.setContent(div);
infoWindow.open(map);
});
}
google.maps.event.addDomListener(window, 'load', initialize);
相关文章:
- SuiteScript2.0-包括一个自定义文件
- Rails资产管道-自定义js文件
- 如何在ExtJs4应用程序上为视图、存储和模型设置自定义文件夹名称
- 扩展 ACE 编辑器,如何导入自定义文件
- 使用drupal中自定义javascript文件中的一个函数
- 使用CKEditor自定义文件浏览器,并使用ASP.Net MVC进行上传
- 如何在Visual Studio 2010/2012中将自定义文件扩展名注册到JavaScript编辑器
- 自定义文件输入
- 在文件上传中选择自定义文件
- Webpack 引导加载器在引导后加载自定义文件
- Dropzone.js:自定义文件浏览器 - 添加已上传的文件
- 在CKEditor中获取自定义文件浏览器的url
- 如何将Yeoman输出的所有脚本、图像分组到自定义文件夹中
- 自定义文件上载脚本在safari中不起作用
- 根据用户输入提供自定义文件
- Javascript自定义文件不工作
- Jquery自定义文件输入插件
- CKEditor不能在自定义文件夹中工作
- 自定义文件上传按钮
- 自定义文件夹浏览器/上传文件对话框