在地图视图中,我显示当前用户位置.点击它显示"当前位置"的图钉.我想将其更改为"我的当前位置".我怎样才能改变它.另外,我想在计时器中更改当前用户位置的引脚颜色.有点像每一秒它应该改变绿色,紫色和红色之间的颜色.可以这样做吗?
我正在使用地图套件显示默认位置,然后操纵注释引脚颜色如下:
- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation{
static NSString *AnnotationViewID = @"annotationViewID";
SolarAnnotationView* annotationView = (SolarAnnotationView*)[map dequeueReusableAnnotationViewWithIdentifier:AnnotationViewID];
if(annotationView == nil)
{
if([self CLLocationCoordinate2DEquals:mapView.userLocation.location.coordinate withSecondCoordinate:[annotation coordinate]]) //Show current location with green pin
{
annotationView = [[SolarAnnotationView alloc] initWithAnnotation:annotation];
annotationView.delegate = self;
[annotationView setPinColor:MKPinAnnotationColorGreen];
}
else
{
annotationView = [[SolarAnnotationView alloc] initWithAnnotation:annotation];
annotationView.delegate = self;
}
}
return annotationView;
Run Code Online (Sandbox Code Playgroud)
}
- (BOOL) CLLocationCoordinate2DEquals:(const CLLocationCoordinate2D)lhs withSecondCoordinate:(const CLLocationCoordinate2D) rhs{
const CLLocationDegrees DELTA = 0.001;
return fabs(lhs.latitude - rhs.latitude) <= DELTA && fabs(lhs.longitude - …Run Code Online (Sandbox Code Playgroud) 我有一些MKOverlays(实际上它们是MKPolygons),一旦地图出现就会加载.我想动态改变它们的颜色.我可以看到这样做的唯一方法是删除叠加层然后用新颜色添加它.在现有的叠加层上有更好的方法吗?
我是objective-c/xcode/ios的全新...所以请温柔:)
这是一个程序性较小且与服务相关的问题.
在iOS6独立苹果地图发布之前,我使用了苹果原生地图API,它整合了谷歌地图服务.所以现在我在选择Apple和Google Map之间感到困惑.
去年之后地图问题Apple似乎有了很大的改进,但是值得使用Apple原生地图而不是更可靠的Gmaps(适用于任何地点)?
我需要将地图服务集成到导航服务中,因此我需要在两者之间做出决策以用于开发.
有经验的人(iOS7地图N谷歌地图SDK for iOS)欢迎使用优点.
先感谢您!!
[注意:我已经看过其他类似的链接,但它们在应用程序的最终体验n输出中并不广泛]
如何在地图上垂直移动(通过Pan Gesture)另一个视图,使得引脚保持在覆盖图上方(而不是实际的MapKit覆盖图),如何将引脚置于地图中心.
请参阅附加屏幕截图,了解第一个和最终状态.
当用户平移上/下时,我已经获得了叠加层和屏幕顶部之间空间的CGRect.然而,当用户向上平移时,我如何使用它来移动地图和图钉同时放大地图......当用户向下平移时再次缩小,到目前为止我已经躲过了.
我尝试过不同的方法,从尝试调整可见矩形到调整地图视图的框架.答案可能在于一些MKMapRect/Region技巧.


(Freepik CC BY 3.0 手形图标)
在点击和显示 MKMapView 上的注释的标注之间几乎有 0.5 秒的延迟。
有谁知道为什么会这样,以及如何在用户点击地图时使其立即响应?
即使用户位置注释在点击时在标注中显示“当前位置”,也会发生这种情况。我希望它在点击时立即显示,没有奇怪的延迟。
编辑:我认为这是由于 didSelectAnnotationView 调用的 setSelected 函数。setSelected 有一个可能会减慢它的“动画”属性。如何消除该动画?
When using the new Xcode 11 beta. I'm getting the following crash while running my app that uses MapKit. Xcode 10 works fine. Also creating a new project and adding a Map with Mapkit works fine.
A simple web search doesn't yield anything.
Any clues where to look to solve this problem?
Xcode 11 beta 1:
dyld: Symbol not found: _NavigationConfig_MapLocalizeLabels
Referenced from: /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/MapKit.framework/MapKit
Expected in: /Users/Teameh/Library/Developer/Xcode/DerivedData/MyApp-dejdjcwzzweszweqllhjxqbarbsp/Build/Products/Debug-iphonesimulator/Navigation.framework/Navigation
in /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/MapKit.framework/MapKit
Run Code Online (Sandbox Code Playgroud)
Xcode 11 beta 3:
dyld: Symbol not found: _NavigationConfig_MapLocalizeLabels
Referenced from: …Run Code Online (Sandbox Code Playgroud) [VKDefault] Triangulator failed to fully triangulate polygon MapKit我遇到一个问题,在放大和缩小地图上的特定区域时收到警告。
我正在从 json 数据创建多边形,该数据可以包含 MKPolygon 或 MKMultiPolygon。200 多个多边形中只有几个存在问题。
对我来说,数据看起来不错。我尝试删除坐标数组中的重复项(如果它们包含任何重复项),但没有成功。也许我做得不对,因为 MKMultiPolygon 是从 [[[[Double]]]] 创建的
这是该项目的链接 - https://www.dropbox.com/s/zwy08upcne11dyy/VectorMaps%203.zip?dl=0
这只是一个原型,所以请不要强迫我强行展开。
这就是带有警告的区域的样子。
我在 ViewController 中添加了我遇到问题的区域列表。
解决警告的额外奖励
VectorMaps[1611:116104] [VKDefault] Style Z is requested for an invisible rect
struct SubRegion: Decodable {
var id: Int
var name: String
var geometry: Geometry
enum CodingKeys: String, CodingKey {
case id, name, geometry = "geojson_geometry"
}
}
enum PolygonType: String {
case multiPolygon = "MultiPolygon"
case polygon = "Polygon"
}
struct …Run Code Online (Sandbox Code Playgroud) 在iOS 15(实际上是从 iOS 14 开始)上,MKMapView当点击默认用户位置时,会显示一个标注,显示一种“空”个人资料图片。
您可以在屏幕截图下方看到点击用户位置时出现的标注,我想更改那里显示的图像。
可以配置吗?
例如,设置我自己的个人资料图片,但行为保持不变。
澄清一下,我不想更改用户位置注释,也不想添加自定义注释,也不想将自己的标注添加到用户位置注释中。我只是想知道是否可以为现有标注设置图像。
图片上显示的用户位置是默认位置,使用:MKMapView.showsUserLocation = true
有些人指出这可能与其他问题重复,但事实并非如此。
另一个问题涉及如何配置引脚或注释视图(MKPinAnnotationView或MKAnnotationView)。
我的情况则完全不同。我希望能够编辑默认用户位置上显示的个人资料图片。这似乎是一个私有类,但我想知道是否有公共访问权限来配置它。
我目前正在尝试在我的应用程序中显示路线,但我收到 [UserSession] 映射请求的短会话,但在控制台中未启用会话共享。我将 MapView 和路线计算分离在不同的结构/类中,所以这可能就是原因。我从未听说过 UserSession
[UserSession] maps short session requested but session sharing is not enabled
Run Code Online (Sandbox Code Playgroud)
我在网上看到有人说这是 iOS 15 / Xcode 中的一个错误,但我还没有找到任何解决方案或解释这个错误的含义。