查看: 3246|回复: 6

访问发布到ArcGIS Server 上的shp数据问题!

[复制链接]

该用户从未签到

发表于 2013-10-15 16:35:54 | 显示全部楼层 |阅读模式
我发布了shp的矢量数据到ArcGIS Server上,现在想访问可是出项了问题,没有加载成功!
下面是我的代码:

Style arcgisStyle;
        LineSymbol* ls=arcgisStyle.getOrCreateSymbol<LineSymbol>();
        ls->stroke()->color()=Color::Yellow;
        ls->stroke()->width()=8.0f;
        arcgisStyle.getOrCreate<osgEarth::AltitudeSymbol>()->clamping() = AltitudeSymbol::CLAMP_RELATIVE_TO_TERRAIN;   
        arcgisStyle.getOrCreate<osgEarth::AltitudeSymbol>()->technique() =osgEarth::AltitudeSymbol::TECHNIQUE_DRAPE;
        arcgisStyle.getOrCreate<osgEarth::AltitudeSymbol>()->binding() = osgEarth::AltitudeSymbol::BINDING_VERTEX;

        osgEarth:rivers::ArcGISOptions arcgisonline;
        arcgisonline.url()=osgEarth::URI(" http://192.168.2.103:6080/arcgis ... %E6%9E%9C/MapServer");
        osgEarth::Drivers::FeatureGeomModelOptions arcGeomOptions;
        arcGeomOptions.featureOptions()=arcgisonline;
        arcGeomOptions.styles()=new StyleSheet();
        arcGeomOptions.styles()->addStyle(arcgisStyle);
        arcGeomOptions.enableLighting()=false;
        ModelLayerOptions arcLayerOptions("china_boundaries",arcGeomOptions);
        arcLayerOptions.overlay()=true;
        map->addModelLayer(new ModelLayer(arcLayerOptions));

QQ截图20131013200715.png

该用户从未签到

 楼主| 发表于 2013-10-15 16:46:32 | 显示全部楼层
求指教

该用户从未签到

发表于 2013-10-16 12:39:54 | 显示全部楼层
额,你的osgearth_arcgis插件编译了吗?貌似是找不到啊

该用户从未签到

 楼主| 发表于 2013-10-16 20:56:13 | 显示全部楼层
wanggang8826 发表于 2013-10-16 12:39
额,你的osgearth_arcgis插件编译了吗?貌似是找不到啊

感谢你的回复!
我之前是这样访问发布到ArcGIS Server 上的shp数据并加载到地球中,但是它是图片。

        osgEarth:rivers::ArcGISOptions arcgisonline;
        arcgisonline.url()=osgEarth::URI("http://10.5.9.14:6080/arcgis/rest/services///%E5%85%A8%E5%9B%BD%E9%85%8D%E5%87%86%E6%88%90%E6%9E%9C/MapServer");
        std::string CdlayerName="worldshp";
        osg::ref_ptr<osgEarth::ImageLayer> worldllayer =new osgEarth::ImageLayer(osgEarth::ImageLayerOptions(CdlayerName,MapImageLayer));
        map->addImageLayer( worldllayer .get());
QQ截图20131016205043.png

现在我想把数据加载成像本地shp数据那样!就像下面这种:
QQ截图20131016205248.png

第一次访问成功说明插件没有问题,但是怎么想、实现下面的效果呢而不是图片?

还想请教你一个问题。
在earth文件通过设置“ <feature_indexing >true</feature_indexing >”参数来实现feature查询的开关,但是在程序中该怎么设置这个参数呢? 我找了好久都没找到。谢谢你的回复

该用户从未签到

发表于 2013-10-17 09:39:01 | 显示全部楼层
从命令行的错误提示信息看,是缺少osgearth_feature_arcgis插件,但是貌似osgearth里面没有这个插件啊。估计osgEarth:rivers::FeatureGeomModelOptions arcGeomOptions;
        arcGeomOptions.featureOptions()=arcgisonline; 不能这样使用吧。

第2个问题,你查看一下osgearth源代码FeatureModelSource头文件
FeatureModelSourceOptions opt;
opt.featureIndexing()=true;

该用户从未签到

 楼主| 发表于 2013-10-17 14:57:32 | 显示全部楼层
wanggang8826 发表于 2013-10-17 09:39
从命令行的错误提示信息看,是缺少osgearth_feature_arcgis插件,但是貌似osgearth里面没有这个插件啊。估计 ...

谢谢朋友的及时回复!
(1)我发现那样访问ArcGIS 服务是错误的
(2)我看了源代码也发现:optional<FeatureSourceIndexOptions>& featureIndexing() { return _featureIndexing; }
                                             optional<FeatureSourceIndexOptions> _featureIndexing;不能赋给true,这样程序出错了!

该用户从未签到

 楼主| 发表于 2013-10-17 16:03:54 | 显示全部楼层
wanggang8826 发表于 2013-10-17 09:39
从命令行的错误提示信息看,是缺少osgearth_feature_arcgis插件,但是貌似osgearth里面没有这个插件啊。估计 ...

在你的提示下我是这样解决的问题:

osgEarth:rivers::FeatureGeomModelOptions geomOptions;
geomOptions.featureOptions()=featureOptions;
、、、、、、、、、、、、、、、、、、、、、
geomOptions.featureIndexing().operator->();
这样就可以查询了。
效果图如下:
QQ截图20131017160301.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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