我是iOS编程新手,我已经下载了适用于iOS的谷歌地图sdk,并按照其网站上的说明进行操作(如此链接https://developers.google.com/maps/documentation/ios/start所示 )并且能够在我的应用程序中获取地图.
现在,我尝试在谷歌地图底部的屏幕上添加一个按钮,为用户提供返回上一屏幕的选项.
我只知道UIButton是UIView的子类,我们可以通过使它成为该类的子视图来使一个按钮出现在视图上.以前iOS默认使用谷歌地图MKMapView,我已经在互联网上的书籍中看到了一些示例,显示了按钮或文本框出现在地图上的应用程序的屏幕截图.但现在只需拖动界面构建器中的按钮对谷歌地图的SDK没有帮助.
这是我的代码:
ViewController.h
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import <GoogleMaps/GoogleMaps.h>
@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIButton *btn;
@end
Run Code Online (Sandbox Code Playgroud)
ViewController.m
#import "ViewController.h"
#import <MapKit/MapKit.h>
#import <GoogleMaps/GoogleMaps.h>
#import <CoreLocation/CoreLocation.h>
@interface ViewController ()
@end
@implementation ViewController
{
GMSMapView *mapView_;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)loadView …Run Code Online (Sandbox Code Playgroud) iphone cocoa-touch interface-builder ios google-maps-sdk-ios
对于我的iOS应用程序(iOS7内置),我需要在应用程序加载时显示用户的当前位置Google Maps iOS SDK.我正在使用.我正在关注
谷歌地图
但我无法理解.如果你走过这条路,请帮忙.
我正在使用带有故事板的Google Maps iOS SDK开发iOS应用程序.在我的主视图控制器"viewDidLoad"中,我实现了一个GMSMapView并显示它
self.view = mapView_;
Run Code Online (Sandbox Code Playgroud)
一切都很好.现在我想在地图上添加一个UIView或UIButton,比如myLocation按钮样式.有什么解决方案可以添加它并通过故事板使用它吗?我已经通过代码在地图上叠加了对象,但我真的需要自动布局,所以通过Storyboard管理它会很好.谢谢.
我正在尝试放置一个标记,但是当我这样做时,这个标记被放置在之前设置的一些标记之后(以及其他一些标记).我想将它设置在所有标记上,但我没有找到任何属性(如z-index)来实现这一点.
这是代码的一部分,我将标记设置在其他代码之后:
GMSMarker *marker = [[GMSMarker alloc] init];
marker.animated=YES;
marker.position = CLLocationCoordinate2DMake(lat, lon);
marker.map = mapView_;
Run Code Online (Sandbox Code Playgroud)
这就是结果:

是否有任何属性或方法将绿色标记放在所有蓝色标记上?我正在使用Google Maps SDK 1.3.0版.
我使用的是Xcode 7.1,部署目标是iOS 9.1.该应用程序是"AreaCalculator",它是用Swift编写的.我做了以下设置框架并导入地图:
$ sudo gem install cocoapods
在"AreaCalculator"下触摸Podfile
在Podfile中我把:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.1'
pod 'GoogleMaps'
Run Code Online (Sandbox Code Playgroud)$ pod安装
在终端:
[!]无法加载插件的 /Library/Ruby/Gems/2.0.0/gems/cocoapods-try-release-fix-0.1.2
规范更新本地规范存储库分析依赖关系下载依赖关系安装GoogleMaps(1.10.5)生成Pods项目集成客户端项目
[!]请关闭所有当前的Xcode会话,并 AreaCalculator.xcworkspace从现在开始用于此项目.发送统计信息Pod安装完成!Podfile中有1个依赖项,安装了1个pod.
之后,我在Navigator中选择了AreaCalculator文件夹并选择File\New\File ...,然后选择iOS\Source\Objective-C File模板并创建一个Bridging文件:
"AreaCalculator-Bridging-Header.h".
然后我在"Link Binary With Libraries"中添加"GoogleMaps.framework"."GoogleMaps.framwork"和""GoogleMaps.bundle"都位于Pods文件夹中.
完成所有这些后,在AppDelegate.swift中,我把:
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
let googleMapsApiKey = "MY_GOOGLE_IOS_API_KEY"
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
GMSServices.provideAPIKey(googleMapsApiKey)
return true
}
}
Run Code Online (Sandbox Code Playgroud)但是,编译器向我显示错误"使用未解析的标识符'GMSServices'".
我不知道我哪里做错了?有人可以帮忙吗?
谢谢!
我在特定位置显示标记,并在Google地图上的地址标签中显示当前地址.
现在,我想通过移动谷歌地图来改变位置,但问题是当我移动地图时,我应该同时移动标记和地图,我应该在地址标签中显示该位置的地址.
我怎样才能做到这一点?
我试过这个:
let destinationMarker = GMSMarker(position: self.destinationLocation.coordinate)
let image = UIImage(named:"sourcemarker")
destinationMarker.icon = image
destinationMarker.draggable = true
destinationMarker.map = self.viewMap
//viewMap.selectedMarker = destinationMarker
destinationMarker.title = "hi"
destinationMarker.userData = "changedestination"
func mapView(mapView: GMSMapView, didEndDraggingMarker marker: GMSMarker)
{
if marker.userData as! String == "changedestination"
{
self.destinationLocation = CLLocation(latitude: marker.position.latitude, longitude: marker.position.longitude)
self.destinationCoordinate = self.destinationLocation.coordinate
//getAddressFromLatLong(destinationCoordinate)
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用谷歌地图SDK,我必须在用户移动时绘制折线,目前它只是动画标记,在针移动到特定位置之前绘制的路径.我必须同时画路径和移动别针.
观看此视频:https://www.dropbox.com/s/q5kdjf4iq0337vg/Map_Sample.mov?dl = 0
这是我的代码
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let location = locations.last!
userPath.addCoordinate(location.coordinate) //userPath -> GMSMutablePath
let polyline = GMSPolyline(path: userPath)
polyline.strokeColor = UIColor(red: 0, green: 191/255.0, blue: 1, alpha: 0.8)
polyline.strokeWidth = 5
CATransaction.begin()
CATransaction.setAnimationDuration(2.0)
self.userMarker.position = location.coordinate
self.userMarker.rotation = location.course
polyline.map = self.googleMapView
CATransaction.commit()
}
Run Code Online (Sandbox Code Playgroud)
我希望能够检测用户是否缩小或移动了地图中心.我已经看过关于事件监听器的帖子但是在Javascript中我试图看看Google Maps iOS SDK中是否有类似的东西.我看到iPad Yelp应用程序有这样的东西,如果你放大/缩小或移动地图,工具栏从底部出现,让用户知道他们是否想要"重做区域搜索".我想做类似的事情,并用其他/更多标记重新加载地图.
我看过谷歌地图的参考指南,但遗憾的是没找到任何东西.如果有人有类似的东西或有关如何实现这一点的任何指导,任何信息都会很棒.提前致谢!
链接到Google地图文档我看过:
https://developers.google.com/maps/documentation/ios/reference/protocol_g_m_s_map_view_delegate-p
https://developers.google.com/maps/documentation/ios/reference/interface_g_m_s_coordinate_bounds
我正在学习Google Maps SDK并了解Swift,当我创建一个以我的位置为中心的mapview时myLocation = true,位置气泡显示出来,但它周围出现了一个方形面具,就像这样

我没有对位置指示器执行任何操作,至少不是故意的.
有没有人遇到过这个问题?
我有一个动态框架,它链接到谷歌地图(据我所知,它仍然是一种静态库,如果不是那样,只需要一个框架包装器).
问题是框架链接到静态库并且似乎也直接包含其代码,因为我不需要在使用框架的应用程序中链接或嵌入Google Maps,一切正常.除非我在应用内部使用Google地图.
要么在编译阶段我得到"架构XY的未定义符号",要么我将谷歌地图链接到它,然后我在app-launch期间在调试控制台中收到警告墙,如:
类GMSPolyline2D在/.../Build/Products/Debug-iphonesimulator/MyFramework.framework/MyFramework和/..../Bundle/Application/7C73324B-4A42-4063-98AA-879345997DE6/MyApp.app/MyApp中实现.将使用两者之一.哪一个未定义.
有没有办法只在框架中链接谷歌地图,但不包括框架产品中的符号?它适用于动态框架,但静态库似乎只是包含在内.我已经尝试使用-weak_framework和弱连接-weak_library,但它似乎不起作用.
实际上,我无法让Xcode -weak_library在其框架目录中找到GoogleMaps二进制文件,即使在.framework文件夹中直接链接为Library Search Path也是如此.
由于我是我框架的唯一用户,因此我可以强制执行使用框架DOES的每个应用程序都包含Google Maps框架.到目前为止,除了警告之外,应用程序工作正常(到目前为止,在运行时使用哪两个类无关紧要,因为两者都应该相同).但是,如果有更好的解决方案,我会睡得更好:)
编辑:我可以通过直接在linker-flag部分中移交绝对路径而不是使用Library Search Path设置来使-weak_library工作.但问题仍然存在,显然它仍然包含在框架中.
ios ×10
google-maps ×3
cocoa-touch ×2
gmsmapview ×2
iphone ×2
objective-c ×2
swift ×2
marker ×1
overlay ×1
xcode ×1