don't execute the ESRI's command, just find out and write codes to zoom to the raster resolution. Here they are, I hope they will help.

Unfortunately (to you) I wrote these codes under C#. I hope you could manage the transfer these codes to VB. If not, feel free to contact me for further help. Because of this I'll write here some theory of mine too.

There are two possible way to solve this question. 
1. You want to run this under ArcMap (ArcCatalog) environment. 
2. You want to use this under your own MapControl and ToolBarControl with a raster (picture) where the Spatial Reference wasn't set.

My solutions: 
1. 
You can work with MxDoc and you have set up Spatial Reference for the Map. Therefore you can use the IRasterOutputSettings::RasterRatio method, which will give back the necessary ratio (number). 
In this case you can cast (QI in VB) to this interface from IDisplayTransformation. 
Finally the formula here to calculate the raster resolution is:

new map scale = old map scale / raster ratio.

See the code later.

2. 
If you use a raster or a picture (in my case it was a raster from a raster field directly) and the Spatial Reference wasn't set for the layer or a map the raster ratio will give back 1, and it isn't so useful in the previous dividing formula. In this case you have to query the size of the mapcontrol, the size of the raster layer and use them in this relation formula:

map control width / raster width = wanted map scale / known, FULL extent map scale.

(If you want to use this later then you have to store the very first or the necessary raster full extent's scale! In the sample code below I didn't do that.)

from this:

wanted map scale = map control width / raster width * known, FULL extent map scale.

I hope these will help.

And the (C#) code cores are... 

 
1.:
//get MxDocumnet, cast (QI in VB), under VBA you can use it instantly
IMxDocument mxDoc = m_app.Document as IMxDocument;
//get the ActiveView
IActiveView pActiveView = mxDoc.ActiveView; //get the DisplayTransformation
IDisplayTransformation pDisplayTransformation = pActiveView.ScreenDisplay.DisplayTransformation;
//the scale of the map (the IMap::MapScale is a shortcut to this method)
double mapScale = pDisplayTransformation.ScaleRatio; //get the RasterOutputSettings, with a cast (QI in VB) from IDisplayTransformation
IRasterOutputSettings pRasterOutputSettings = pDisplayTransformation as IRasterOutputSettings;
//raster ratio, see the help for discussion of the ratio number
double rasterRatio = pRasterOutputSettings.RasterRatio; //the formula for the raster resolution
pDisplayTransformation.ScaleRatio = (mapScale / rasterRatio) //refreshing the map
pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); 2.:
//get the Map
IMap pMap = m_HookHelper.FocusMap;
//get the raster layer, with cast (QI in VB) from ILayer, in my map it was the layer at 0 index
IRasterLayer pRasterLayer = pMap.get_Layer( 0 ) as IRasterLayer; //width of the MapControl control on the form
int controlWidth = pMapControl.Width;
//because in the formula, you have to use the width as an explicitly converted double number in C#
double controlW = Convert.ToDouble( controlWidth ); //the formula for the raster resolution
pMap.MapScale = (controlW / pRasterLayer.ColumnCount * pMap.MapScale) //get the ActiveView
IActiveView pActiveView = m_HookHelper.ActiveView;
//refreshing the map
pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);

