带有地图控件和自定义地图的WPF应用程序
我有一个地理作用的刚性术.它们之间有层,坟墓和道路. 我正在尝试使用我创建的数据库连接的地图控制和显示映射创建WPF应用程序.我需要允许用户单击一些坟墓,然后显示一个带有个人日期和按钮的覆盖层,以使用我在QGIS(例如QGIS)中标记的路线导航到该特定的坟墓.有什么方法是使用Bing Maps?还是您知道解决此问题的任何方法? 解决方案 最简单的解决方案是使用MapCruncher之类的工具将图像转变为瓷砖层: https://www.microsoft.com/en-us/download/details.aspx?id=22420 ,如果在网络或服务器上托管,则可以添加此瓷砖层,或使用以下博客并将其添加为本地瓷砖层: https://blogs.bing.com/maps/2015/2015/08/24/local-tile-local-tile-layers -in-bing-maps-wpf/ 如果您的图像没有旋转并且不需要任何拉伸,您也可以尝试以下方法: h
14 2024-04-26
编程技术问答社区
使用启用时间WMS的mapsui - 使用dispatchertimer更新extraparams
我试图使用调度计时器每10秒钟在我的WMSPROVIDER EXTRAPARAMS中更新时间参数. private async void DispatcherTimer_Tick(object? sender, EventArgs e) { var wmsLayer = mapControl.Map?.Layers[1] as ImageLayer; var source = wmsLayer.DataSource as WmsProvider; source.ExtraParams["TIME"] = GetFormattedDateTime(1);; } 但是,当参数更新时,这不会形成对WMS的新请求.更新参数并迫使新请求更新图层的正确方法是什么?我正在尝试实现类似于openlayers updateParams的东西,如在这里.一个> 解决方案 设置新参数可以看作是配置更改.如果您想查看更改的结果,则必须触发数据刷新.在您的示例代码中,您可
8 2024-04-26
编程技术问答社区
使用什么控件来制作地图
我正在开发地震风险分析软件.在此应用程序中,我必须使用一些地图来显示基于某些计算最容易受到地震活动的位置的布局. 对于显示危险区域Mapwingis的地图是我所知道的,但我认为我可以使用其他功能更强大但提供一些出色功能的库或控制. 我可以使用Google Maps吗?其他可行的替代方案是什么? 解决方案 免费和开源 mapserver 在服务器上, 您可以为免费的GIS包编写插件www.qgis.org/en/site/" rel =" nofollow noreferrer"> qgis 商业 Esri Arcgis非常受欢迎. arcgis explorer 是一个免费的桌面GIS读者,您可以自定义. 另请参见问题好GIS软件或组件适用于.net的Windows PC? 其他解决方案 如果您正在寻找地图组件,这里有两个链接可能会有所帮助. 这是一个包含许多用于映射的组件的列表. > 这是映射软件和组件的比较表. > 我
12 2024-04-23
编程技术问答社区
与谷歌地图API的computeArea对应的C#语言
Google Maps API具有 .computearea 方法. 如何在C#中编写其等效内容? (公式是什么) i有一组lat lat值,我需要计算封闭多边形的面积(以米为单位). 示例代码非常感谢. 解决方案 您尝试了什么? 有一些非常相似的问题,带有详细的答案,因此最好参考它们: polygon-sp"> polygon面积使用纬度和经度计算由笛卡尔空间和世界文件生成 计算由地球表面上的任意多角形 其他解决方案 很抱歉向旧问题添加答案,但是如果其他人正在寻找快速答案: private const double EARTH_RADIUS = 6378137; public class LatLng { public double latitude { get; private set; } public double longitude { get; private set; } public LatLng
14 2024-04-22
编程技术问答社区
使用NetTopologySuite计算点之间的地理距离
我正在尝试使用NetTopologysuite来计算两个点之间的距离.由于我引用了Microsoft文档,因此我想到了以下几何延迟和几何螺旋桨类: public static class GeometryExtensions { private static readonly CoordinateSystemServices _coordinateSystemServices = new CoordinateSystemServices(new Dictionary { // Coordinate systems: [4326] = GeographicCoordinateSystem.WGS84.WKT, // CRS for Denmark ESPG 25832. Source: https
14 2024-04-20
编程技术问答社区
持久性(基于磁盘)R-树(或R*树)。
如何将r*树作为持久性(基于磁盘)的一个?用于保存r*树索引或保存叶值的文件的架构是什么? 注意:此外,在这样的持续r*树中可以执行插入,更新和删除操作? 注释II:我已经实现了具有散装载荷功能的内存R-Tree.但是我认为,当我们谈论基于磁盘的磁盘时,这是完全无关紧要的. 解决方案 如果您需要有一个磁盘R-Tree索引,我建议使用空间或 postgis .空间岩是轻巧且易于嵌入独立应用中的.另外,您是否查看了 c#空间索引项目?.几年前,我在Java撰写了R-Tree实施,如果已经存在某些东西,不建议这样做. 其他解决方案 文件的体系结构 好吧,它是页面(=块).这些页面应具有基础存储的页面大小的倍数,因此大概是1KB或8KB块.每个块都有一个数字,可以通过这种方式参考. 目录页面存储了儿童的边界框及其页码. 儿童页面存储实际数据对象. 管理树 很好,从理论上讲:每当您在内存中修改页面时,都会为磁盘写更改.就是这样. 实际
12 2024-04-20
编程技术问答社区
C#: 如何确定一个坐标是否在美国大陆?
我正在获得坐标-LAT/LON,我想检查这些坐标是否在美国大陆.在C#中有一种简单的方法吗?我可以将坐标转换为MGRS或UTM. 谢谢! 解决方案 哦,哇,他们只是为您服务: http://econym.org.uk.uk/gmap/gmap/states.xml /p> 美国各州的所有坐标! 建立多边形并应用任何多边形点算法. 经典算法是射线铸造,甚至很简单.让我知道您是否有任何麻烦. 现在,您有两个选择: 使用数据为每个状态构建一个多边形,并对每个状态都检查一个点.如果没有匹配,则不在美国. 但是,这种方法存在问题 - 我不知道数据是如何收集的,但是州之间的差距很小,甚至可能是轻微的重叠.因此,如果您只关心它是否通常在美国,我建议第二种方法: 使用数据为每个状态构建多边形,并使用算法将这些多边形组合到一个(例如联合).保存该多边形并将其与第一个方法一样使用.
10 2024-04-20
编程技术问答社区
SQLite + SpatiaLite问题
我正在尝试使用system.data.sqlite提供商从C#访问空间.当我尝试加载空间扩展时,我总是得到 System.Data.SQLite.SQLiteException: SQLite error The specified module could not be found. 错误,即使空间dl的DLL已复制到BIN目录.我什至尝试指定DLL的绝对路径,但无济于事. 这是代码: string connectionString = @"Data Source=D:\MyStuff\projects\OsmUtils\trunk\Data\Samples\DB\osm.sqlite"; using (SQLiteConnection connection = new SQLiteConnection (connectionString)) { connection.Open(); using (SQLiteCommand command =
14 2024-04-19
编程技术问答社区
有没有在F#(或C#)中实现的R | Tree?
可能的重复: 是否有.net有任何文档的免费R-Tree实现? f#? 中是否有任何R-Tree实现 假设是:无需插入或删除,固定的地理围栏(区域). 需求是:非常快的搜索时间. 谢谢 解决方案 这是 ocaml 的快速翻译P> namespace RTree open System module Envelope = type t = float * float * float * float let ranges_intersect a b a' b' = a'
12 2024-04-19
编程技术问答社区
GPS/GIS计算。根据移动/时速预测未来位置的算法?
寻找资源或算法来计算导航应用中的以下内容: 如果我目前的GPS位置为(0,0),并且我以每小时15英里的速度前进32度,我该如何计算我的位置10秒钟? 即:GPSCoordinate predictedCoord = GPSCoordinate.FromLatLong(0, 0).AddByMovement(32, 15, TimeSpan.FromSeconds(10)); 编辑:基于下面的答案当前代码: public GPSCoordinate AddMovementMilesPerHour(double heading, double speedMph, TimeSpan duration) { double x = speedMph * System.Math.Sin(heading * pi / 180) * duration.TotalSeconds / 3600; double y = speedMph * System.Math.C
14 2024-04-19
编程技术问答社区
找到两个多边形之间最短的笛卡尔距离的最快方法是什么?
i具有 1个红色多边形 50随机放置的蓝色多边形 - 它们位于地理 2D空间中.什么是最快/最快的算法,可以找到红色多边形和其最近的蓝色多边形之间的最短距离? 请记住,这不是一个简单的情况,即构成多边形的顶点作为距离的值,因为它们可能不一定是最接近的点. 最终 - 答案应将最接近的蓝色多边形回馈到奇异的红色. 这比听起来更难! 解决方案 我怀疑有比计算红色一个和每个蓝色之间的距离并按长度对它们进行排序更好的解决方案. 关于排序,通常很难在性能中击败QuickSort(经过优化的速度,如果大小低于7个项目并切换到Insertionsort,也许是Shellsort). 因此,我想问题是如何快速计算两个多边形之间的距离,毕竟您需要进行50次计算. 以下方法也适用于3D,但可能不是最快的方法: 2D空间中的最小多边形距离 问题是,您愿意以速度交易准确性吗?例如.您可以将所有多边形包装到边界框中,其中框的侧面与坐标系轴平行. 3D游戏经常使
14 2024-04-17
编程技术问答社区
Google'的'编码折线算法的C#实现。
任何人是否有任何简洁且可靠的实现谷物的我本质上希望实现此签名: public string Encode(IEnumerable points); 解决方案 这是我解决的实现: public static string Encode(IEnumerable points) { var str = new StringBuilder(); var encodeDiff = (Action)(diff => { int shifted = diff = 0x20) { str.Append((char)((0x20 | (rem & 0x1f
16 2024-04-17
编程技术问答社区
如何在地图上找到一个围绕对角线的边界矩形? (地理定位)
用户在地图上绘制一条线,并希望在该行的特定距离中找到一些信息. 我有 a 和 b " lat,lon" 格式的位置,用户告诉我距离 (距离在中的A和A1) 之间. 如何计算 a1,a2,b1,b2 " lat,lon" 格式的位置?我正在使用c#和 coordinatesharp 与位置合作. p.s:我已经阅读在笛卡尔网格系统上工作,但我无法为自己的问题调整其代码. 解决方案 具有A和B坐标,您可以在这两个点上计算轴承(在通常的情况下,注意轴承是不同的). 使用轴承Fi在点A中,您可以计算轴承Fi - 90和Fi + 90,并在相应轴承处找到所需距离的A1和A2. B1,B2 相同 您可以从轴承和的目标点获得距离 轴承 θ = atan2( sin Δλ ⋅ cos φ2 , cos φ1 ⋅ sin φ2 − sin φ1 ⋅ cos φ2 ⋅ cos Δλ ) where φ1,λ1 is the start point, φ2,λ2 th
14 2024-04-17
编程技术问答社区
使用NetTopologySuite将东经/北纬转换为纬度/经度
我有一堆大概是有人得到了一些指针,让我开始? 编辑:朝东和北山脉尤其是OS网格参考物林和北,是 解决方案 这是一个非常古老的问题,但是由于两年后的搜索仍在进行中,我觉得仍然值得提供可能对他人有帮助的答案. 如果您能够使用它,则军械调查现在提供DLL(和关联的数据文件)或可用于执行更准确的OSTN15转换的NTV2文件.这些可根据BSD许可提供: 这种转换将使您的坐标转换为etrs89(大约等同于欧洲的WGS84 ),并且比OSTN97/7参数helmert转换在@codeulike的答案中提到. 其他解决方案 要回答我自己的问题,向东和北金星是法令调查(OS),为此,依赖和经度的conversion依都很好. Chris veness的这个非常好的页面算法和常见的陷阱.他提出了一个JavaScript算法,但我找到了一个c#等效正如Chris Veness指出的那样,算法使您达到纬度和经度,但在OSGB36基准上.通常,您将需要将其转换为更常用的WGS84/G
22 2024-04-16
编程技术问答社区
将geoJson数据转换为sql server空间数据类型(GIS)
我从geojson格式的OpenStreetMaps行政边界(城市,地区,国家等)下载. 我正在尝试使用空间数据将与多边形相关的JSON数据存储在我的MS SQL Server中.由于我从未解析过如此复杂的JSON文件,因此在手动创建C#对象来存储分析数据时遇到了困难. 我正在使用newtonsoftjson.json,读取geojson文件并创建一个对象. 然后,我使用反射来获取与对象相关的属性.这是一项非常繁琐的任务,因为在某些情况下,对象在Geojson文件中嵌套了4个以上的级别.由于我必须为世界上所有城市存储多边形,因此我显然需要一种更快,准确的方法. 实现我的目标的最佳方法是什么? 我猜Json Schemas可能会有很大的帮助,但是如何? 是否有标准的Geojson模式,从某种意义上说,如果我将模式用于OpenStreetMaps和其他GIS框架(Google Maps),它将兼容吗? 解决方案 这可以在SQLServer 2016中的纯SQL中
18 2024-04-15
编程技术问答社区
给定距离、方位、起点,计算端点
我试图找到目标点,鉴于起点纬度/长,轴承和距离.以下网站的计算器为我提供了预期的结果. http://www.movable-type.co.co.uk/scripts/latlong.html 当我尝试通过代码实现相同的情况时,我没有得到正确的结果. 以下是我的代码 - private GLatLng pointRadialDistance(double lat1, double lon1, double radianBearing, double radialDistance) { double rEarth = 6371.01; lat1 = DegreeToRadian(lat1); lon1 = DegreeToRadian(lon1); radianBearing = DegreeToRadian(radianBearing);
14 2024-04-12
编程技术问答社区
我如何找到在给定纬度/长度以北x公里的纬度/长度?
我有一些生成Google地图的C#代码.这些代码查看我需要在地图上绘制的所有点,然后使用矩形的界限来包括这些点.然后,它将其传递给Google Maps API以适当设置缩放级别以显示地图上的所有点. 此代码正常工作,但是我有一个新的要求. 其中一个点可能具有与之相关的精度.如果是这种情况,那么我将半径设置为精确值的点绘制一个圆圈.同样,这很好,但是我的界限检查现在没有做我想做的事情.我想让边界框包括完整的圆圈. 这需要一个算法要取点x,并计算x以北的z米,以及x以南的z米. 是否有人使用此算法,最好是在C#中.我确实找到了一种通用算法在这里,但我似乎没有正确地实现这一点获得1000 km的铺装. 这是通用示例 Lat/lon given radial and distance A point {lat,lon} is a distance d out on the tc radial from point 1 if: lat=asin(
10 2024-04-11
编程技术问答社区
未能解决共同打开的文件gradle.build
我一直在过去的6个小时中挣扎着这个错误,我无法解决.我直接从NextGis Github导入了该项目. 请确定错以及如何纠正它. 在这里' s错误的屏幕播放 此处是来自模块的build.gradle文件,该文件包括错误 apply plugin: 'com.android.application' android { compileSdkVersion 26 buildToolsVersion '27.0.3' defaultConfig { minSdkVersion 14 targetSdkVersion 26 versionCode 37 versionName '2.5.7.1' buildConfigField "String", "CLIENT_ID", "\"Im6GFdPPuPM09BnvFb3EacFZyq8TpRBSAAex7JDZ\"" }
10 2024-04-04
编程技术问答社区
算法--如何在一条折线周围建立一个多边形
我正在使用Google Map API构建网站. 但是,当我在共享服务器上时,我无法访问具有空间扩展的数据库. 给定一个行程,只不过是一系列的线段,我需要在给定的距离上构建多边形.例如,行程的两侧10km. 这是经典的缓冲请求,我被称为" minkowski sum" 算法.搜索后,我没有找到实现的工作示例. 任何人可以帮助我实施此功能... 解决方案 您应该看一下 cgal .该库包含(在许多其他方面)开源Minkowski总和实现,您可以分析.参见在这里
10 2024-04-04
编程技术问答社区