仙人指路的编程乐园
留言簿 主人介绍 返回主页
Windows驱动 毕设 电子电路 电脑 PE外壳 心情 Windows应用程序 随笔 Web技术 加密算法 古老的DOS编程 杂项
MapInfo/MapX求最短路径(3)
类别: Windows应用程序  上传时间: 2010-5-2 22:55:47  浏览(83)  留言(0) 
接前一篇(2),还有个要求就是鼠标必须把起始点和和结束点放到道路上,或是是十分接近道路的地方,算是个缺憾吧

//求最短路径,得到路径长度,经过的道路的名称
function TfrmMapX.GetMinRoute(var RouteLength: double; var RoadNames: string): boolean; //求最短路径
  var
    routefea: CMapXFeature;
    lyr: CMapXLayer;
  begin
    Result := False;

    //验证
    if uMrStartPt.RoadID <= 0 then
    begin
      ShowMessage('起始点没有在主要道路上');
      Exit;
    end;
    if uMrEndPt.RoadID <= 0 then
    begin
      ShowMessage('结束点没有在主要道路上');
      Exit;
    end;

    if uSeekRouteObj = NIL then
      uSeekRouteObj := TSeekRoute.Create(uMrConn, Map1, uMrCroScope);
    routefea := uSeekRouteObj.GetOptiRoute(uMrStartPt, uMrEndPt, RoadNames);

    if routefea <> NIL then
    begin
      routefea.Style := uMrRouteStyle;
      lyr := GetMarkLayer(uMrLyrNames[1]);
      lyr.AddFeature(routefea, EmptyParam);
      RouteLength := routefea.Length;
      routefea := NIL;
      Result := True;
    end;
  end;
上一篇: 加壳时把资源节(段)移位  下一篇: 一个使用内存映射方式读写文件的类


留言
 
查看全部留言



Copyright © 2009 BY MISSSIR,网站版权所有。 京ICP备09095257号

花褪残红青青杏小。燕子飞时,绿水人家绕。枝上柳绵吹又少。天涯何处无芳草。
墙里秋千墙外道。墙外行人,墙里佳人笑。笑渐不闻声渐悄。多情总被无情恼。

今年访问量 24099  今月访问量 659  今日访问量 62 

关于 您的地址
您的大名 您的邮箱
QQ/MSN/Tel 是否保密
留言内容