ArcGIS 中怎么配准栅格图片?

葫芦鬼 2008-12-09 04:17:13
有一张.jpg图片, 比如说宽高分别是500, 500。

以图片左上角为基准,我想将此图片配准如下:

像素点坐标 经纬度坐标
(0, 0) (0, 0)
(0, 500) (0, 1)
(500, 500) (1, 1)

由于初次使用Arcgis, 不是很懂。网上google了下,以下是我的实现代码。运行结果是MapControl上没任何显示。不知道为什么?代码逻辑很简单,麻烦大家帮我看看。谢谢了。

//三点配准
{
IRasterLayerPtr pLayer(CLSID_RasterLayer);

BSTR wPath = A2BSTR(path.c_str());
HRESULT hr = pLayer->CreateFromFilePath(wPath);
::SysFreeString(wPath);
if(!SUCCEEDED(hr))
continue;

IGeoReferencePtr pGeoRef;
hr = pLayer.QueryInterface(__uuidof(IGeoReference), &pGeoRef);
if(!SUCCEEDED(hr))
continue;

VARIANT_BOOL canGeoRef = false;
hr = pGeoRef->get_CanGeoRef(&canGeoRef);
if(!SUCCEEDED(hr) || !canGeoRef)
continue;

IRasterPtr pRaster;
hr = pLayer->get_Raster(&pRaster);
if(!SUCCEEDED(hr))
continue;

IRasterPropsPtr pRasterProps;
hr = pRaster.QueryInterface(__uuidof(IRasterProps), &pRasterProps);
if(!SUCCEEDED(hr))
continue;

long width, height;
hr = pRasterProps->get_Width(&width);
if(!SUCCEEDED(hr))
continue;
hr = pRasterProps->get_Height(&height);
if(!SUCCEEDED(hr))
continue;

IPointCollectionPtr fromPts(CLSID_Polyline);

IPointPtr fromPointLeftTop(CLSID_Point);
hr = fromPointLeftTop->PutCoords(0, 0);
hr = fromPts->AddPoint(fromPointLeftTop);

IPointPtr fromPointLeftButtom(CLSID_Point);
hr = fromPointLeftButtom->PutCoords(0, height);
hr = fromPts->AddPoint(fromPointLeftTop);

IPointPtr fromPointRightButtom(CLSID_Point);
hr = fromPointRightButtom->PutCoords(width, height);
hr = fromPts->AddPoint(fromPointRightButtom);


IPointCollectionPtr toPts(CLSID_Polyline);

IPointPtr toPointLeftTop(CLSID_Point);
hr = toPointLeftTop->PutCoords(0, 0);
hr = toPts->AddPoint(toPointLeftTop);

IPointPtr toPointLeftButtom(CLSID_Point);
hr = toPointLeftButtom->PutCoords(0, 1);
hr = toPts->AddPoint(toPointLeftButtom);

IPointPtr toPointRightButtom(CLSID_Point);
hr = toPointRightButtom->PutCoords(1, 1);
hr = toPts->AddPoint(toPointRightButtom);

hr = pGeoRef->Warp(fromPts, toPts, 0);
if(!SUCCEEDED(hr))
continue;

hr = pGeoRef->Register();
if(!SUCCEEDED(hr))
continue;
}


...全文
2113 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
葫芦鬼 2009-05-17
  • 打赏
  • 举报
回复
已经实现,贴出关键代码。

hr = pGeoRef->Register();
if(!SUCCEEDED(hr))
continue;


IRasterGeometryProcPtr pRasterGProc(CLSID_RasterGeometryProc);
hr = pRasterGProc->Warp(fromPts, toPts, esriGeoTransPolyOrder1,pRaster);
if(!SUCCEEDED(hr))
continue;

hr = pRasterGProc->Register(pRaster);
if(!SUCCEEDED(hr))
continue;

hr = pGeoRef->Register();
if(!SUCCEEDED(hr))
continue;

IMapControl4Ptr smpMapControl = GetView()->GetMapControl()->GetIMapControl4Ptr();
smpMapControl->AddLayer(pLayer, 0);
Mi4USeeU 2009-04-22
  • 打赏
  • 举报
回复
用ARCGIS的Georeferencing工具实现如下:
1、先新建一个TXT文档,里面的内容如下:
象素点1的X坐标table象素点1的Y坐标table目标点1的X坐标table目标点1的Y坐标
象素点2的X坐标table象素点2的Y坐标table目标点2的X坐标table目标点2的Y坐标
。。。。。。
“table”的意思是一个table键的距离。写完之后保存。
2、在ARCMAP中调出Georeferencing工具条。
3、点击最后一个按钮“View link table”.把刚才的TXT文档load进来。确定,应该就OK了。

楼主用用代码实现?是做AO开发的吗?


liweifly 2009-04-21
  • 打赏
  • 举报
回复
利用arcgis配准后,加载图层上去就可以啊,不知道适合你的需求不
vladmir 2009-04-21
  • 打赏
  • 举报
回复
代码运行无误后应该是已经配准好的吧 或许是还没有更新到你的控件上

为什么不用gdal呢 gdal里有个warp工具很强大
qqstudent 2009-04-16
  • 打赏
  • 举报
回复
感觉好难哟,我是初学者,看不懂
luoweiliuz 2009-03-26
  • 打赏
  • 举报
回复
这个问题我也关注,请高手多多指教呀
Hiei30 2009-03-04
  • 打赏
  • 举报
回复
用ARCMAP配准后的TIF导入后周围变成黑色怎么处理呢?
liangtu0001 2009-02-10
  • 打赏
  • 举报
回复
学习学习。。。。


========================
给个纸质的地图,就可以扫描成电子版本的啦。专业大幅面扫描地图,扫描工程施工图纸,广州良图电子 电话:020-33851138 02083740297 13503004455
guyanf 2009-01-16
  • 打赏
  • 举报
回复
纠正后你再做一下保存和全屏显示,没有东西很可能是因为你纠正后的图形你不在原来的视野范围内
yangbin999288 2009-01-12
  • 打赏
  • 举报
回复
我感觉难度很大,而且不是很有这个必要的吗?
优途科技 2009-01-06
  • 打赏
  • 举报
回复
有点难度吧!
葫芦鬼 2008-12-25
  • 打赏
  • 举报
回复
回楼上的。我想知道用代码怎么实现。
shouzi57 2008-12-24
  • 打赏
  • 举报
回复
arcmap的工具菜单中有配准工具,选取点后输入坐标,各点输完后在配准菜单中确认。
shouzi57 2008-12-24
  • 打赏
  • 举报
回复
arcmap的工具菜单中有配准工具,选取点后输入坐标,各点输完后在配准菜单中确认。
shenzhou06789 2008-12-14
  • 打赏
  • 举报
回复
说的不明白,是在arcggis中配准还是其他方式?
葫芦鬼 2008-12-14
  • 打赏
  • 举报
回复
arcggis中配准啊。

2,143

社区成员

发帖
与我相关
我的任务
社区描述
它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。
社区管理员
  • 地理信息系统
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