我正在做一个需要我使用正射镶嵌Map的项目。这个Map是. tiff格式的。我想从这个Map中提取地理信息,这样我就可以正确地将它覆盖在谷歌Map上。我在这个项目中使用的是mean stack。
所以我最后的问题是:有没有办法用javascript从tiff图像中提取地理标签?
编辑:当我使用Maptiler(https://www.maptiler.com/)时,它会自动将. tif文件正确地放置在谷歌Map上。我想知道它是如何提取信息并放置在Map上的,以便我自己动手。
我正在做一个需要我使用正射镶嵌Map的项目。这个Map是. tiff格式的。我想从这个Map中提取地理信息,这样我就可以正确地将它覆盖在谷歌Map上。我在这个项目中使用的是mean stack。
所以我最后的问题是:有没有办法用javascript从tiff图像中提取地理标签?
编辑:当我使用Maptiler(https://www.maptiler.com/)时,它会自动将. tif文件正确地放置在谷歌Map上。我想知道它是如何提取信息并放置在Map上的,以便我自己动手。
3条答案
按热度按时间ubof19bj1#
有一个开源库叫做open layers https://openlayers.org/,这是覆盖你的tiff图像的最好方法,一旦把tiff图像包含在这个层上,你就可以提取任何你需要的信息。
你可以使用Angular与typescript或java脚本,这是更好的。基本上你可以得到每一个细节的方式坐标从您的tiff图像使用这个库。
建立这个库是一个复杂的项目,我只是给你一个想法,你可以accopmlish。我想帮助你在这件事上。我知道这是不多,我解释,我不能给予你太多的细节,因为我不知道这个问题的细节。如果你需要任何帮助联系我。
prdp8dxp2#
为了读取TIFF标签,您需要一个合适的TIFF解析器,比如tiff包,这样您就可以运行IFD块的非位图部分:
产量(对于此特定GeoTIFF):
标签号与https://www.awaresystems.be/imaging/tiff/tifftags.html上列出的标签号匹配,因此
33550
是model pixel scale标签,34737
是GeoASCII params标签,依此类推。其中,34735可以说是最重要的标签,因为它包含GeoKey dictionary:
第一行读作“Tiff version 1”,“keys revision 1. 0“(编码为两个值),然后告诉我们有5 keys。
做Map相关的事情(在没有为您放置tiff的工具的情况下),我们可以从标签33922看到,值为0的像素索引[0][0]Map到海拔0m处的真实的世界坐标N48W124,并且我们可以从标签33550看到,每个像素在x和y方向上都表示1弧度 * 0.00027[...] = 30米,这允许我们以适当的平移和比例将数据覆盖在Map上。
5vf7fwbs3#
tiff -是一种光栅图像格式。所以要从它获取信息(除了纯图形),如果它是例如谷歌Map的截图是不可能的,也许通过使用一些复杂的库,如OpenCV。
但我想你是想得到EXIF的信息,这可以在照片中出现。要做到这一点,你可以使用exif npm library