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
}
//省略
}