问题标签 [geoswift]

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.

0 投票
1 回答
298 浏览

swift3 - 需要 MKPolyline 但代码不断返回 MKShape

我想检索 MKPolyline,但我的代码不断返回 MKShape。我正在尝试使用此处描述的 GEOSwift 库: https ://github.com/GEOSwift/GEOSwift

我的代码:

我收到错误:无法使用类型为“(MKShape)”的参数列表调用“添加”

(让 shapeLine = linestring.mapshape() 应该将其转换为 MKPolyline)

但是,如果我运行:

我明白了:

这是说那里有一条折线吗?

我的叠加渲染器:

另外,我已经有其他折线在这个应用程序上工作。我已设置 MKMapViewDelegate 并将委托设置为 self。

///为了避免xy问题 - 我试图沿着一条路线搜索,所以我使用GEOSwift在折线周围创建缓冲区,然后使用它来搜索具有这些点的地理查询的数据库,下面是描述的具体问题在标题中:///

我确定错误很简单,但是我看了很长时间相同的代码,我只是看不到它。

任何帮助深表感谢

0 投票
1 回答
457 浏览

swift - Not able to parse the geometry LineString from GEOSwift library to show polyline in MapView

I have geojson file to show in Mapview. It contains thousands of coordaantes under the type "LineString". So, for parsing I used "GEOSwift" library.

But, while parsing time its not able to getting the data from LineString and its getting out of the condition from following.

The code is

Even tried like following, but, showing compile time errors.

The sample data of geojson is like

The hierarchy is like PFA.

Can anyone suggest me, where I am doing wrong?

enter image description here

I have followed following link completely, but, they did not given example for LineString.

https://github.com/GEOSwift/GEOSwift

0 投票
0 回答
814 浏览

ios - 在 iOS 中加载数千个数据和放大时间时,MapView 冻结了几秒钟

我正在Mapview使用快速语言进行开发。因为,我正在将 geojson 文件加载到我的地图视图中,它的加载成功。我正在加载GEOSwift库。它工作正常,但是,发生了什么,在加载数据时,地图视图在 UI 中冻结/卡住了几秒钟,然后显示数据。即使在 Zooming 时间也冻结 UI 几秒钟。

我正在加载LineString类型数据,其坐标约为 7000 个数据。

即使我只是在后台线程中解析数据。

我有两个 3 个选项卡,用于在我的地图中加载不同的数据,其中 3 个geojson

文件。即使将一个数据切换到另一个数据,它也会冻结。

在调试中,在放大/缩小地图视图时会出现以下错误打印。

我的代码如下。

并且有一次应用程序在控制台中抛出以下消息而崩溃。

并且它从设备的 cpu 中占用了巨大的内存。

在此处输入图像描述

在滚动 mapview 或 zoomin/zoomout 时,它总是调用委托方法,这使得 mapview 冻结。

我该如何解决这个问题?

0 投票
0 回答
369 浏览

ios - Swift:将 MKPolygon 转换为 UIBeizerpath 并在 UIView 上绘制路径

我有一个包含 FeatureCollection 的 geojson 文件。我用 GEOSwift 解析 json 并最终得到 MKPolygon 对象。

我已经设法将多边形绘制为 MKMapView 的叠加层,但性能真的很差!

我拥有的 geojson 文件包含通往世界上每个国家/地区的路径。所以我实际上不需要地图,因为我只想将多边形直接绘制到 UIView。这是我获取 MKPolygon 的代码:

我知道可以使用 UIBeizerPath 绘制形状,但我不知道如何将我的 MKPolygon 转换为可以在 UIView 上显示形状的东西。

0 投票
0 回答
89 浏览

ios - 使用 GEOSwift 时,如何创建宽度以米为单位的缓冲 LineString?

我希望找到一种使用 GEOSwift 获取一系列用户 LatLngs 的方法,构造一个线串并将其缓冲为始终为 30 米宽,无论用户的位置如何。我觉得必须有比我要走的路更简单的方法,任何帮助都将不胜感激。

背景:

据我所知,缓冲区函数宽度参数当前以十进制度定义,因为我的坐标系是 EPSG 4326,这使得以米为单位计算宽度变得困难。我可以使用 Haversine 公式粗略估计经度或纬度的每十进制度数米。

我遇到的问题是一系列点可以在纬度和纵向上移动。因此,在这些情况下,我需要的缓冲区宽度介于 ThirtyMetersInLatDegrees 和 ThirtyMetersInLngDegrees 之间。在这种情况下,提供给缓冲函数的宽度变成了用户在与 ThirtyMetersInLngDegrees 和 ThirtyMetersInLatDegrees 相关的整个线串中的整体纵向和纬度移动的奇怪近似值/平均值。

即假设 ThirtyMetersInLngDegrees 是最大值:

ThirtyMetersInLatDegrees <= bufferWidth <= ThirtyMetersInLngDegrees

我怎样才能更好地做到这一点?

这是我如何计算每十进制度数的米:

0 投票
0 回答
142 浏览

swift - 为什么我的 lineString 没有在 geoSwift 中转换为 mapShape - (只发生在一个特定的搜索中),可能是外部库错误?

我正在使用 GEOSwift 库:https ://github.com/GEOSwift/GEOSwift

我最好的猜测是,如果您查看链接的字符串图像,它看起来好像不是一个正确的圆圈,所以也许它是库中的一个错误?但我对此完全不确定!

只有当我输入一个特定的线串时,我才会遇到问题。我的应用程序采用一组路线坐标,将它们转换为 WKT 字符串(代表一条线)。然后它围绕这条线创建一个缓冲区,然后将其转换为 mapShape。

它运行良好,直到我搜索一条特定的路线。

它在这里失败:

以下是图片链接以查看其外观: LineString - https://imgur.com/a/7OLPZkM String - https://imgur.com/a/KJRfpRX

即使 shapeLine 没有初始化,线串和字符串值仍然存在,所以我很难看到我哪里出错了。它们似乎也以相同的方式格式化。

我试图用谷歌搜索 WKT 字符串验证器,但没有找到,但我认为应该没问题,因为我返回多个其他搜索没有问题。(即 shapeLine 返回一个值)

我的问题是:这看起来像是我的代码中的问题,还是库的可能错误?(我对我的代码没有信心!)

0 投票
1 回答
635 浏览

ios - GEOSwift with Google Maps iOS SDK (Draw a polygon)

I am using GEOSwift library (https://github.com/GEOSwift/GEOSwift)

I need help in:

1 - How can I draw polygon geometry data on Google Maps, Here is the code:

2 - How can I get Coordinates (lat, long) from the Geometry (geometry) back in form of string or CLLocationCoordiantes

Thanks ...