0

旅程ポイントを解析する Bing Maps から XML を返すコードがあります。興味深いことに、視覚的に表示しているときに、Bing の動作がおかしいことがわかりました。したがって、交差点のない直線道路でポイントが得られることがあります。必要以上に多くのポイントを受け取っているため、これは私のアプリの問題です。

質問: タグ : ManouverTypeが keepStraight または continueRoute であるポイントを削除したいと思います。

XMLは次のようになります

<ItineraryItem>
<TravelMode>Driving</TravelMode>
<TravelDistance>0.586</TravelDistance>
<TravelDuration>66</TravelDuration>
<ManeuverPoint>
<Latitude>46.086102</Latitude>
<Longitude>19.679518</Longitude>
</ManeuverPoint>
<Instruction maneuverType="EnterThenExitRoundabout">At roundabout, take 1st exit onto Ulica Bajnatska</Instruction>
<CompassDirection>west</CompassDirection>
<Detail>
<ManeuverType>EnterRoundabout</ManeuverType>
<StartPathIndex>2</StartPathIndex>
<EndPathIndex>4</EndPathIndex>
<CompassDegrees>208</CompassDegrees>
<Mode>Driving</Mode>
<PreviousEntityId>0</PreviousEntityId>
<NextEntityId>0</NextEntityId>
<RoadType>Arterial</RoadType>
</Detail>
<Detail>
<ManeuverType>ExitRoundabout</ManeuverType>
<StartPathIndex>4</StartPathIndex>
<EndPathIndex>8</EndPathIndex>
<Name>Ulica Bajnatska</Name>
<CompassDegrees>250</CompassDegrees>
<Mode>Driving</Mode>
<PreviousEntityId>0</PreviousEntityId>
<NextEntityId>0</NextEntityId>
<RoadType>Arterial</RoadType>
</Detail>
...

私のコードは次のようになります

 public List<CGeoPoint> GetItin(CGeoPair latlongpair)
    {
        string RequestText = CreateRequest(latlongpair.GeoPoint1, latlongpair.GeoPoint2);
        XmlDocument locationsResponse = MakeRequest(RequestText);

        List<CGeoPoint>  itin  = new List<CGeoPoint>();

        XmlNodeList nList = locationsResponse.GetElementsByTagName("ManeuverPoint");

        foreach (XmlNode node in nList)
        {
            decimal d1 = decimal.Parse(node.ChildNodes[0].InnerText);
            decimal d2 = decimal.Parse(node.ChildNodes[1].InnerText);

            CGeoPoint ll = new CGeoPoint(d1, d2);
            itin.Add(ll);
      }
      return itin;
    }  

このコードは、各 ItineraryItem の緯度と経度を返しました

4

1 に答える 1