gpt4 book ai didi

c# - 如何将用户位置映射到不真实的 map ?

转载 作者:太空宇宙 更新时间:2023-11-03 23:10:23 24 4
gpt4 key购买 nike

抱歉,如果这个问题很笼统,但我无法找到我必须解决的问题的任何真正解决方案。我需要解决将用户的位置映射到表示地图(例如游乐园地图)的图像的问题。

一种可能的解决方案是将GPS坐标定义为图像的不同部分,然后将用户的位置捕捉​​到最接近的定义位置。

我还看到了Geospatial PDF,但是在实现一种从PDF读取Geospatial信息的方法方面我找不到很多。

如何拍摄代表主题公园的图像并将用户位置映射到该图像?

最佳答案

简短答案:

您不能,这是指您不能只拍摄常规图像并将坐标捕捉到其像素。

长答案:
您可以,但是需要大量的工作和准备,这是您需要做的基础。

第1步-对图像进行地理折射

为此,您需要一些GIS软件以及在正确的坐标空间中注册的区域的现有地图。

如果您有预算,则应考虑使用专业软件,例如Autodesk map 3D或ESRI工具套件。如果您没有预算,则可以使用免费工具(例如QGIS)来实现。

我将以QGis作为描述。

将您在该地区拥有的现有地图(已被引用的地图)加载到GIS包中。 (如何获得此地图完全取决于您自己,如果幸运的话,您可能有其他人做过,或者您公园的建设者可能拥有可以使用的网站计划,但是如果没有此源地图,您可能会忘记任何除非您有要参考的所有点的列表,否则都可以将其与图像进行匹配)。[侧注:完全可行的方法是使用GPS设备外出并手动记录点,尤其是如果您要映射的站点不适合大,您就可以完全使用它,因为您仅引用自己的图像,而不构建任何 super 图像,因此不需要duper 1000%的精度]

假设使用QGis,请转到“栅格”菜单,然后选择“GeoReferencer”工具

enter image description here

加载该工具后,将为您提供一个子窗口,您可以在该子窗口中加载“未引用”地图图像。 (加载按钮标有红色箭头)

enter image description here

加载栅格图像后,您需要使用已加载到QGis中的参考地图(很抱歉,没有空间来记录此部分,有很多方法,具体取决于您拥有的数据)并从中选择点与地理参考工具中的栅格匹配。

确保地理配准工具处于添加点模式。

enter image description here

然后,在您想要第一点的位置上,单击加载到地理参考工具中的图像。

输入地图坐标框将弹出打开。

如果您已经知道这些点的位置(例如,因为您是GPS外出的,或者您有一些测量数据),则只需将其键入即可。如果不知道,请单击标记为“来自地图画布”的按钮,地理参考工具将切换到您已加载的已经参考的地图,并要求您单击参考地图上的相同位置。

enter image description here

enter image description here

单击参考地图后,QGis将切换回填入坐标的地理参考工具

enter image description here

此时,您可以单击“确定”,该点将被注册到您未参考的光栅图像上作为参考点(红色小点)

重复此过程,直到您拥有想要引用的位置为止。您无需做任何事情,但是应该完成关键位置,例如公园入口,主站点轮廓周围的拐角,著名建筑物的中心和路口。

您参考的点越多,最终参考的光栅图像将越准确。

在将点添加到图像中以进行参考后,您需要单击黄色的齿轮,并填写输出栅格,目标SRS以及将其转变为地图的其他内容的选项。

enter image description here

现在,在这一阶段,我还没有提到非常,非常,非常重要的概念,那就是“SRS”,也就是“空间参考系统”

您可能已经在上面的屏幕截图中注意到,通过单击地图在对话框中输入坐标时,坐标看起来不像电话或GPS单元可能产生的通常的纬度/经度对。

那是因为我所有的地图都在一个称为“OSGB36”(或EPSG:27700)的SRS中,这是英国的本地空间参考系统。

如果愿意,我可以使用标准的GPS系统(称为WGS84或“EPSG:4326”),但由于我仅在英国境内工作,因此这样做实际上会导致计算错误。

如果您使用的是小型游乐园,那么为了获得最佳结果,您需要查找本地地理坐标系,使用标准GPS坐标会导致太多错误,甚至可能导致错误的位置绘图当您最终在图像上画出您的观点时。

对于我来说,放入SO帖子中的信息太多了,因此我强烈建议您从这里获取我免费撰写的关于该主题的电子书的副本:

https://www.syncfusion.com/resources/techportal/details/ebooks/gis

为此,它将填充您需要的大量背景知识。

设置好设置并添加所有参考点后,您只需单击绿色三角形即可准备创建参考栅格图像。

enter image description here

到此为止,并保存了参考图像,您现在将获得一个地图/图像,该地图/图像应在您的本地坐标中进行参考,并且可以理解在同一坐标系中为其指定的一个点,并且知道将其绘制在地图上的位置。

但是,那只是您旅程的开始。

第2步-构建地图服务器

拥有映像后,您需要在称为WMS服务器的主机中进行托管。

再一次,在SO帖子中从头开始描述如何做到这一点仅仅是不切实际的,您需要的是诸如“geoserver”(一种基于Java的易于使用的地图服务器系统)或裸露的linux系统之类的东西,安装了apache网络服务器,并在其下运行mapserver CGI二进制应用程序。

设置地图服务器并使用WMS协议提供地图后,即可进入最后阶段

第3步-创建应用程序以显示地图

等式的最后一部分是构建一个应用程序以显示来自WMS服务器的地图,然后获取您要绘制的人或物品的位置,可以选择将坐标转换为与您的图像匹配的本地SRS,然后在正确的位置在图像上绘制点。

如果您是在Web /移动应用程序中执行此操作,那么您很可能希望调查openlayers.js或leaflet.js的使用,如果您在C#应用程序中执行此操作,那么GreatMaps或SharpMap是您想要的工具包。在看。

包起来

许多人认为将位置绘制在地图图像上是一项非常简单明了的任务,我现在可以告诉您,它不是。

多年来,我已经建立了许多GIS系统,即使是最简单的系统也花了我3个月多的时间。

即使是一个简单的想法(例如您要问的想法),也需要进行大量的规划和分析,除非您只想在网页上托管Google地图图像并与您的设备配合使用,否则就没有快速的方法。为此。

您开始制作自定义地图的第二秒钟,您会自动进行大量工作,这会花费您时间和耐心,以使其正确无误。

图像中的像素根本无法与现实世界中的坐标匹配,事实的真相很简单。绘制地图和GIS公司收取与创建此类系统相同的费用是有原因的。

参考资料和进一步阅读

http://www.qgistutorials.com/en/docs/georeferencing_basics.html

http://www.digital-geography.com/qgis-tutorial-i-how-to-georeference-a-map/

http://glaikit.org/2011/03/27/image-georeferencing-with-qgis/

http://geoserver.org/

http://mapserver.org/uk/index.html

http://openlayers.org/

最好的项目,请注意这一点,您需要投入大量的工作,但是您也将获得很多乐趣,并学习大量的新东西,GIS的世界本质上是复杂的,但是这也是一个非常有趣的主题,尤其是当您开始从头开始绘制自己的地图时:-)

美女

关于c# - 如何将用户位置映射到不真实的 map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39419699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com