zoom to raster resolution的更多相关文章

  1. openlayers-热地图加载(完整版及代码)

    //地圖加載function mapInit(data){ //底图// var raster = new ol.layer.Tile({// source: new ol.source.Stamen ...

  2. 瓦片切图工具gdal2tiles.py改写为纯c++版本

    gdal2tiles.py是GDAL库中用于生成TMS瓦片的python代码,支持谷歌墨卡托EPSG:3857与经纬度EPSG:4326两种瓦片,输出png格式图像. gdal2tiles.py Mo ...

  3. 瓦片切图工具gdal2tiles.py改写为纯c++版本(二)

    python这么火,C++/C#的程序员都生存不下去了,为啥还要干把python转写成c++的这种反动的事? 项目需要呗... gdal2tiles.py文件中有两个类是计算全球墨卡托与WGS84两种 ...

  4. 巧用Openlayers4的Style

    原文:https://blog.csdn.net/gisshixisheng/article/details/80149087 概述 非常细化Openlayers4中的StyleFunction,因为 ...

  5. 完整版openlayer的例子及中文注释(完整中文版)

    //@sourceURL=PersonLocation.jsvar window_temp = { onbeforeunload: null, DEBUG_MODE: false, MAPLIST: ...

  6. Google Pixel 超分辨率--Super Resolution Zoom

    Google Pixel 超分辨率--Super Resolution Zoom Google 的Super Res Zoom技术,主要用于在zoom时增强画面细节以及提升在夜景下的效果. 文章的主要 ...

  7. yum install 安装 下载好的rpm包 会并依赖包一起安装 zoom电话会议的安装

    [root@ok-T Downloads]# rpm -ivh zoom_x86_64.rpm error: Failed dependencies: libxcb-image.so.()(64bit ...

  8. iphone dev 入门实例6:How To Use UIScrollView to Scroll and Zoom and Page

    http://www.raywenderlich.com/10518/how-to-use-uiscrollview-to-scroll-and-zoom-content Getting Starte ...

  9. RDCMan之DPI 和 Screen Resolution设置

    Customer要求在以下环境验证几个bug DPI setting Minimum   resolution 96 / 100% 1024x768 120 /125% 1280x960 144 / ...

随机推荐

  1. springBoot + KISSO实现单点登录

    1:创建一个maven项目 kisso,然后再创建二个子项目都是springboot 2:二个boot项目的pom.xml都是一样的 就这三个依赖,3:接下来就是码代码了,首先在(在我这里)sprin ...

  2. SpringBoot集成FastDFS+Nginx整合基于Token的防盗链

    为什么要用SpringBoot? SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人 ...

  3. uva1228 Integer Transmission

    这道题思维很灵活.也有点套路的意思. 首先规定0,1分别按照原来的顺序接收,只是01换位.这样简化了思维.(否则并不会有更优结果它.,比较好想)最大值和最小值可以贪心得到.那么接下来就是给定一个整数P ...

  4. 我的app自动化实战练习一

    ''' -*- coding: utf-8 -*- @Time : 2019/6/10 0010 10:39 @Author : 无邪 @File : test_data.py @Software: ...

  5. faster rcnn环境编译

    步骤和fast rcnn的编译一样,在编译中遇到了一个问题: 刚开始是以为python-numpy没有安装到位,后来发现是Makefile.config的配置出现了问题.原来的配置是: PYTHON_ ...

  6. spring boot jar的生成

    1)准备demo 2)打开idea项目结构 3)添加 4)按顺序 6)bulid 7)完成  查看out文件

  7. Spring框架针对dao层的jdbcTemplate操作之jdbc数据库连接原始操作方法 所需安装包下载

    crud指数据库或者持久层的基本操作,包括 增加(Create).读取查询(Retrieve 取回).更新(Update)和删除(Delete) Spring不仅对JDBC进行了封装,也对Hibern ...

  8. Oracle数据库的基本使用

    1.Linux安装  (略) 2.Oracle数据库监听命令: 监听状态:$lsnrctl status 启动监听:$lsnrctl start 关闭监听:$lsnrctl  stop 重载监听:$l ...

  9. “打开ftp服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹"

    阿里云虚拟主机上传网站程序 问题场景:网页制作完成后,程序需上传至虚拟主机 注意事项: 1.Windows系统的主机请将全部网页文件直接上传到FTP根目录,即 / . 2. 如果网页文件较多,上传较慢 ...

  10. Linux磁盘管理及Lvm

    1. 硬盘接口 IDE: SATA:常用: SCSI:主要用于高端服务器,linux默认: SAS 2. 硬盘种类 SATA硬盘:串口硬盘,有较强的纠错能力: SCSI 硬盘:默认硬盘: SAS 硬盘 ...