scala js中的地理定位
Geolocation in scala js
我的 Scala.js 程序中有以下功能:
def geo():Unit={
var window = document.defaultView
val nav = window.navigator
val geo: Geolocation = nav.geolocation
def onSuccess(p:Position) = {
println( s"latitude=${p.coords.latitude}") // Latitude
println( s"longitude=${p.coords.longitude}") // Longitude
}
def onError(p:PositionError) = println("Error")
geo.watchPosition( onSuccess _, onError _ )
}
我从我的主函数调用这个函数。但是它在一段时间后不断打印经度和纬度。我只想打印一次。我无法理解我在这里做错了什么,我应该怎么做才能让它一次又一次地停止打印?
你可以用clearWatch
一观察就停止观察,像这样:
def geo(): Unit = {
val window = document.defaultView
val nav = window.navigator
val geo: Geolocation = nav.geolocation
var watchID: Int = 0
def onSuccess(p:Position) = {
println(s"latitude=${p.coords.latitude}") // Latitude
println(s"longitude=${p.coords.longitude}") // Longitude
geo.clearWatch(watchID) // only observe one position
}
def onError(p:PositionError) = println("Error")
watchID = geo.watchPosition(onSuccess _, onError _)
}
我的 Scala.js 程序中有以下功能:
def geo():Unit={
var window = document.defaultView
val nav = window.navigator
val geo: Geolocation = nav.geolocation
def onSuccess(p:Position) = {
println( s"latitude=${p.coords.latitude}") // Latitude
println( s"longitude=${p.coords.longitude}") // Longitude
}
def onError(p:PositionError) = println("Error")
geo.watchPosition( onSuccess _, onError _ )
}
我从我的主函数调用这个函数。但是它在一段时间后不断打印经度和纬度。我只想打印一次。我无法理解我在这里做错了什么,我应该怎么做才能让它一次又一次地停止打印?
你可以用clearWatch
一观察就停止观察,像这样:
def geo(): Unit = {
val window = document.defaultView
val nav = window.navigator
val geo: Geolocation = nav.geolocation
var watchID: Int = 0
def onSuccess(p:Position) = {
println(s"latitude=${p.coords.latitude}") // Latitude
println(s"longitude=${p.coords.longitude}") // Longitude
geo.clearWatch(watchID) // only observe one position
}
def onError(p:PositionError) = println("Error")
watchID = geo.watchPosition(onSuccess _, onError _)
}