精华内容
下载资源
问答
  • 查看屏幕上某一点的坐标,鼠标指向改点即可 摘要必须大于50个字!
  • OpenLayers地图坐标转换屏幕坐标

    千次阅读 2017-06-09 21:12:07
    最近因工作原因开始接触OpenLayers地图,遇到需要将地图坐标转换成屏幕坐标,因为技术有限,在大量查看API、与大神写的文章时候还是有写地方疏忽了,先将整个地图坐标转换地图坐标进行记录。
    
    

    最近因工作原因开始接触OpenLayers地图,遇到需要将地图坐标转换成屏幕坐标,因为技术有限,在大量查看API、与大神写的文章时候还是有写地方疏忽了,先将整个地图坐标转换地图坐标进行记录。

    第一步为指定的代码获取投影对象。

    ol.proj.get('EPSG:4326') 在得到投影对象后需要取到投影有效范围,get接口为ol.proj.Projection下有getExtent方法获取投影有效性范围。

    ol.proj.get('EPSG:4326').getExtent()

         第二步

    获取地图的宽度范围,ol.extent.getWidth(ol.proj.get('EPSG:4326').getExtent());到这里基本操作结束。

    接下来就是

    //地图坐标转屏幕坐标:
    screenPt.x=screen.center.x+ ((mapPt.x-mapExtent.center.x)/resolution+0.5);
    screenPt.y=screen.center.y- (mapPt.y-mapExtent.center.y)/resolution+0.5);

    在这个公式中screen是屏幕坐标,mapPt是地图坐标,mapExtent是地图中心坐标,resolution 就是地图宽度范围,这个公式网上搜索到的,经测试无误。只是这里偏移了0.5。本人不喜欢写记录,但只因这个问题困扰我一天,希望对迷茫的朋友有一点帮助。谢谢,也希望朋友们提出我的缺点,加以改正。

    展开全文
  • PIESDK提供了专题制图下鼠标屏幕坐标转地图坐标功能。 2. 功能实现说明 2.1屏幕坐标转地图坐标 此功能用到了IPageLayout.ToMapPoint()方法,它的主要作用是可以在专题制图的制图框中查看当前鼠标的坐标信息。 ...

     

    1.    功能简介

        PIESDK提供了专题制图下鼠标屏幕坐标转地图坐标功能。

    2. 功能实现说明

    2.1屏幕坐标转地图坐标

           此功能用到了IPageLayout.ToMapPoint()方法,它的主要作用是可以在专题制图的制图框中查看当前鼠标的坐标信息。

    2.2 实现思路及原理说明

    第一步

    获取当前屏幕坐标

    第二步

    调用IPageLayout.ToMapPoint方法进行转换

    2.3 核心接口与方法

    接口/类

    方法

    说明

    IPageLayout

    ToMapPoint ()

    屏幕坐标转地图坐标

    2.4 示例代码

            项目路径

    百度云盘地址下/PIE示例程序/09.专题制图/06屏幕坐标转地图坐标

    代码位置

    FormPagelayoutDemo. m_pageLayoutControl_MouseMove方法

    视频位置

    百度云盘地址下/PIE示例程序/09.专题制图/06屏幕坐标转地图坐.avi

    示例代码

    1         /// <summary>
    2         /// 屏幕坐标转地图坐标 
    3         /// </summary>  
    4         private void m_pageLayoutControl_MouseMove(object sender, MouseEventArgs e)
    5         {
    6             PIE.Geometry.IPoint mapPoint  = m_pageLayoutControl.PageLayout.ToMapPoint(
    7 m_pageLayoutControl.FocusMap,e.Location);
    8             m_CoordForm.LableMessage = "当前屏幕坐标:" + e.X + "," + e.Y + "\r\n" + "地图坐标:" + mapPoint.X + "," + mapPoint.Y;
    9         }
    View Code

    2.5    示例截图

    转载于:https://www.cnblogs.com/PIESat/p/10177562.html

    展开全文
  • 由于 Typora 软件是多进程,并且使用工具 Pywinauto 查看其 control_type 是 Pane,不能像网上介绍的 notepad 的样例那样去使用,因此这里使用工具 PyAutoGUI,根据界面屏幕坐标去操作 Typora 软件。 由于这类控件...

    获取控件屏幕坐标

    由于 Typora 软件是多进程,并且使用工具 Pywinauto 查看其 control_type 是 Pane,不能像网上介绍的 notepad 的样例那样去使用,因此这里使用工具 PyAutoGUI,根据界面屏幕坐标去操作 Typora 软件。

    由于这类控件没有 API 方法,因此只能通过 print_control_identifiers() 方法打印出控件的屏幕坐标信息,通过从控制台获取打印的信息,并进行处理得到控件的坐标信息,通过坐标值来操作此类控件,具体实现可以看下面的代码:

    # 获取控制台打印的内容
    class TextArea(object):
        def __init__(self):
            self.buffer = []
        def write(self, *args, **kwargs):
            self.buffer.append(args)
            
    # 获取应用程序Typora指定标识符的屏幕坐标
    def GetAppIdentifierPos(app, identifier):
        # 获取控件信息
        stdout = sys.stdout
        sys.stdout = TextArea()
        app["Typora"].print_control_identifiers()
        text_area, sys.stdout = sys.stdout, stdout
        # 搜索标识符的屏幕坐标
        for tup in text_area.buffer:
            i = tup[0].find(identifier)
            if i > -1:
                # 用于存控件的坐标
                locate = []
                starti = i + len(identifier)
                startj = tup[0].find('(', starti, -1) + 1
                endj = tup[0].find(')', starti, -1)
                grid = tup[0][startj:endj].split(',')
                for gridi in grid:
                    gridj = gridi.strip()
                    gridk = int(gridj[1:])
                    locate.append(gridk)
                    
                return [(locate[0]+locate[2])/2, (locate[1]+locate[3])/2]
                
        return [0, 0]
    

    Python自动化脚本用Typora将Markdown文件转为html文件

    如果手动输入屏幕坐标,则可以参照 https://blog.csdn.net/he_nan/article/details/106108344

    本文在转换前,首先用工具 Pyautogui 自动获取各个控件的屏幕坐标,然后再转换所有的 Markdown 文件,Python 脚本实现如下:

    # 退出Typora软件
    def QuitTypora(quitAppCoor):
        time.sleep(2)
        pyautogui.hotkey('ctrl', 'w')
        time.sleep(2)
        pyautogui.click(quitAppCoor[0], quitAppCoor[1])
        time.sleep(5)
        
    # 将指定目录下的单个md文件转换为html文件
    def ConvertMdToHtml(typoraApp, inFileCoor, fileMenuCoor, exportCoor, htmlCoor, outFileCoor, quitAppCoor, mdFile):
        # 打开Typora应用程序
        app = pywinauto.application.Application(backend="uia").start(typoraApp)
        time.sleep(5)
        # 打开md文件
        pyautogui.hotkey('ctrl', 'o')
        time.sleep(2)
        pyautogui.click(inFileCoor[0], inFileCoor[1])
        pyautogui.typewrite(mdFile)
        pyautogui.press('enter', presses=1, interval=0.5)
        time.sleep(1)
        # 导出html
        pyautogui.click(fileMenuCoor[0], fileMenuCoor[1])
        time.sleep(1)
        pyautogui.click(exportCoor[0], exportCoor[1])
        time.sleep(1)
        pyautogui.click(htmlCoor[0], htmlCoor[1])
        time.sleep(2)
        pyautogui.click(outFileCoor[0], outFileCoor[1])
        pyautogui.hotkey('ctrl', 'a')
        pyautogui.typewrite(mdFile[:-2] + FileFormat.HtmlFileSuffix())
        pyautogui.press('enter', presses=1, interval=0.5)
        time.sleep(1)
        pyautogui.press('left', presses=1, interval=0.1)
        pyautogui.press('enter', presses=1, interval=0.5)
        # 关闭Typora
        QuitTypora(quitAppCoor)
        
    # 将指定目录下的所有md文件转换为html文件
    def ConvertAllMdToHtml(typoraApp, mdFilesDir):
        # 退出Typora时“放弃”修改按钮的屏幕坐标
        app = pywinauto.application.Application(backend="uia").start(typoraApp)
        time.sleep(5)
        pyautogui.typewrite("Typora")
        time.sleep(1)
        pyautogui.hotkey('ctrl', 'w')
        time.sleep(2)
        quitAppCoor = GetAppIdentifierPos(app, u"Button - '丢弃'")
        pyautogui.click(quitAppCoor[0], quitAppCoor[1])
        time.sleep(5)
        # 打开文件时输入框的屏幕坐标
        app = pywinauto.application.Application(backend="uia").start(typoraApp)
        time.sleep(5)
        pyautogui.typewrite("Typora")
        time.sleep(1)
        pyautogui.hotkey('ctrl', 'o')
        time.sleep(2)
        inFileCoor = GetAppIdentifierPos(app, u"ComboBox - '文件名(N):'")
        pyautogui.press('esc', presses=1, interval=0.5)
        QuitTypora(quitAppCoor)
        # 导出文件时导航菜单及输入框的屏幕坐标
        app = pywinauto.application.Application(backend="uia").start(typoraApp)
        time.sleep(5)
        pyautogui.typewrite("Typora")
        time.sleep(1)
        fileMenuCoor = GetAppIdentifierPos(app, u"MenuItem - '文件(F)'")
        pyautogui.click(fileMenuCoor[0], fileMenuCoor[1])
        time.sleep(1)
        exportCoor = GetAppIdentifierPos(app, u"MenuItem - '导出'")
        pyautogui.click(exportCoor[0], exportCoor[1])
        time.sleep(1)
        htmlCoor = GetAppIdentifierPos(app, u"MenuItem - 'HTML'")
        pyautogui.click(htmlCoor[0], htmlCoor[1])
        time.sleep(2)
        outFileCoor = GetAppIdentifierPos(app, u"ComboBox - '文件名:'")
        pyautogui.press('esc', presses=1, interval=0.5)
        QuitTypora(quitAppCoor)
        
        # 筛选指定目录下的文件
        for root, dirs, files in os.walk(mdFilesDir):
            for name in files:
                if FileFormat.IsMdFile(name):
                    mdFile = os.path.join(root, name)
                    ConvertMdToHtml(typoraApp, inFileCoor, fileMenuCoor, exportCoor, htmlCoor, outFileCoor, quitAppCoor, mdFile)
    

    全部的完整脚本,见附件。

    脚本放在与 Document 同级的目录下,直接执行 Markdown2Html.py 即可。

    展开全文
  • 详细原理可查看博客: https://blog.csdn.net/miyu1994/article/details/106554004 bool World2Screen(Vector3 objPos, Vector2& screenPos) { //视图矩阵 Matrix4 viewMat = m_camera->getViewMatrix...

    详细原理可查看博客:

    https://blog.csdn.net/miyu1994/article/details/106554004

     

    
    bool World2Screen(Vector3 objPos, Vector2& screenPos)
    {
        //视图矩阵
    	Matrix4 viewMat = m_camera->getViewMatrix();
        //透视投影矩阵
    	Matrix4 projMat = m_camera->getProjectionMatrix();
     
     
    	Vector4 inP = Vector4(objPos.x, objPos.y, objPos.z ,1.0);
        //先做视图变换
    	Vector4 outP = viewMat * inP;
        //再做投影变换
    	outP = projMat * outP;
     
    	if(outP.w <= 0.0f)
    		return false;
     
        //齐次坐标
    	outP.x /= outP.w;
    	outP.y /= outP.w;
    	outP.z /= outP.w;
     
        //[-1,1]->[0,1]
    	outP.x = outP.x*0.5 + 0.5;
    	outP.y = outP.y*0.5 + 0.5;
    	outP.z = outP.z*0.5 + 0.5;
     
    	outP.x = outP.x;
    	outP.y = (1-outP.y);
     
    	// outP.x = outP.x * mWindow->getWidth();
    	// outP.y = (1-outP.y) * mWindow->getHeight();
    
        //返回归一后的坐标
    	screenPos.x = outP.x;
    	screenPos.y = outP.y;
    
    	return true;
    }

     

    展开全文
  • 视频教程图文教程01、查看数据查看整理原始数据格式,将坐标数据分为X、Y两列,一般数据中X为2开头,Y数据为36、37开头;02、加载数据将坐标点导入GIS,文件——添加数据——添加XY数据。在填写XY字段时要记得将字段...
  • WPF 定时器DispatcherTimer+GetCursorPos 的使用,动态查看屏幕上任一点坐标 原文:WPF 定时器DispatcherTimer+GetCursorPos 的使用,动态查看屏幕上任一点坐标 usingSystem;usingSystem.Collections....
  • 1.首先在电脑桌面右键》》显示设置里查看 缩放与布局比例是不是100%,如果不是,请调为100%,不然会影响获取屏幕坐标的准确性,(获取的坐标应该乘以缩放比例)。 java 示例代码类 import java.awt.*; ...
  • 今天晚上对以前的一个程序进行改进,使它... 文档一般比视图大,视图只能够查看一部分文档,拖动滚动条,在视图中显示的那部分文档改变了,所以此时的鼠标下面的逻辑坐标也跟着改变了;我的理解是设备坐标不改变,除非你移动
  • 在本教程中,您需要将 2D 地图转换为 3D 场景,并使用其 3D 查看属性。预计时间:30 分钟软件要求:ArcGIS Pro注:在线帮助中的教程步骤反映了当前软件版本的外观和功能。如果您有较早的软件版本,...
  • 通常情况下我们只能获取当前Activity的画面坐标,那有时候我们需要做到一种类似于c++ hook的后台运行程序能够监听到前台用户的操作并记录下来,往往这类程序都是为自动化测试服务的。 Android系统 getevent 方法: ...
  • 出处:... ...主要有2种方法来实现屏幕2D坐标转化为场景3D坐标:一种是通过拣选射线,我的《APRG Demo》就是这样做的,有兴趣的可以查看源代码:http://blog.csdn.net/
  • 主要有2种方法来实现屏幕2D坐标转化为场景3D坐标:一种是通过拣选射线,我的《APRG Demo》就是这样做的,有兴趣的可以查看源代码:http://blog.csdn.net/skyman_2001/archive/2005/10/06/495938.aspx;另一种是通过...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼using UnityEngine;using System.Collections;public class click : MonoBehaviour {public float validTouchDistance = 200;public string layerName;public Texture2D ...
  • 2、如果只需要查看自己开发的应用的UI变化,可以用GitHub上的一个项目ViewServer 3、如何在Root的手机上开启ViewServer,使得HierachyViewer能够连接。 点击这里 If you have not done so already, install ...
  • 1前言很多用户会问到我们一些关于坐标的问题,比如怎么看这个UI的...2.如何使用屏幕坐标的功能来查看坐标。2Airtest的坐标系使用绝对坐标系的touch和swipe接口airtest的touch接口,实际上点击的是一个 (x, y)绝对坐...
  • 本节书摘来自华章出版社《Unity着色器和屏幕特效开发秘笈》一 书中的第2章,第2.2节,作者:(美)Kenny Lammers,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 2.2 通过修改UV坐标实现纹理贴图的滚动 ...
  • 1.查看设备 adb devices`在这里插入代码片` 2.列出手机安装的包 adb shell pm list packages -3 adb shell pm list packages 3.adb获取包名以及当前运行的activity adb shell dumpsys window windows | grep -E '...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 270
精华内容 108
关键字:

屏幕坐标查看