2014-01-24 195 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'語句中。這個解決方案也是一樣。感謝您的幫助。 –