问题标签 [mapinfo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gis - 将 postgis 表转换为 Mapinfo 文件
我有一些从 MIF/MID 文件转换而来的 postgis 表,我对它们进行了一些数据处理。
我使用 ogr2org 将 MIF/MID 转换为 postgis 表,
但是如何将表格转换为 MIF/MID?
c# - 集成 Mapinfo 和 .NET C#
我正在 MapBasic 中开发一个调用 .NET 程序集库中的方法的应用程序
这就是我在 MapBasice 环境中声明该方法的方式。
我需要的是从我的 .NET C# 代码中回调我的 MapBasic 应用程序中的一些 Sub 或 Funcion。假设当用户单击我的 .NET 表单中的某个按钮时执行 MapBasic 代码的某些部分。
有没有办法做到这一点?如果是这样。我怎样才能实现它?任何帮助将不胜感激。
c# - DllImport 工作 32 位,失败 64 位 (AccessViolationException)
我在 C# 中使用 .Net 为 MapInfo Pro 构建了一个扩展。MapInfo 的旧版本是 32 位应用程序,最新版本是 64 位应用程序。我希望我的扩展程序能够与两者一起使用。虽然可以使用 .Net 调用 MapInfo 的许多功能,但其中一些仅适用于非托管 dll。其中一个 dll 称为 migrid.dll,我有 32 位和 64 位版本。但是我没有源代码,所以我无法获得该文件中函数的确切定义。
我想使用的函数之一是 GE_WriteContinuousValue。我拥有的关于该函数的唯一文档是如何使用 MapBasic(MapInfo 的默认编程语言)声明它:
声明函数 GE_WriteContinuousValue Lib "Migrid.dll" (
ByVal hGrid As Integer, '网格句柄
ByVal lCol As Integer, '列号
ByVal lRow As Integer, '行号
ByVal dValue As Float 'z 值
) 如果有错误,则为逻辑 'FALSE
'TRUE 成功
在我的 c# 代码中,我将此函数与 DllImport 一起使用:
然后调用它,例如:
使用 32 位 dll 可以正常工作。当我对 64 位 dll 使用相同的内容时,我在这一行得到“'System.AccessViolationException' Attempted to read or write protected memory”:
同一个 dll 中的其他函数在 32 位和 64 位上都可以正常工作。所以它必须是特定于这个功能的东西。
希望有一种方法可以得到这个函数的确切定义,我在网上搜索了一个叫做雪人的工具。这给了我一些信息,但对我没有任何用处。也许它对你有帮助?
32 位 dll 的结果:
来自 64 位 dll 的结果:
有人可以帮我摆脱 System.AccessViolationException 或为我指出正确的方向吗?
vba - VBA 创建 Mapinfo 表和点
不是很擅长 VBA,只是在基础知识上,所以陷入了下面的想法。
我想要一个 VBA 来创建一个 MapInfo 选项卡文件,并从具有给定坐标和基于另一列的图例的 excel 表中的图例中点。
在网上搜索了很多,但找不到比以下更多的东西。
CreateObject("MapInfo.Application")
请指导我完成这项工作。
谢谢
gis - 将 MapInfo TAB 转换为 MBTiles 坐标
我有一个 MapInfo TAB 文件,如下所示:
我还有一个参考区域的图像文件。我正在尝试将其转换为几乎可以工作的 mbtiles 文件,但它有点不对齐。
我正在从此文件中获取边界框,400000, 1200000, 500000, 1300000
然后将其转换为纬度/经度,即-2.0018997431234, 60.670742105011, -0.17172476489587, 61.580961113449
.
然后,我使用以下代码使用 zoom 12 将其转换为 MBTiles 网格:
这会产生一个2025 - 2046
和的网格2921 - 2943
。
到目前为止,一切都很好。接下来,我将关联的图像缩放到 256px * tile X x 256px * tile Y 并导出映射到网格块/列的 256x256 块。
这会生成一个 mbtiles 文件,该文件可以工作,但与真实地图略有不同。
我尝试使用 MapTiler Desktop 导出相同的文件,这会生成一个具有相同网格的 mbtiles 文件,2025 - 2046
但2921 - 2943
它完全对齐。我无法为我的生活找出原因。
排队是-100000
为了CoordSys Earth Projection
什么?MapTiler 将地理位置显示为400000 10 0 1300000 0 -10
。我想知道 -10 是偏移量还是我需要考虑的东西。
c# - 使用 GDAL 和 C# 导出到 MapInfo 选项卡
所以我正在尝试使用 GDAL nuget 包将 kml 文件转换为 mapinfo 选项卡层。我的代码可以使用 gdal 将 kml 转换为 geojson,但是每当我尝试转换为 MapInfo Tab 时,它都会失败并出现错误: CreateFeature() failed: invalid feature id 1 on the CopyLayer line of code。
这是我正在使用的当前代码:
选项卡输出正在输出文件夹中创建 .dat、.map、.tab 和 .id 文件,尽管它们不起作用。
这方面的文档似乎有限(或者我还没有找到)。有人对我所缺少的有任何建议吗?
谢谢,
gis - 包含 MapInfo Pro 中另一个表中的对象的组合多边形的面积计算错误
我在 MapInfo Pro 中遇到问题。
我有三个带多边形的表,并将表 1 和表 2 中的多边形组合成更大的多边形。现在我只对包含表三中多边形的区域感兴趣。
出于某种原因,当我对该选择进行查询时,我不断得到错误的结果 - 似乎组合多边形内有 4 个表 3 多边形我也得到了组合多边形的面积 4 次!
当我对组合多边形进行查询时,我在面积、多边形数量等方面得到了很好的结果。只有当我选择包含表 3 对象的组合区域时才会出错(Where condition= combined polygons.obj Contain table3.obj
)。由于某种原因,结果被重复了好几次。
gis - 有没有办法应用随机颜色将所选点的样式更改为该颜色
所以我有一个随机颜色函数,我想将其应用于选择的点,但它为每个点提供随机颜色,而不是选择点的随机颜色。我知道选择部分有效,但我不确定如何使其每种颜色仅调用该随机颜色生成器一次。这是我到目前为止所拥有的。感谢您的任何建议/帮助!
date - MapBasic - 将 Excel 日期转换为 MapInfo 日期
如果我有一个 Excel 日期表:
如何将其转换为 MapInfo 日期格式?
使用 MapBasic。
sql - 如何知道 Mapbasic 中隐藏的 SQL 运算符或函数?
目前我正在使用 MapInfo 10.5,我很惊讶地知道我可以在 MapInfo SQL 选择中使用 Between 运算符,而不是将它放在运算符列表的下拉列表中。有没有办法知道 MapInfo 中隐藏了多少 SQL 的函数或运算符?就像,我正在尝试在 MapInfo 中使用功能,但它抛出错误并显示“无法识别的命令”。