2014-01-24 162 views
1

我试图使用XML文件在Google地图上显示一些标记。Google地图XML标记

我似乎能够让标记显示确定,但我想知道我可以如何过滤它们。

所讨论的XML如下所示;

<?xml version="1.0" encoding="utf-16"?> 
<OutageData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <TimeStamp>2014-01-24T11:33:41.665165+00:00</TimeStamp> 
    <Outages> 
    <Outage> 
     <Region>South West</Region> 
     <IncidentID>INCD-30315-k</IncidentID> 
     <ConfirmedOff>4</ConfirmedOff> 
     <PredictedOff>0</PredictedOff> 
     <Restored>0</Restored> 
     <Status>In Progress</Status> 
     <Planned>false</Planned> 
     <StartTime>2014-01-24T09:30:00</StartTime> 
     <ETR xsi:nil="true" /> 
     <Voltage>LV</Voltage> 
     <PostCodes> 
     <string>TR20 8UJ</string> 
     </PostCodes> 
     <Sensitive>0</Sensitive> 
     <Location lat="50.13206" lng="-5.5528" /> 
    </Outage> 
    <Outage> 
     <Region>South West</Region> 
     <IncidentID>INCD-30342-k</IncidentID> 
     <ConfirmedOff>7</ConfirmedOff> 
     <PredictedOff>0</PredictedOff> 
     <Restored>0</Restored> 
     <Status>In Progress</Status> 
     <Planned>true</Planned> 
     <StartTime>2014-01-24T09:00:00</StartTime> 
     <ETR xsi:nil="true" /> 
     <Voltage>LV</Voltage> 
     <PostCodes> 
     <string>TR4 8AL</string> 
     <string>TR4 8AN</string> 
     <string>TR4 8AP</string> 
     <string>TR4 8AW</string> 
     <string>TR4 8FE</string> 
     </PostCodes> 
     <Sensitive>4</Sensitive> 
     <Location lat="50.28881" lng="-5.236961" /> 
    </Outage> 
</Outages> 
</OutageData> 

但是我只想显示Planned值为'false'的标记。 所以从上面的数据来看,只有一个标记应该显示在地图上。

我目前使用的代码是jQuery代码;

jQuery.get("/dataNew.xml", {}, function (data) { 
     jQuery(data).find("Outage").each(function() { 

       $(this).find("Location").each(function() { 
        var marker = jQuery(this); 
        var latlngNew = new google.maps.LatLng(parseFloat(marker.attr("lat")), 
              parseFloat(marker.attr("lng"))); 
        var marker = new google.maps.Marker({ position: latlngNew, map: map }); 
       }); 

     }); 
    }); 

如果任何人能够指出我在正确的方向,我会非常感激。

亲切的问候,

克里斯

回答

1

如果您在每次获得计划节点的值,如果你可以简单地阻止你不想点的绘制。类似于:(未经测试)

jQuery.get("/dataNew.xml", {}, function (data) { 
    jQuery(data).find("Outage").each(function() { 
      if($(this).find("Planned").text() == "true") 
      { 
       $(this).find("Location").each(function() { 
        var marker = jQuery(this); 
        var latlngNew = new google.maps.LatLng(parseFloat(marker.attr("lat")), 
              parseFloat(marker.attr("lng"))); 
        var marker = new google.maps.Marker({ position: latlngNew, map: map }); 
       }); 
      } 

    }); 
}); 
+0

我想我设法让它采用类似的方式,但是通过创建'Planned'语句作为变量并将其添加到'if'语句中。这个解决方案也是一样。感谢您的帮助。 –