楼主: ago

OSG3.3.1和osgEarth2.5 VC10编译包(附源码)

[复制链接]

该用户从未签到

发表于 2013-6-20 23:50:06 | 显示全部楼层
l楼主您好,我要用到OSGEarthQt,但是还没有解决中文标签乱码问题,能否告诉我一下?谢了!

该用户从未签到

发表于 2013-6-25 15:11:05 | 显示全部楼层
新人前来学习。  感谢版主分享~~~!!

该用户从未签到

发表于 2013-6-29 08:59:20 | 显示全部楼层

谢谢楼主分享!

该用户从未签到

发表于 2013-7-23 20:25:10 | 显示全部楼层
楼楼您好,请问矢量和标签的汉化是怎么实现的啊?方便分享一下吗.我查了下资料,能不能帮忙看下这个方法应该怎样修改
①标签:
osgEarth::Util::Controls::Grid *grid=new Grid();
std::wstring mss=(L"中国");
std::string ss=osgDB::convertUTF16toUTF8(mss);
LabelControl* label=new LabelControl(ss);
grid->setControl(0,0,label);
ControlCanvas::get(&viewer,true)->addControl(grid);
//需要为LabelControl设置style吗?应该怎么把下面的style跟LabelControl关联起来呢?
osgEarth::Annotation::Symbology::Style labelStyle;
labelStyle.getOrCreate<TextSymbol>()->encoding()=TextSymbol::ENCODING_UTF8;
labelStyle.getOrCreate<TextSymbol>()->font()=std::string("E:/simhei.ttf");
②矢量:
TextSymbol* text=style.getOrCreateSymbol<TextSymbol>();
text->content()=StringExpression("[Name]");
text->priority()=NumericExpression("[pop_cntry]");
text->removeDuplicateLabels()=true;
text->size()=16.0f;
text->fill()->color()=Color::White;
text->halo()->color()=Color:arkGray;
text->encoding()=osgEarth::Symbology::TextSymbol::ENCODING_UTF8;
text->font()="E:/simhei.ttf";
OGRFeatureOptions featureOptions;
featureOptions.url()="E:/data/chinashp.shp";
FeatureGeoModelOptions geomOptions;
geomOptions.featureOptions()=featureOptions;
geomOptions.styles()=new StyleSheet();
geomOptions.styles()->addStyle(style);
ModelLayerOptions layerOptions("chinashp",geomOptions);
layerOptions.overlay()=true;
map->addModelLayer(new ModelLayer(layerOptions));

该用户从未签到

 楼主| 发表于 2013-7-29 22:20:18 | 显示全部楼层
编译包采用的中文支持方式,是通过修改源代码实现的,实现方式和常用的osg汉子支持方式相同,

转宽字符并使用中文字体

该用户从未签到

 楼主| 发表于 2013-7-29 22:21:42 | 显示全部楼层
vampire_ljw 发表于 2013-7-23 20:25
楼楼您好,请问矢量和标签的汉化是怎么实现的啊?方便分享一下吗.我查了下资料,能不能帮忙看下这个方法应该 ...

编译包采用的中文支持方式,是通过修改源代码实现的,实现方式和常用的osg汉子支持方式相同,

转宽字符并使用中文字体

该用户从未签到

 楼主| 发表于 2013-7-29 22:24:34 | 显示全部楼层
lovegrass 发表于 2013-6-20 23:50
l楼主您好,我要用到OSGEarthQt,但是还没有解决中文标签乱码问题,能否告诉我一下?谢了!

OSGEarthQt和osgQt库比较简单,如果想用,可以将代码拷贝过来用即可,可避免Qt版本更新重新编译osgEarth的麻烦

该用户从未签到

发表于 2013-7-30 19:48:13 | 显示全部楼层
请教一下ago是如何实现矢量标签支持中文的?修改源码的什么地方呢

该用户从未签到

发表于 2013-8-6 09:59:56 | 显示全部楼层
谢谢楼主的分享呀

该用户从未签到

