質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

645閲覧

Map ピンの打ち方

Maiko.

総合スコア0

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2020/07/11 16:18

実現したいこと
・ユーザーが動画を投稿した場所を地図上でピン表示し、別のユーザーが地図上からそのピンを選択し、動画を見るアプリを作りたいです。

分からないこと
・ピンの打ち方(ユーザーが打つ)
・動画アップロードの方法

使用言語 
Swift UI
X code 11
プログラミングの勉強を始めてまだ二週間です。Swiftの文法は理解できましたが、実際に機能を実装する手順についてほとんど知識がありません。

試したこと
・MKAnnotationが地図上への動画アップロードに関係があるかと思い、ドキュメントを参照しましたが、導入の仕方がわかりませんでした。
・ユーザーがピンを打つ際に、On Long Press Gestureを使用する場合の以下のコードを書いたがAbort trap6というエラーが出て解決できませんでした。

import Foundation
import MapKit
import SwiftUI
import UIKit
import CoreLocation

struct MapView: UIViewRepresentable {
func makeUIView(context: Context) -> MKMapView {
return MKMapView()
}
func updateUIView(_ uiView: MKMapView, context: Context) {
}
}

struct ContentView1: View {
var body: some View {
MapView()
.edgesIgnoringSafeArea(/@START_MENU_TOKEN@/.all/@END_MENU_TOKEN@/)
.onLongPressGesture {
class ViewController: UIViewController, CLLocationManagerDelegate, MKMapViewDelegate{
@IBOutlet weak var testMapView: MKMapView!
var myLocationManager: CLLocationManager!
var pinByLongPress: MKPointAnnotation!
override func viewDidLoad() {
super.viewDidLoad()
myLocationManager = CLLocationManager()
myLocationManager.requestWhenInUseAuthorization()
}
func locationManager(_ manager: CLLocationManager, didFailWithError error: Error){
print("error")
}
@IBAction func longPressMap(_ sender: UILongPressGestureRecognizer) {
if(sender.state != UIGestureRecognizer.State.began){
return
}
pinByLongPress = MKPointAnnotation()
let location: CGPoint = sender.location(in: testMapView)
let longPressedCoordinate: CLLocationCoordinate2D = testMapView.convert(location, toCoordinateFrom: testMapView)
pinByLongPress.coordinate = longPressedCoordinate
testMapView.addAnnotation(pinByLongPress)
}
}
}}

}

struct ContentView1_Previews: PreviewProvider {
static var previews: some View {
ContentView1()
}
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2020/07/11 20:50

@IBOutlet や @IBAction は SwiftUI では使えません。 あと、動画のアップロード先は考えてますか?
Maiko.

2020/07/12 06:36

ありがとうございます。そうなのですね、少し情報が古かったようです。動画のアップロード先にどのような種類があるのかよく分かっていないのですが、アプリ内で完結させたいと思っています。
hoshi-takanori

2020/07/12 07:09

「投稿した動画を別のユーザーが見る」という機能は、アプリ内では完結しない (何らかのサーバーかサービスが必要) と思いますが…。
Maiko.

2020/07/12 07:29

サーバーが必要になるのですね。勉強を始めたばかりで、そこまで実装するのはかなり難しそうです。YouTubeなど外部の動画を、撮影された場所にピンを立ててMap上に表示する場合には、サーバーはいらないのでしょうか。(旅行動画のような、撮影場所が公開されている動画を想定しています)
Maiko.

2020/07/12 08:31

調べていただいてありがとうございます。つまりそのYouTubeの機能をApp内のMapに表示する方法を調べれば良いのですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問