问题标签 [mkoverlay]

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 投票
2 回答
4374 浏览

ios - 有没有办法使用路径绘图添加文本

我有一个继承自 MKOverlayPathView 的地图自定义视图。我需要这个自定义视图来显示圆圈、线条和文本。

我已经设法使用路径绘图 CGPathAddArc 和 CGPathAddLineToPoint 函数绘制圆和线。

但是,我仍然需要添加文本。

我尝试使用添加文本

但我得到了无效的上下文错误。

任何的想法?

0 投票
0 回答
296 浏览

iphone - 我可以改变 mkpolylineview 的线条形状吗?

我想知道我是否可以在 mkpolyline 视图中使用定向箭头线而不是直线。

我将这些线用作叠加层。谁能告诉我如何将箭头线作为叠加层?

我需要为此子类 mkpolyline 或 mkoverlay 吗?我不知道该怎么办...谢谢您的帮助

0 投票
1 回答
545 浏览

iphone - 没有在覆盖视图上绘制线条

我试图在叠加视图中的两点之间画一条直线。在 MKOverlayView 方法中,我认为我做得正确,但我不明白为什么它没有画线......

有谁知道为什么?

感谢您的帮助。

0 投票
1 回答
324 浏览

mkmapview - 旋转 MKMapKit

我正在尝试使用 MapKit 旋转 MKMapView。

我可以显示地图并旋转它,但效率不高。我创建了一个比视图大的 MKMapView 并使用 CGAffineTransformMakeRotation 旋转它,因此视图后面的灰色区域不可见。虽然我在 Interface Builder 中检查了剪辑子视图,但我仍然觉得这不是正确的实现。

此方法确实允许我旋转显示为 MKPinAnnotationView 符合 CGAffineTransformMakeRotation 函数的任何注释,但是在尝试向地图添加覆盖时遇到问题。

我可以在类声明中使用 boundingMapRect 属性进行叠加,但图像在显示器上保持不旋转。有没有办法做到这一点?或者我应该以不同的方法旋转 MKMapView 和注释?

提前感谢您提供任何建议或信息。

0 投票
1 回答
1218 浏览

iphone - Google Directions API 折线未添加到地图

我在使用 Google Directions API 时遇到问题。我正在获取 JSON 字符串并对其进行解析,得到 overview_polylines 字符串

这东西行得通。我无法将其添加到地图中。我正在使用这篇文章http://iosguy.com/tag/directions-api/这似乎正是我所追求的。

我已经实施了

方法,效果很好。我对结果进行了 NSLogged,它显示出来好像我正在输出 CLLocation 对象。

问题是我不能让它显示在地图上。这是下面的代码

我还尝试添加显式调用

这是:

最后一个方法被调用,我使用 NSLog 进行了检查,但地图上没有显示任何内容。

有什么想法吗?提前致谢!

0 投票
3 回答
1804 浏览

ios - viewforoverlay 永远不会被调用

这让我发疯了。我已经浏览了 stackoveflow 上的所有帖子,但没有任何内容符合要求。我正在尝试添加一个简单的折线(即不是自定义叠加)作为我的MKMapView. viewForOverlay委托上的方法永远不会被调用。地图委托被正确地为所有其他委托函数调用。以下是该viewForOverlay方法的代码:

这是我构造折线并将其添加到地图的代码:

折线实际上确实有我的点集合(大约 1000 个),所以我认为问题不存在。我是否缺少地图视图上的一些必需属性或其他一些实现?

编辑显示折线MKMapPoint生成的代码:

我使用一个包含大约 1100 个点的 xml 文件来生成折线,作为 appConfig 过程的一部分。NSXMLParser我分别用和读取和解析文件NSXMLParserDelegate。这是生成点的代码(来自协议foundCharacters中的方法NSXMLParserDelegate):

这是点实际生成MKPolyline并将其提供给 mapView 的位置(来自协议didEndElement上的方法NSXMLParserDelegate):

上的点数属性MKPolyline实际上表示其中有 1100 个点。

编辑:示例 XML 值:

0 投票
1 回答
737 浏览

iphone - 添加两个 MKPolylineView

我无法在 MKOverlayView 中添加两个不同颜色的不同 MKPolylineView。关于如何实现这一目标的任何想法?谢谢

这是我的代码:

0 投票
1 回答
1097 浏览

ios - 为什么启用 userlocation 时不调用 MKMapView 的 mapView:viewForOverlay:?

我在 MKMapView 中添加了一些 MKPolygons,MKMapView 可以很好地显示它们。如果我现在为此 MKMapView 启用 userLocation 并且用户授予其位置的权限,则不会调用任何委托,也不会绘制覆盖。在下一个 viewDidLoad 之后,代表再次正常工作并显示所有叠加层。

因此,如果要求用户授予其位置的权限,问题似乎只会出现。

我希望有人对这种奇怪的行为有解释/解决方案,谢谢。

更新

正如我发现的那样,它与用户位置无关。不知何故,MKMapView 没有调用它的代表来绘制覆盖,但只有当它是第一个应用程序启动期间的初始视图时。之后一切正常。

0 投票
1 回答
5845 浏览

objective-c - 向 MKMapView 添加多个叠加层

我在理解如何向 MKMapView 添加多个叠加层时遇到了一些麻烦。

我跟踪了一个数组路线。跟踪的路线是 CLLocations 的数组。所以我有一个数组数组。

我可以选择一条路线并将其绘制在地图视图上。但是,我需要将所有路线绘制到地图视图上。

所以这是我为 1 条路线创建 MKPolyline 的方法:

这是返回叠加层的 MapKit 委托调用:

所以上面给出的所有代码都可以正常工作。我不知道如何加载更多叠加层来显示其他路线。

我认为可能在 loadRoute 方法中,遍历所有路由并为每个路由创建一个 MKOverlayView。将所有这些 MKOverlayView 存储在一个数组中,然后执行: [self.mapView addOverlays:array];

但它不起作用。问题是,在委托方法中,我不知何故需要知道要返回哪个覆盖。

因此,如果我可以按照以下方式做一些事情:

它会工作得很好。但不幸的是,它不是那样工作的:(

任何帮助将不胜感激!

编辑:

我在 ViewDidLoad 中使用它来添加覆盖:

这是在标题中:

0 投票
1 回答
3471 浏览

ios - MKMapView - 将地图滚动限制为方形覆盖

我有一个带有方形叠加层的 MKMapView,描述为:

我希望限制用户滚动到覆盖层之外。

我可以为此限制 MKMapView 滚动视图吗?还是有其他方法?

谢谢

沙尼