• MapPoint批量导入Pushpin的方法


    MapPoint中常规方法插入Pushpin是:
    MapPoint.Pushpin pii = map.AddPushpin(loc, "name1");
    if(balloonState == 0)
     pii.BalloonState = GeoBalloonState.geoDisplayBalloon;
    else if(balloonState == 1)
     pii.BalloonState = GeoBalloonState.geoDisplayName;
    else
     pii.BalloonState = GeoBalloonState.geoDisplayNone;
    pii.Symbol = symbol;
    pii.Highlight = highLight;
    pii.Note = "info1";
    但这种方法地插入大量标记时速度非常慢,在4000个时大约需要9分钟。
    机器配置是Pentium(R) D CPU 2.80GHz, 1.00GB内存。

    在微软MapPoint论坛提问,回答说用VC写一个插件来批量插入Pushpin,可以避免Com/Interop的包装时间损耗,速度会快一些。
    但那样的话,客户端布置麻烦。
    因此,我试着用以下方式来提速。
    如果不要求加亮或BalloonState,则速度更快,在5秒钟左右。

    从数据库中读取数据并生成如下格式字符串,
    其中, Name为pushpin的名称, info为提示字段, Latitude和Longitude为点的经纬度坐标

    Name    Info    Latitude    Longitude
    name1   info1    39.9456    75.0861
    nam2     info2    39.9625    75.0875

    再写一个函数实现导入pushpin功能, 并可以设定pushpin的符号, 是否加亮, 提示状态BalloonState.

    protected bool ImportData(string content, int balloonState, bool highLight, short symbol)
    {

        
    construct the fields array

        
    write temp file

        
    import data and set pushpin features

    }

  • 相关阅读:
    019_linuxC++之_函数模板引入
    018_linuxC++之_抽象类的引入
    017_linuxC++之_多态的引入
    《将博客搬至CSDN》
    016_linuxC++之_多重继承
    013_linuxC++之_派生类中权限的调整
    015_linuxC++之_覆写
    014_linuxC++之_不同类型的继承
    012_linuxC++之_类的继承定义
    011_linuxC++之_继承的引入
  • 原文地址:https://www.cnblogs.com/panyee/p/460088.html
Copyright © 2020-2023  润新知