- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 MKMapView 上绘制多个点。在两个直线点之间,这很容易——我只需找到中间坐标并使用它们:
// Center
CLLocationCoordinate2D center;
center.latitude = self.midLatitude;
center.longitude = self.midLongitude;
myRegion.center = center;
但是如果我在 map 上有洛杉矶、华盛顿特区和西雅图呢?我有自己的代码,它根据数组中的第一个和最后一个坐标计算中心。在上面的例子中,我只看到了洛杉矶和西雅图。
还有其他方法可以确定三点之间的中心吗?
谢谢!
编辑:
添加了 MKMapRect 的新代码:
-(void) addAnnotation {
MKMapRect showMapRect = MKMapRectNull;
CLLocationCoordinate2D mapLocation;
IGAMapAnnotation *mapAnnotation;
// Calculate how many points are included in the plan
NSInteger numberOfPoints = [coordinatesTempArray count];
MKMapPoint annotationMapPoint;
MKMapRect annotationMapRect;
if (numberOfPoints > 0) {
// Trying to add coordinates from the array of coordinates
for (NSInteger i=0; i < ([coordinatesTempArray count]); i++) {
... // Code that adds annotations
// Adding the annotation to the array that will be added to the map
[mapLocations addObject:mapAnnotation];
// Adding Annotation coordinates to MKMapRect so that they all be visible in the view
annotationMapPoint = MKMapPointForCoordinate(mapLocation);
annotationMapRect = MKMapRectMake(annotationMapPoint.x, annotationMapPoint.y, 0, 0);
showMapRect = MKMapRectUnion(showMapRect, annotationMapRect);
}
}
// Showing all annotations at a time
self.mapView.visibleMapRect = showMapRect;
// Now I am trying to zoom out a bit since the extreme annotation are right at the border of the mapview. THIS DOES NOT WORK.
MKCoordinateRegion region;
region = MKCoordinateRegionForMapRect(annotationMapRect);
MKCoordinateSpan span;
span.latitudeDelta = 0.09;
span.longitudeDelta = 0.09;
region.span = span;
region = [self.mapView regionThatFits:region];
[self.mapView setRegion:region animated:YES];
// Showing all annotations at a time
self.mapView.visibleMapRect = showMapRect;
// Adding annotations to the map
[self.mapView addAnnotations:mapLocations];
}
}
最佳答案
在编辑后的代码中,尝试比计算的MKMapRect
“缩小一点”是行不通的,因为:
MKCoordinateRegionForMapRect
时,它传递的是 annotationMapRect
(单个注释的矩形)而不是 showMapRect
(所有注释的矩形) ).showMapRect
中获取跨度并将其扩展一点(我将其乘以 1.1)。setRegion
后,代码再次使用原始 showMapRect
调用 setVisibileMapRect
,这会撤消所有与缩小区域。在修复上述问题后,您可以使用 setRegion
缩小一点,但您已经发现更简单的方法是使用 setVisibleMapRect:edgePadding:animated:
而不是仅仅setVisibleMapRect:
.
关于mapViewDidFailLoadingMap
的问题:
很难说为什么在您的特定情况下无法加载 map 。
但是无论是什么原因,如果您必须让用户知道 map 加载失败,我的建议是使用 UILabel
而不是 UIAlertView
。
与其每次 map View 加载出现问题时都让用户点击“确定”,不如在 map View 加载失败/完成加载时显示/隐藏标签。
这样,用户会收到“提醒”,但他们不会因为不断点击“确定”而烦恼。
这可能会给用户带来更愉悦的体验。
使标签成为 map View 是其 subview 的同一 View 的 subview 。也就是说,让他们成为 sibling 。不要使标签成为 map View 的 subview 。最初将标签设置为“隐藏”或将 alpha
设置为 0,这样您就可以在委托(delegate)方法中为标签显示/隐藏设置动画。您可以将标签放在 map View 前面(如果屏幕上没有空间),但不能放在 map View 的 subview 上。
例子:
//initialize label alpha to 0 in viewDidLoad...
mapLoadFailedLabel.alpha = 0;
-(void)mapViewDidFailLoadingMap:(MKMapView *)mapView withError:(NSError *)error
{
[UIView animateWithDuration:0.5 animations:^{
mapLoadFailedLabel.alpha = 1.0;
}];
}
-(void)mapViewDidFinishLoadingMap:(MKMapView *)mapView
{
[UIView animateWithDuration:0.5 animations:^{
mapLoadFailedLabel.alpha = 0.0;
}];
}
关于ios - MK map View 。寻找具有三个散点的区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25235042/
我对Android.mk & Application.mk的使用有点模糊 我已尝试阅读 documentation that comes with NDK 中的 APPLICATION-MK.HTML
我需要在 Application.mk 文件中指定库的路径才能正确链接它。这个怎么做?有任何 GCC 命令吗? 最佳答案 您必须将 LOCAL_LDLIBS := -L/path/to/the/lib
在 The Little Schemer book ,在第 9 章中,在为任意长输入构建 length 函数时,建议执行以下操作(在 pages 170-171 上),即以下代码片段(来自 page
我使用 jni 创建了一个 Android 项目。现在我想使用预处理器宏来区分精简版和完整版。它应该看起来像这样: #ifdef LITE auto label = LabelTTF::cre
看起来有可能,但我的脚本产生了奇怪的结果: LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) include $(LOCAL_PATH)/libos/
我正在深入研究在我的项目中使用android tesseract api。 https://github.com/rmtheis/tess-two 我将 com_googlecode_leptonic
在 Android 应用程序中,我想将一个 android.mk 文件导入应用程序中的另一个 Android.mk 文件 为此,我在一个 Andorid.mk 文件中使用了该文件,该文件将被导入到同一
这是代码 -(id) initWithNibName:(NSString*) nibNameOrNil bundle:(NSBundle*)nibBundleOrNil { ... [se
我已经下载了 OpenCV for Android 版本 3.2 并将其 java 模块导入到我的项目中。我已将 native (c++) 代码复制到 openCVLibrary320/app/src
我从来没有用 Android 构建过 curl。 先决条件:我正在使用 Android Studio 2.1.2我正在使用 NDK ,非实验性方式我在 curlLib 目录的 jni 文件夹中有 cu
我有一个顶级 defines.mk 文件,它列出了某些目录和 C 库,根据项目的不同而包含。 KERNEL_LIB = -lkdev DRIVER_LIB = -ldriver -lutil -li
Android.mk简介: Android.mk文件用来告知NDK Build 系统关于Source的信息。 Android.mk将是GNU Makefile的一部分,且将被Build
我觉得 CMake 和 Android.mk 有很多共同点,有人可以向我解释一下有什么区别,为什么谷歌发明了一个新的构建系统而不使用 CMake? 最佳答案 Android 开发人员有更多的变化。现在
我正在努力获取一个模块以在 Android 上编译。它引用了一个已经存在的共享库——我只有 .so 和 .h 文件。 我当前的 Android.mk 如下所示: LOCAL_PATH:= $(call
嗨,我是 android 应用程序的新手,你能告诉我如何创建 jni 和 android.mk ....我知道 jni 的目的但是如何在我的项目中创建那个 jni 告诉我一步一步 最佳答案 嗨NDK
在Android.mk中有什么方法可以使用条件表达式吗?我需要它来做这样的事: IF arch = AREABI_V7 *use path for my arm_v7 static libs*
在我的新项目中,我需要基于一个c写的项目。而且我知道我可以使用 NDK 来完成它,但这里有一个问题:如何将标准的 Makefile 重写到 Android.mk 中?再者,在Android中,是否可以
我正在使用 Android NDK 构建我的 cocos2dx 项目,在 Android.mk 中,有一个 LOCAL_SRC_FILES 的定义,其中列出了每个 cpp 文件。每当我添加一个新的源文
我正在尝试使用 android ndk(在 Windows 上)构建一个项目,但我遇到了一些问题,特别是源文件(Android.mk 中的 LOCAL_SRC_FILES) 我正在尝试使用父文件夹的相
LOCAL_PATH := $(call my-dir) TOP_LOCAL_PATH := $(call my-dir)/../ #Add target arm version ifeq ($(TA
我是一名优秀的程序员,十分优秀!