MapKitとは

2020/8/20に更新

 

【環境】

swift 5.1

Xcode11.6

 

MapKitとは

地図を表示するときに利用します。フレームワークです。

橋渡しのコードが必要。

 

・地図を表示できる

・ピンを立てる事ができる

・初期に表示する位置が決められる

・現在位置のトラッキングを開始・終了できる

・地図のスケールを自動的に調節できる

 

 

地図を表示するには?

地図を表示させるには、MapKitのフレームワークをインポートする必要があります。

 

import SwiftUI
import MapKit // これをimport

 

struct MapView: UIViewRepresentable {

 

// 親のビューからlatitudeDelta,longitudeDelta用の値と変化を受け取る
@Binding var zoomValue: CLLocationDegrees

 

//空のswiftUI用のViewを作る、MKMapViewから継承する

func makeUIView(context: Context) -> MKMapView {
let mapView = MKMapView(frame: .zero)
return mapView
}

 

// マップ更新時の動作、
func updateUIView(_ uiView: MKMapView, context: UIViewRepresentableContext<MapView>) {

 

let ido = 37.335020000//こうやって書いた方が楽なので
let keido = -122.009250000

 

//緯度・経度を設定するメソッド
let center = CLLocationCoordinate2DMake(ido, keido)//let regionの部分で使うので、こうやって書きましょう。これは慣れです。

 

// zoomValueの値が変わるとここも更新される

 

//MKCoordinateSpanで縮尺を決めます
let span = MKCoordinateSpan(latitudeDelta: zoomValue, longitudeDelta: zoomValue)

 

//中心と表示範囲の大きさ(span)を決める

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

 

//regionで規定された領域をビューに表示する」という命令
uiView.setRegion(region, animated: true)
uiView.showsUserLocation = true
uiView.userTrackingMode = .follow
}
}

struct MapView_Previews: PreviewProvider {
static var previews: some View {
MapView(zoomValue: .constant(0.005))
}
}

出典:MapSampleForSwiftUI

 

UIViewRepresentable

struct MapView: UIViewRepresentable {

 

UIViewRepresentable でMapVIewに橋渡し、継承をします。

これで、SwiftUIにマップを表示できるようになります。

 

@Binding

@Binding var zoomValue: CLLocationDegrees

 

@Binding はプロパティラッパーです。

@BindingをつけてやるとView間での双方向のデータ共有が可能になります。

詳細はこちら>>

 

class MKMapView : UIView

 

MKCoordinateSpan

ソースコードを見ると、中心の座標を決めてくれ。と書いてあります。

では、見ていきましょう。

 

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

 

適当な名前の定数を作り、 MKCoordinateRegionを代入します。

 

MKCoordinateRegionをデベで見ると。

 

struct MKCoordinateRegion

 

となっています。MKCoordinateRegionは構造体のようで初期値に

 

init(center: CLLocationCoordinate2D, span: MKCoordinateSpan)

 

と書いてあります。

つまり、中心の座標を決めてくれ。というわけです。

 

この読み方ですが、ソースコードを写経⇒公式を参照 を繰り返していくと、なんとなく理解できます。

私も最初は、読み方が意味不明でした。100回位やっていると、だんだんわかってきます。

 

UIViewから継承しているので、UIKitが必要な事が分かります。

つまり、古いVIewを使う事になります。

 

参照サイト

【参照】

SwiftUI Tutorial

SwiftUIとUIKit混合環境で開発を行うときのヒント集

Swift 5.1 に導入される Opaque Result Type とは何か

 

SwiftUIとUIKit混合環境で開発を行うときのヒント集

Mapkit deveツール

 

 

システム開発いたします。ぜひご依頼くださいませ。

 

 

記事がお役に立ちましたら、ライン登録、メルマガ登録をよろしくお願いします。

ラインで相談

 

 

※役立つ情報をお届けしていますので、ぜひメルマガ登録もぜひ、お願いします^^

 

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

 

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

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

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

 

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

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

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

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

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

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

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

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

 

内部要因とは

SEO対策の内部要因とは?

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

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

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

 

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

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

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

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

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

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

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

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

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

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

 

 

 

 

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

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

 

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

北海道 [ 北海道 ]

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

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

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

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

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

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

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

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

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

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

 

 

【コンテンツ】

トップへ

更新レスキュー

料金について

制作実績

お客様の声

よくある質問

会社概要

お問い合わせ

【更新レスキュー】

ライトコース

ゴールドコース

プラチナコース

 

【その他】

ニュース

メルマガ登録

特別資料プレゼント

相互リンク募集中

【課題から探す】

ホームページの課題

SEO対策とは

SEO対策がダメな理由

上位表示されない理由

相互リンクとは

順位が落ちてしまう原因

 

 

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