帮朋友忙,弄一个水利相关的MAP地图查询程序.
功能:  在地图上显示一个城市的地图,点击其中的河流与桥时 会弹出框显示名字和实拍的照片
计划将数据的 查询 与 更改 作成2个程序我以前没接触过GIS相关的东西,有些问题想咨询一下各位前辈
1.这个程序可以用DELPHI+MAPX来开发吗?  delphi很熟悉,MAPX以前没接触过
2.地图上的那些桥梁河流信息能在程序完工后,后期输入吗?地图的缩放会不会影响到这些信息点
3.城市地图上的那些河流与桥梁会随着城市建设而发生变化,这个在程序中应该怎么作?(我的意思是指新建一座桥或是新挖一条河,我在地图上怎么处理,也就是说我能在程序完工后更改城市地图吗?实现的难度如何?)这个程序如果要实现C/S结构,那些桥梁的信息可以放在数据库里,局域网使用应该没问题.
最初的城市地图(这个数据量会不会很大?没有什么概念)直接打包安装到客户端,但是后期如果更改地市地图的话,这个该怎么作呢? (直接修改城市地图,客户端下载更新吗? 这个城市地图应该直接以文件的形式保存的吧)  

解决方案 »

  1.   

    1,当然可以用DELPHI+MAPX来开发了
    2,MapX是个ocx控件,程序在运行时加栽城市地图的
    3,新建一座桥或是新挖一条河时可以用mapinfo来修改地图,然后客户端下载更新地图(也可以用数据库)
      

  2.   

    這裡比較全面: http://map.51mapinfo.com/post/21136.html
      

  3.   

    地图是矢量的,客户提供或者购买吧。有支持mapx的地图格式
      

  4.   

    要求不高的话 直接图片操作就行了 不用MAPX
    mapx肯定能 实现。
      

  5.   

    能不能在delphi+mapx的基础上修改城市地图?不用其它额外的工具对mapx不了解,能否实现 
     鼠标移到地图上时,在一座桥上显示桥的虚框(这个虚框是不规则图形,象游戏里一样),会有消息提示(提示这是**桥),单击时会弹出一个panel,显示实拍图片
      

  6.   

    1.这个程序可以用DELPHI+MAPX来开发吗? delphi很熟悉,MAPX以前没接触过
       可以的,我做过相关的. 2.地图上的那些桥梁河流信息能在程序完工后,后期输入吗?地图的缩放会不会影响到这些信息点
       可以加标注(要有具体的经纬度),缩放不会影响到,只要你设置好他的属性3.城市地图上的那些河流与桥梁会随着城市建设而发生变化,这个在程序中应该怎么作?(我的意思是指新建一座桥或是新挖一条河,我在地图上怎么处理,也就是说我能在程序完工后更改城市地图吗?实现的难度如何?)
       如果你的桥梁是在图层最上方加标注的话,这个可以修改数据库中的经纬度来实现,没有什么难度,如果你要修改地图的话,你学一下MapInfo Professional,可以修改的 我用的是MapInfo Professional 8.5 SCP
      

  7.   

    鼠标移到地图上时,在一座桥上显示桥的虚框(这个虚框是不规则图形,象游戏里一样),会有消息提示(提示这是**桥),单击时会弹出一个panel,显示实拍图片这个能实现吗?
      

  8.   

    这个可以实现的,在Map控件的MouseMove事件中写
    procedure TMainForm.MainMapMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    var Lon: Double;
        lat: Double;
        fs:MapXLib_TLB.Features;
        pnt:Point;
        X_X, Y_Y: Single;
    begin
      //鼠标移动到桥梁时显示相关数据
      if MainMap.CurrentTool = miPanTool then
      begin
        X_X := X;  Y_Y := Y;
        MainMap.ConvertCoord(X_X, Y_Y,Lon,lat,miScreenToMap);
        pnt := copoint.Create;
        pnt.Set_(Lon, lat);    fs := MainMap.Layers['QYMAP'].SearchWithinDistance(pnt,200,miUnitMeter,miSearchTypeCentroidWithin);
        if fs.Count >0 then
        begin
          //显示你的Panel过程
          ShowYourPanel;
        end;
      end;  //当为测距时
      if MainMap.CurrentTool = CUSTOM_RULER_TOOL then RulerToolExecute(X,Y,mbLeft,mmMove);//mbLeft没有实际意义,只是作为参数
    end;
      

  9.   

    使用mapinfo空间数据和程序的具体实现是分离的,也就是gis的功能如测距、计算面积、目标跟踪、行程计算等等都是在程序内设计好,一旦设计好之后和具体地图没有关系,mapinfo的地图可以存储在本地计算机的mapinfo数据表内,一般是一个配置文件(gst)和各个图层的数据表(id,map,tab)组成一张地图,当然也可以在空间数据库内存储,程序和地图通过mapx连接到一起,如果使用数据库还要mapinfo的数据访问组件。像旋转、缩放、选择、图元提示等等这些基本显示功能mapx当然已经有了,测距、面积计算也有,投影计算、自定义坐标系(如常用的西安80和北京54)这些都有,毕竟当如卖数万大元领导业界好几年呢。