Google Map XML标记

时间:2014-01-24 12:59:32

标签: jquery xml google-maps google-maps-api-3

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

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

有问题的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 个答案:

答案 0 :(得分: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 });
                });
            }

    });
});