我有经度和经度,我想打开我的地图应用程序.我从这里试过这段代码.
func goToMap(){
var lat1 : NSString = self.venueLat
var lng1 : NSString = self.venueLng
var latitude:CLLocationDegrees = lat1.doubleValue
var longitude:CLLocationDegrees = lng1.doubleValue
var coordinate = CLLocationCoordinate2DMake(latitude, longitude)
var placemark : MKPlacemark = MKPlacemark(coordinate: coordinate, addressDictionary:nil)
var mapItem:MKMapItem = MKMapItem(placemark: placemark)
mapItem.name = "Target location"
let launchOptions:NSDictionary = NSDictionary(object: MKLaunchOptionsDirectionsModeDriving, forKey: MKLaunchOptionsDirectionsModeKey)
var currentLocationMapItem:MKMapItem = MKMapItem.mapItemForCurrentLocation()
MKMapItem.openMapsWithItems([currentLocationMapItem, mapItem], launchOptions: launchOptions)
}
Run Code Online (Sandbox Code Playgroud)
此功能可以成功打开地图,但不会显示任何图钉.它还显示了我不想要的用户位置.我只想在地图上找到所提供纬度和经度的图钉.
我知道谷歌地图是最好的地图,但我不想下载一堆额外的库和所有这些.我更愿意做一些快速而简单的事情来获得从A点到B点的快速路线并完成它.有没有办法用内置的函数/库来做到这一点?有人能指出我正确的方向吗?
编辑
在我的情况下,我不是试图转弯方向或任何东西,我只是想从头到尾划一条线.也许可以选择要走哪条路线.有没有办法做到或没有?
如何才能使网站上的链接首先导致新版Google Maps for iOS应用中的位置,如果不可用,则还原为Apple Maps?
目前,默认功能是maps.apple.com将在iOS上的Apple Maps和其他设备上的Google Maps中打开链接.
因为谷歌地图似乎是大多数用户的首选,所以在iOS上反转这一点会很好.
geocodeAddressString:inRegion:completionHandler重置iOS模拟器后第一次尝试使用时出现此错误:
PBRequester failed with Error Error Domain=NSURLErrorDomain Code=-1000 "bad URL" UserInfo=0x113bba860 {NSLocalizedDescription=bad URL, NSUnderlyingError=0x113bbf2b0 "bad URL"}
这不会发生在设备上,也不会发生在模拟器上的后续运行中(某些内容会被缓存,我假设.)有谁知道它是什么或如何防止它?
正如标题所述,我想通过按下按钮在我自己的应用程序中打开ios设备中的本机地图应用程序.目前我使用了一个MKmapview显示一个简单的引脚,从json文件中取出lat/long .
代码是这样的:
- (void)viewDidLoad {
[super viewDidLoad];
}
// We are delegate for map view
self.mapView.delegate = self;
// Set title
self.title = self.location.title;
// set texts...
self.placeLabel.text = self.location.place;
self.telephoneLabel.text = self.location.telephone;
self.urlLabel.text = self.location.url;
**// Make a map annotation for a pin from the longitude/latitude points
MapAnnotation *mapPoint = [[MapAnnotation alloc] init];
mapPoint.coordinate = CLLocationCoordinate2DMake([self.location.latitude doubleValue], [self.location.longitude doubleValue]);
mapPoint.title = self.location.title;**
// Add it to the map view
[self.mapView addAnnotation:mapPoint];
// Zoom to …Run Code Online (Sandbox Code Playgroud) react-native-maps文档中有一个部分用于缩放到标记数组,但是在docs或examples文件夹中没有关于如何执行此操作的代码示例(我可以找到)
谁能提供一个如何做到这一点的例子?
我正在使用一个MKUserTrackingBarButtonItem按钮,允许用户自动跟踪他们在地图上的位置.问题是,当他们点击此按钮时,它会被缩放得太远.我希望它以指定的缩放级别(即跨度)开始.我怎样才能做到这一点?
当用户点击按钮进行更改时MKUserTrackingModeFollow,它似乎使用用户上次手动更改的相同缩放级别(即在地图上使用手势).尝试通过setRegion或setVisibleMapRect不影响更改模式时将使用的缩放级别来指定不同的缩放级别MKUserTrackingModeFollow.
尝试override mapView:didChangeUserTrackingMode:设置区域会导致模式更改回MKUserTrackingModeNone.例:
- (void)mapView:(MKMapView *)mapView didChangeUserTrackingMode:(MKUserTrackingMode)mode animated:(BOOL)animated {
if (mode == MKUserTrackingModeFollow) {
CLLocationCoordinate2D center = mapView.userLocation.location.coordinate;
MKCoordinateSpan span = MKCoordinateSpanMake(0.002306, 0.001717);
[mapView setRegion:MKCoordinateRegionMake(center, span) animated:YES];
// [mapView setUserTrackingMode:MKUserTrackingModeFollow animated:NO];
}
}
Run Code Online (Sandbox Code Playgroud)
如果我在设置区域后立即尝试重置模式,则在用户静止时可以正常工作,但如果用户正在移动则缩小.
最简单的解决方案是,如果有一种方法可以通过发送我的跨度值来简单地为MKUserTraking指定类似缩放级别的内容.但是,由于这似乎不存在,我还能做什么?
我试图让我的应用程序打开苹果地图应用程序,并将地址拉起来.我试过这个:
- (IBAction)openInMaps:(id)sender {
NSString *addressString = @"http://maps.apple.com/?q=1 Infinite Loop, Cupertino, CA";
NSURL *url = [NSURL URLWithString:addressString];
[[UIApplication sharedApplication] openURL:url];
}
Run Code Online (Sandbox Code Playgroud)
还有这个 :
- (IBAction)openInMaps:(id)sender {
NSString *addressString = @"http://maps.apple.com/?q=1_Infinite_Loop,_Cupertino,_CA";
NSURL *url = [NSURL URLWithString:addressString];
[[UIApplication sharedApplication] openURL:url];
}
Run Code Online (Sandbox Code Playgroud)
但是这个按钮的作用就像没有任何东西.但这确实有效:
- (IBAction)openInMaps:(id)sender {
NSString *addressString = @"http://maps.apple.com/?q=Cupertino,CA";
NSURL *url = [NSURL URLWithString:addressString];
[[UIApplication sharedApplication] openURL:url];
}
Run Code Online (Sandbox Code Playgroud)
所以,只要它们是一个空间,它就不起作用.我该如何打开这个地址?
我试图在我的Swift应用程序(iOS 8+目标)中显示A点和B点之间的所有可能路线.我允许用户选择我的应用程序中的任何一个可能的路线.接下来,我希望用户能够使用在Apple Maps应用程序中导航所选路线(MKRoute)
var fullRouteResponse:MKDirectionsResponse? //This variable has MKRoute information
@IBAction func openInAppleMaps(sender: AnyObject)
{
let placemark = MKPlacemark(coordinate: destinationCoordinate!, addressDictionary: nil)
mapItem = MKMapItem(placemark: placemark)
mapItem.openInMapsWithLaunchOptions(
[MKLaunchOptionsDirectionsModeKey: MKLaunchOptionsDirectionsModeDriving,
MKLaunchOptionsMapTypeKey: MKMapType.Standard.rawValue,
MKLaunchOptionsShowsTrafficKey: true ])
}
Run Code Online (Sandbox Code Playgroud)
这会打开地图应用程序,但我无法弄清楚如何传递特定选定的MKRoute信息,以便用户无需从Apple地图应用程序中的所有可能路线重新选择.
我不确定这是否可能,所以任何指针都会有所帮助.谢谢!
我有这个应用程序,当用户按下我的应用程序中的按钮时,我想使用谷歌地图或苹果地图打开.我怎么能这样做?有没有像打开应用程序的地图的链接或其他东西?如果你能指出我正确的方向,那将是非常有帮助的.谢谢!我按下这个按钮设置如下:
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
for touch in (touches ) {
let location = touch.locationInNode(self)
let node = self.nodeAtPoint(location)
if node.name == "openMaps" {
//code to open google maps or apple maps....
}
Run Code Online (Sandbox Code Playgroud) apple-maps ×10
ios ×9
google-maps ×3
objective-c ×3
swift ×3
iphone ×2
mapkit ×2
maps ×2
ios8 ×1
map ×1
mkmapview ×1
react-native ×1
reactjs ×1
url-scheme ×1
xcode ×1