私は現在iosアプリを構築しています.ユーザーの場所がGoogleマップビューに表示され、ポリラインを移動するとユーザーがこれまでに移動したパスを表示する機能を実装したいと考えています. これは明らかにリアルタイムで行う必要があります。
ここまでで、Google マップ ビューを初期化し、 observeValueForKeyPath関数を使用してユーザーの現在地を表示できるようになりました。ユーザーが移動すると、ビューと位置マーカーが更新されます。
これを行う最善の方法は、マップ カメラが新しい場所に更新されるたびにユーザーの現在の場所を追加する GMSMutablePath オブジェクトを作成し、そのパスからポリラインを作成することだと考えました。これに使用したコードは次のとおりです。
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString:@"myLocation"] && [object isKindOfClass:[GMSMapView class]])
{
[self.myMapView animateToCameraPosition:[GMSCameraPosition cameraWithLatitude:self.myMapView.myLocation.coordinate.latitude
longitude:self.myMapView.myLocation.coordinate.longitude
zoom:18]];
[trackedPath addCoordinate:CLLocationCoordinate2DMake(self.myMapView.myLocation.coordinate.latitude, self.myMapView.myLocation.coordinate.longitude)];
GMSPolyline *testPoly = [GMSPolyline polylineWithPath:trackedPath];
testPoly.strokeWidth = 8;
testPoly.strokeColor = [UIColor redColor];
testPoly.map = myMapView;
}
}
これにより、実際にはマップ上にポリラインが生成されないため、ヘルプ/アドバイスをいただければ幸いです。