我有一个HTML页面,其中主机谷歌地图信息控件。我能够在html文档中显示一个给出硬编码的静态值的标记。现在我正在尝试从XML外部源文档中获取值。这就是我想做的,
function initialize(Object) {
var mapOptions = {
center: new google.maps.LatLng(19.314059,84.801407),
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP,
marker:true
};
var infoWindow = new google.maps.InfoWindow();
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","cd_catalog.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
var x=xmlDoc.getElementsByTagName("CD");
for (i = 0; i < x.length; i++) {
var LatLat = x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue;
var LongLong = x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue;
var Title = x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue;
var myLatlng = new google.maps.LatLng(LatLat, LongLong);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: Title
});
}
}
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited by XMLSpy® -->
<CATALOG>
<CD>
<TITLE>Ambupa Bauri Street</TITLE>
<ARTIST>56</ARTIST>
<COUNTRY>19.3173287566233</COUNTRY>
<COMPANY>84.8497137612449</COMPANY>
</CD>
<CD>
<TITLE>Anadrigam</TITLE>
<ARTIST>64</ARTIST>
<COUNTRY>19.3128836507433</COUNTRY>
<COMPANY>84.7996238277367</COMPANY>
</CD>
</CATALOG>
我的标签如下所示,
<body onload="if (onLoad) onLoad(); initialize()">
这不起作用,任何帮助都将被感激。
首先,代码不能很好地工作,因为其中有一些bug。就像你没有提到事件监听器的标记信息窗口一样。
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
你可以从
Google Maps API v3:带有多个标记的自动居中地图
**编辑以获得更多答案**
//GET NODE LENGTH
function getNodeLength(nodeName, xmlNode){
return xmlNode.getElementsByTagName(nodeName).length;
}
//GET NODE VALUE
function getNodeValue(nodeName, xmlNode, i){
return xmlNode.getElementsByTagName(nodeName)[i].firstChild.nodeValue;
}
function getExtendedNodeValue(nodeName, xmlNode, i)
{
var node = "";
if(typeof(xmlNode.getElementsByTagName(nodeName)[i]) != "undefined" && xmlNode.getElementsByTagName(nodeName)[i].hasChildNodes())
node = xmlNode.getElementsByTagName(nodeName)[i].firstChild.nodeValue;
return node;
}
function getAttributeValue(i, nodename, data){
return data[i].getAttribute(nodename);
}
现在,根据您的情况,您可以使用上面的代码,如下所示:
var len = getNodeLength(xmlDoc,"CD");
for(i=0;i<len;i++)
{
var latLat = getExtendedNodeValue("COUNTRY",xmlDoc,i);
}
Generators 相关文章 The Basics Of ES6 Generators By Kyle Simpson ES6 generators in depth By Axel Rauschmayer redux-saga 相关文章 Redux nowadays : From actions creators to sagas By Riad Benguella Managing Side
全局配置 在 nuxt.config.js 中配置你想引用的资源文件: module.exports = { head: { script: [ { src: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js' } ], link: [ { rel: 'style
问题内容: 在我的pom.xml中,出现以下错误。我之所以要使用Spring 2 NTLM身份验证。 如果我添加以下内容。 我没有上面没有错误 编辑1 根据PSR的建议,添加以下依赖项时发生错误 问题答案: 问题会由于一种依赖关系而来,请尝试先删除所有显示的依赖关系,然后尝试逐一添加,然后我们才能找出问题所在
我有这个错误,我不知道它可能是什么,我留下了一些项目类 xml: 应用Context.xml: Principal.java 错误: SLF4J:未能加载类“org.SLF4J.impl.StaticLoggerBinder”。SLF4J:默认为无操作(NOP)记录器实现SLF4J:请参阅http://www.slf4j.org/codes.html#StaticLoggerBinder了解更多细
我对如何做到这一点有点困惑,所有的文档/示例都展示了如何读取和编辑xml文档,但似乎没有任何从头开始创建xml的明确方法,我宁愿不必将我的程序与虚拟xml文件一起发布以编辑一个。有什么想法吗?谢谢。
XML(可扩展标记语言)是一种非常流行的简单基于文本的语言,可用作不同应用程序之间的通信模式。 它被认为是传输和存储数据的标准方法。