Mapの使い方

Mapの使い方とは?

地図を表示して、自分の居場所に近いお店を表示する。

iosでそんなアプリを作るなら、mapkitの使い方について知っておく必要があります。

 

SwiftUIでアプリを作る場合、橋渡しをしたり。

UIKitの使い方を身に着けたりする必要があります。

 

【ポイント】

MKMapView

UIViewRepresentable

MKAnnotation

bodyは消す

 

参照>>

 

Mapkitとは

地図をWebサイトに埋め込むためのJavaScript APIです。

 

アプリのウィンドウにマップを埋め込める

東京駅だけに、注釈を入れる事ができる

ポイントを追加したり

ルート検索

ルート案内などが実装できます。

 

外観の大きさなどもカスタマイズできます。

 

【注意点】

Mapkitは古いので、swiftuiの

var body: some View と書いてあると表示できない。

var body: some Viewは「swiftui」のViewが関係しているらしい。

 

 

MKMapView とは

埋め込みできる地図の事。「クラス」です。

クラスと構造体があり、クラスで書いてあるという事は、古くからあると認識できます。

 

出来る事

 

マップを表示できる

ユーザーが操作する事ができる

注釈、表示のサイズを変える

中心点を決める

ズームレベルを設定する

指の動きに合わせて、拡大、縮小できるの

 

公式ドキュメントを見ると

 

class MKMapView : UIView

 

と書いてあります。これで、UIViewに準拠した、クラスである事が分かります。

 

 

公式ドキュメントのサンプルソース

MapView.swift にて作成

import SwiftUI
import MapKit//MapKitを使えるようにする

 

struct MapView: UIViewRepresentable {//橋渡しをするプロトコル
func makeUIView(context: Context) -> MKMapView {//MKMapView型
MKMapView(frame: .zero)
}

 

func updateUIView(_ uiView: MKMapView, context: Context) {
let coordinate = CLLocationCoordinate2D(
latitude: 34.011286, longitude: -116.166868)

 

let span = MKCoordinateSpan(latitudeDelta: 2.0, longitudeDelta: 2.0)
let region = MKCoordinateRegion(center: coordinate, span: span)
uiView.setRegion(region, animated: true)
}
}

struct MapView_Previews: PreviewProvider {//プレビュー表示の部分
static var previews: some View {
MapView()
}
}

 

 

