航易海图DLL完全遵循国际海图标准s-57、s-52标准开发,具有轻量级,加载速度快等特点,dll文件大小总共只有300KB。Dll文件函数调用简单,调用其中的函数和调用windows API一样简单。所有函数采用C语言编写,_stdcall调用方式,结构体1字节对齐。试用版本免费使用,但是会有提示字符。
1.海图引擎初始化,在使用之前要先进行初始化,请确保s57lib文件和dll在同一文件路径下,s57lib是海图的颜色及符号库。
int ecsIntil(int hwnd,int psw)
参数:hwnd ,整数型:要画海图的窗口句柄。
Psw, 整数型:dll秘钥,试用版本不传此参数。
返回值: 整数型 , 0 成功,>0 失败。
2.导入海图文件,文件必须为.000型的s57标准海图文件
Int loadEcs(char * file)
参数:file 文件路径,例如:“d/CN320001.000”。
返回值:=0成功 >0 失败,=11,已经载入相同文件名的海图。其他失败原因,非s57标准文件。
3.海图绘制,一般在窗口重新绘制的时候调用
paintEcs()
参数:无;
返回值:无。
4.获取当前显示比例尺
Int getScale()
参数:无;
返回值 整数型 ,比例尺。
5.设置显示比例尺,自动重绘海图。
setScale(int scale)
参数:scale 整数型 要显示的海图比例尺;
返回值:无。
6.显示模式,标准显示,基本显示,全部显示
setDisplaygroup(int model)
参数:model 整数型 ;
0 ,基本显示;
1,标准显示;
2,全部显示;
返回值:无。
7 设置安全等深线
setContour(int model);
参数: model 整数型;
5, 5米等深线;
10 ,10米等深线;
20 ,20米等深线;
返回值:无。
8.设置显示颜色
setDisplaycolor(int model);
参数: model 整数型;
1, 白天;
2 ,雨天;
3 ,阴天;
4,晴天;
5,夜间;
返回值:无。
9.是否显示边界
showBound(int model)
参数: model 整数型;
1, 显示;
2 ,不显示;
返回值:无。
10.是否显示水深
showSound(int model);
参数: model 整数型;
1, 显示;
2 ,不显示;
返回值:无。
11.中英文显示
setText(int model);
参数: model 整数型
1, 中文显示;
2 ,英文显示;
返回值:无
12.是否显示灯标描述
showLight(int model);
参数: model 整数型
1, 显示;
2 ,不显示;
返回值:无
13.移动海图
moveMap(int downx,int downy,int upx,int upy);
参数:downx 整数型 鼠标按下时的横坐标;
Downy 整数型 鼠标按下时的纵坐标;
upx 整数型 鼠标放开时的横坐标;
upy 整数型 鼠标放开时的纵坐标;
14.获取已载入海图的数目
Int getEcsnum();
参数:无;
返回值:海图数量。
15 获取当前已载入的海图列表,建议调用之前先获取已载入海图的数目。以便开辟数组内存空间。
Int getEcslist(Ecslist ecslist[]);
参数:ecslist[] Ecslist结构体数组,请以传址的方式调用,海图列表将会保存在此结构体数组中,输出参数。
Ecslist结构体:
struct Ecslist {
char* name; // 海图名称
int scale; //海图比例尺
float maxlat; //北至
float maxlon; //东至
float minlat;// 南至
float minlon;//西至
double R;//墨卡托海图参数
};
返回值:海图数目。
16.获取屏幕点的经纬度数值
getLatlon(int x,int y, GeoPoint *geopoint);
参数: x 整数型 横坐标;
Y整数型 纵坐标;
geopoint 类型 GeoPoint结构体指针,输出参数;
struct GeoPoint
{
double lon;//经度
double lat;//纬度
};
17 获取海图中心点经纬度坐标
getCenter( GeoPoint *center);
参数:center GeoPoint结构体指针(见上一函数),输出参数;
返回值:无。
18 删除某张已加载海图
Bool deleteEcs(char *mapname);
参数: mapname char * 要删除的海图名称 ,与获取海图列表函数中名称一致
返回值: 逻辑型 true 成功 false 失败
19 将经纬度坐标转换为屏幕坐标
getxy(POINT *pointout , GeoPoint *point)
参数: pointout POINT 指针类型 输出参数,屏幕坐标
struct POINT
{
Long X;//横坐标
Long Y;//纵坐标
};
Point GeoPoint 结构体指针(见上文), 输入参数 经纬度坐标 ,单位 度, 例如39度30分,请转化为39.5传入。
官方网址:http://www.sailxy.com
更多海图开发事宜,或者需要正版 dll,请扫码添加微信lvxin6136