发表于 2013-8-7 16:56:44 | 显示全部楼层
ago 发表于 2013-7-29 22:21
编译包采用的中文支持方式,是通过修改源代码实现的,实现方式和常用的osg汉子支持方式相同,

转宽字 ...

请问是这样解决的吗?我在PC端是这样改的成功了,但是Android端还是乱码 1.png

该用户从未签到

发表于 2013-8-7 16:57:40 | 显示全部楼层
//Modified by Jovi**********************************
    //t->setText( text, text_encoding );
        setlocale(LC_ALL,"chs");
        int wSize=text.size()*2+2;
        wchar_t* wtext=new wchar_t[wSize+1];
        memset(wtext,0,wSize+1);
        mbstowcs(wtext,text.c_str(),wSize);
        t->setText(wtext);
        delete[] wtext;
        wtext=NULL;

        //Modified by Jovi**********************************
pC端这样解决的,Android端还是乱码

该用户从未签到

发表于 2013-8-12 11:07:14 | 显示全部楼层
果然是神人

该用户从未签到

发表于 2013-8-13 11:00:08 | 显示全部楼层
挺好用的

该用户从未签到

发表于 2013-8-26 22:34:58 | 显示全部楼层
编译出来,一直没有纹理。试试楼主这个看看怎么样

该用户从未签到

发表于 2013-9-6 00:41:35 | 显示全部楼层
楼主,新人请教个问题,cmake的时候提示我找不到osgqt,没法build出来工程,能请教下怎么根据osgqt源代码编译出所需的dll和lib么……ps:我是从osg官网下的最新的代码,里面有osgqt,但是make出来的工程里面没有osgqt

该用户从未签到