struct MapView: UIViewRepresentable {//橋渡しをするプロトコル
func makeUIView(context: Context) -> MKMapView {
MKMapView(frame: .zero)
}

 

空の地図を作り、古いキットを使えるようにする。

: UIViewRepresentableはプロトコル。古いMapKitとの橋渡しをする。

func updateUIView(_ uiView: MKMapView, context: Context)//ユーザー操作によってアップデートされる部分

 

【deve】

MKMapView

 

アプリから、マップコンテンツを操作。

ズームレベルの設定

中心などを決められる。

注釈などをつける事ができる。

マップの明るさを指定できる。

フリックやジェスチャーも使える

マップのスクロールもできます。

アニメーションの設定(pokemonGOみたいな事)

 

 

MKAnnotation とは

func updateUIView(_ uiViewSelf.UIViewType, contextSelf.Context)

 

ユーザーがタップしたりすると、ビューを更新してくれる。

 

 

 

MKAnnotation とは

MKAnnotation

マップに注釈を付ける機能

すでに地図には、たくさんの情報が入っているので、Viewを新しく作り、そこで注釈を管理します。

注釈専用のViewを作って表示するようなものです。

 

【公式ドキュメント】

class MKPointAnnotation : MKShape

 

クラスで、MKShapeを継承しているようですね。

 

 

let MyPin = MKPointAnnotation()//まずインスタンス化

myPin.coordinate = cordinagte

myPin.title = "東京タワーです"

 

という書き方をする

 

公式ドキュメント>>

 

初期位置を決める

初期位置にピンを表示したい場合

 

CLLocationCoordinate2DMake

MKCoordinateRegion・・・地図をどのような縮尺で表示するか?を指定できる

 

【公式ドキュメント】

CLLocationCoordinate2D CLLocationCoordinate2DMake(CLLocationDegrees latitude, CLLocationDegrees longitude);

 

これは、よくわかりません

 

【使い方】

let latitude = 35.685375, longitude = 139.752848
let coordinate = CLLocationCoordinate2DMake(latitude, longitude)

let region = MKCoordinateRegion(center: coordinate, span: span)

uiView.setRegion(region, animated: true)

 

 

func updateUIView(_ uiView: MKMapView, context: Context){

}

 

上記は、ユーザーが動かすたびに、勝手に地図をリロードしてくれる。

 

【参照】

地図アプリ作成してみた>>

 

UIViewRepresentable とは

プロトコル。の事です。橋渡しに使います。

古いUIKitと、新しいSwiftUIをつなげるおまじないですかね。

 

Representable(表現できる)という意味

 

protocol UIViewRepresentable : View where Self.Body == Never

 

struct MapView: UIViewRepresentable {

func makeUIView(context: Context) -> MKMapView{

return MKMapView()

}

 

func updateUIView(_ uiView, context: Context){

}

}

 

上記は、橋渡しをするコードです。

SwiftUIとUIKitを橋渡して、利用できるようにしています。

 

「MapView」の部分は好きな名前で大丈夫です。 このように書くことで

MKMapViewのクラスが、SwiftUIのフレームワークで利用できるようになります。

 

新車に古い部品を入れているようなものです。古い部品でも、やはり便利なので、利用するみたいですね。

新しく、書き直してくれたらいいのに・・・

と思う今日この頃ですが。

 

【参照】

deve

SwiftUI チュートリアルがある

 

Viewプロトコルとは

プロトコルは、コンピューター同士が通信をする時の規格や手順の事です。

TCP/IPプロトコルなどが有名ですかね?

通信のお約束。みたいなものです。

 

struct ContentView: View {

var body: some View

{ Text("Turtle Rock")

.font(.title)

}

}

 

構造体の名前は「ContentView」

これが、Viewプロトコルに属している。という意味になります。

 

iphoneで表示するときの、お約束。みたいなものです。

「:View」を削除するとエラーになります。

 

bodyとは

struct ContentView: View {

var body: some View{

Text("Turtle Rock")

.font(.title)

}

}

 

bodyプロパティです。中に書かれているviewを表示します。

ちなみに、戻り値が「 some View」です。

ここは、難しいので、後で覚えた方がいいようです。

 

リバースジェネリクス という概念を知ると、理解できるようです。

 

【参照】

Swiftチュートリアル

SwiftUIで何気なく使っている some を調べてみる

 

参照サイト

参照したサイトについてご紹介します。とても分かりやすく情報がまとまっていますので

ぜひ参考にしてみてください。

 

swiftの開発方法 基本>>

Swiftチュートリアル

SwiftUIで何気なく使っている some を調べてみる

Swift Docs

MKMapView

クロスプラットフォーム参照>>

開発手法の比較>>

ストアドプロパティとは>>

プロパティ(ストアドプロパティとコンピューテッドプロパティ)

タプルとは何か? >>

 

 

大変申し訳ありませんが、当社ではサービスの質を落とさないために、月の契約は5件までとさせていただいております。 契約をお待ちいただく可能性もございますので、ご了承のほどよろしくお願いいたします

 

 

 

 

この記事を読んだ人は、こんな記事も読んでいます

 

SEO対策の基本 外部要因とは?

SEO対策の基本的である、外部要因とは何か?

SEO対策をするなら絶対に知っておきたい、基本知識です。

 

売れるサイトを作るのに知って起きたい知識

サーチエンジンマーケティングという言葉をご存知でしょうか?

ホームページで商品やサービスを売る時に知っておきたいマーケティング

についてご紹介いたします。

seo対策をするメリットとは

SEO対策をする5つのメリットとは?

なぜ上位表示させることが大事なのか?なぜSEO対策をする必要があるのか

についてご紹介させていただきます。

 

内部要因とは

SEO対策の内部要因とは?

上位表示させるためには、内部要因について知っておくことも大事です。

キーワードを上位表示させるために必要なのは、ソースコードを最適化することです

内部要因の対策について知りたい方はこちらへ

 

キーワード対策をするまえに

キーワード対策をする前に

そのキーワード対策。ちょっと待ってください。

そのまま対策をすると、必ずお金を損してしまいます。個人事業主や中小企業は

そんな大きなキーワードで対策をしてはいけません。

広告費用が高くなる理由とは

広告費用が高くなる本当の理由とは?

売れないサイトに集めていませんか?広告費用がかかるわりには

お問い合わせが少ない・・・と感じる方は多いはずです。

購入率の悪いサイトに集客をしている可能性があります。

 

 

 

 

【SEO対策・web広告・webコンサルティングのプラスワーク対応エリアについて】

プラスワークでは、東京、神奈川、千葉、埼玉を中心に全国でwebコンサルティング、SEO対策、ホームページの更新、ホームページのリニューアル運営代行をしております。売上アップをお考えならお気軽にご相談ください。

 

【SEO対策・web広告・webコンサルティングのプラスワーク 対応地域】

北海道 [ 北海道 ]

東北  [ 青森 | 岩手 | 山形 | 福島 | 秋田 | 宮城 ]

関東  [ 東京 | 埼玉 | 千葉 | 茨城 | 栃木 | 群馬 | 神奈川 ]

甲信越 [ 山梨 | 長野 | 新潟 ]

北陸  [ 石川 | 福井 | 富山 ]

東海  [ 愛知 | 静岡 | 岐阜 | 三重 ]

近畿  [ 大阪 | 兵庫 | 京都 | 滋賀 | 奈良 | 和歌山 ]

中国  [ 島根 | 山口 |鳥取 | 広島 | 岡山 ]

四国  [ 徳島 | 香川 | 愛媛 | 高知 ]

九州  [ 福岡 | 佐賀 | 長崎 | 熊本 | 大分 | 宮崎 | 鹿児島 ]

プラスワークでは全国でSEO対策、ホームページ更新、制作をしております。中小企業専門SEO対策・ホームページ更新制作会社、ダイレクト レスポンス マーケティング、ウェブ マーケティング、マーケティング 分析、口コミのよいSEO対策会社をお探しならプラスワークにお任せくださいませ。

 

 

【コンテンツ】

トップへ

更新レスキュー

料金について

制作実績

お客様の声

よくある質問

会社概要

お問い合わせ

【更新レスキュー】

ライトコース

ゴールドコース

プラチナコース

 

【その他】

ニュース

メルマガ登録

特別資料プレゼント

相互リンク募集中

【課題から探す】

ホームページの課題

SEO対策とは

SEO対策がダメな理由

上位表示されない理由

相互リンクとは

順位が落ちてしまう原因

 

 

フェイスブック  ツイッター