Edited at

【メモ】iPhoneで位置情報を取得してアプリ画面に点グラフ(散布図)として表示する

More than 1 year has passed since last update.


locationManagerで現在地取得

位置情報が変更された時に呼び出されるlocationManagerのコールバック関数「didUpdateLocations」

これが呼ばれるたびに位置情報をChartsの点グラフで描画


ソースコードの一部


ViewController.swift

import Charts

import CoreLocation
//省略

class ViewController: UIViewController, CLLocationManagerDelegate {
let rect = CGRect(x: 16, y: 344, width: 288, height: 126)
var chartView: ScatterChartView!
var mySet: ScatterChartDataSet!
var dataSets: NSMutableArray = []
var data: ScatterChartData!
//省略

override func viewDidLoad() {
chartView = ScatterChartView(frame: rect)
view.addSubview(chartView)
//省略
}
//省略

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
NSLog("%@", "didUpdateLocation \(locations[0].coordinate.longitude),\(locations[0].coordinate.latitude)")
let location : CLLocation = locations[0]
let latlng = location.coordinate
mylongitude = latlng.longitude
mylatitude = latlng.latitude
myGPSEntry = [BarChartDataEntry(x: latlng.longitude, y: latlng.latitude)]

mySet = ScatterChartDataSet(values: myGPSEntry, label: "Me")
self.mySet.setColor(NSUIColor.red)

self.dataSets.removeAllObjects()
self.dataSets.addObjects(from: [self.mySet])

self.data = ScatterChartData(dataSets: self.dataSets as? [IChartDataSet])

self.chartView.data = self.data
}
//省略

}