发表于 2013-12-12 09:17:55 | 显示全部楼层
先顶一个 楼主辛苦啦
  • TA的每日心情
    开心
    2023-10-26 21:41
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2013-12-25 17:32:55 | 显示全部楼层
    个人建议,在论坛增加一个版面,提供这些预编译包的下载,这样更直接,就像Qt一样~

    该用户从未签到

    发表于 2013-12-27 09:58:46 | 显示全部楼层
    楼主,我编译的时候遇到了这个错误,见下图。是因为我的libcurl.dll太新了吗?好纠结
    QQ图片20131227091734.jpg

    该用户从未签到

    发表于 2013-12-27 16:34:15 | 显示全部楼层
    正在创建库 E:/XHM/SSIT_OSG3.2.0_OSGEarth2.5.0_VS2012/osgearth_2.5/lib/Debug/osgEarthd.lib 和对象 E:/XHM/SSIT_OSG3.2.0_OSGEarth2.5.0_VS2012/osgearth_2.5/lib/Debug/osgEarthd.exp
    GeoData.obj : error LNK2019: 无法解析的外部符号 "void * __cdecl nv::mem::malloc(unsigned __int64)" (?malloc@mem@nv@@YAPEAX_K@Z),该符号在函数 "void * __cdecl operator new(unsigned __int64)" (??2@YAPEAX_K@Z) 中被引用
    ImageLayer.obj : error LNK2001: 无法解析的外部符号 "void * __cdecl nv::mem::malloc(unsigned __int64)" (?malloc@mem@nv@@YAPEAX_K@Z)
    ImageUtils.obj : error LNK2001: 无法解析的外部符号 "void * __cdecl nv::mem::malloc(unsigned __int64)" (?malloc@mem@nv@@YAPEAX_K@Z)
    TerrainLayer.obj : error LNK2001: 无法解析的外部符号 "void * __cdecl nv::mem::malloc(unsigned __int64)" (?malloc@mem@nv@@YAPEAX_K@Z)
    GeoData.obj : error LNK2019: 无法解析的外部符号 "void __cdecl nv::mem::free(void const *)" (?free@mem@nv@@YAXPEBX@Z),该符号在函数 "void __cdecl operator delete(void *)" (??3@YAXPEAX@Z) 中被引用
    ImageLayer.obj : error LNK2001: 无法解析的外部符号 "void __cdecl nv::mem::free(void const *)" (?free@mem@nv@@YAXPEBX@Z)
    ImageUtils.obj : error LNK2001: 无法解析的外部符号 "void __cdecl nv::mem::free(void const *)" (?free@mem@nv@@YAXPEBX@Z)
    TerrainLayer.obj : error LNK2001: 无法解析的外部符号 "void __cdecl nv::mem::free(void const *)" (?free@mem@nv@@YAXPEBX@Z)
    E:\XHM\SSIT_OSG3.2.0_OSGEarth2.5.0_VS2012\osgearth_2.5\lib\Debug\osgEarthd.dll : fatal error LNK1120: 2 个无法解析的外部命令


    osg3.3.0+VS2012 64bit链接的时候出现上述的错误,不知道是哪个库不对。。。。。

    该用户从未签到

    发表于 2013-12-29 15:03:27 | 显示全部楼层
    做编译包,包括里面的可运行案例,就是为了让大家对osgEarth有个快速的认识,这样的教程太好了。

    该用户从未签到

    发表于 2014-1-16 15:06:29 | 显示全部楼层
    顶下楼主,有个问题求教
    包里批量建筑 osgearth_viewer boston_bulidings.earth --sky
    ERROR 6 : unable to load PROJ.4 library <proj.dll> creation of OGRCoordinateTransformation failed......SRS xform not possible
    建筑没有,地球显示出来了,这个是什么情况

    该用户从未签到

     楼主| 发表于 2014-1-17 09:35:50 | 显示全部楼层
    本帖最后由 ago 于 2014-1-17 09:50 编辑
    ullullu 发表于 2014-1-16 15:06
    顶下楼主,有个问题求教
    包里批量建筑 osgearth_viewer boston_bulidings.earth --sky
    ERROR 6 : unabl ...


    proj.dll (215 KB, 下载次数: 46)

    该用户从未签到

    发表于 2014-1-19 00:59:35 | 显示全部楼层
    对楼主感激不尽啊~~ 编译了N次研究的我都要崩溃了~~希望这个能搞定

    该用户从未签到

    发表于 2014-3-6 16:30:25 | 显示全部楼层
    楼主,请问osg3.3.1出来了吗?怎么我在官网上只找到了osg3.2的源码

    该用户从未签到

    发表于 2014-3-6 16:37:04 | 显示全部楼层
    vampire_ljw 发表于 2014-3-6 16:30
    楼主,请问osg3.3.1出来了吗?怎么我在官网上只找到了osg3.2的源码

    看到了,在Developer Releases里面

    该用户从未签到

    发表于 2014-3-18 09:11:39 | 显示全部楼层
    顶一下!感谢楼主!
  • TA的每日心情
    开心
    2023-10-26 21:41
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2014-3-28 19:13:26 | 显示全部楼层
    版主:你这个osg3.3.1和osgEarth2.5 VC10编译包缺少proj.dll,另外,例子运行都报好像缺少javascript插件错误

    该用户从未签到

     楼主| 发表于 2014-3-28 23:15:19 | 显示全部楼层
    csdn 发表于 2014-3-28 19:13
    版主:你这个osg3.3.1和osgEarth2.5 VC10编译包缺少proj.dll,另外,例子运行都报好像缺少javascript插件错 ...

    可以重新下载,proj.dll后来加上了

    javascript插件没有编译,报不报错没有关系

    该用户从未签到

    发表于 2014-4-9 09:42:59 | 显示全部楼层
    请问LZ,我用LZ的编译包,做测试例子的时候,编译没有问题,程序运行的时候,就出现提示:could not find plugin to read objects from file “XXX.earth”

    我的机器是64位win7,vs10
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    OSG中国官方论坛-有您OSG在中国才更好

    网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

    联系我们

    • 工作时间:09:00--18:00
    • 反馈邮箱:1315785073@qq.com
    快速回复 返回顶部 返回列表