coffee 代碼,下邊的例子是用作實現(xiàn)簽到功能的(需要js格式請去http://js2.coffee 上轉(zhuǎn)換)
#================= 獲取android 地理位置 ==================
get_current_position_for_android = ->
Ti.Geolocation.Android.manualMode = true
network_provider = Ti.Geolocation.Android.createLocationProvider
name: Ti.Geolocation.PROVIDER_NETWORK,
minUpdateDistance: 0.0,
minUpdateTime: 1
Ti.Geolocation.Android.addLocationProvider network_provider
gps_provider = Ti.Geolocation.Android.createLocationProvider
name: Ti.Geolocation.PROVIDER_GPS,
minUpdateDistance: 0.0,
minUpdateTime: 1
Ti.Geolocation.Android.addLocationProvider gps_provider
gps_rule = Ti.Geolocation.Android.createLocationRule
provider: Ti.Geolocation.PROVIDER_GPS,
maxAge: 3000,
accuracy: 100,
minAge: 1000
Ti.Geolocation.Android.addLocationRule gps_rule
net_rule = Ti.Geolocation.Android.createLocationRule
provider: Ti.Geolocation.PROVIDER_NETWORK,
maxAge: 3000,
accuracy: 100,
minAge: 1000
Ti.Geolocation.Android.addLocationRule net_rule
#Ti.Geolocation.Android.manualMode = true
location_callback = (e) ->
if !e.success ||e.error
show_alert "提示","簽到失敗,請重試!"
return
Ti.Geolocation.removeEventListener 'location',location_callback
longitude = e.coords.longitude
latitude = e.coords.latitude
distance = getDistance(latitude, longitude, decorating_case_latitude, decorating_case_longitude)
if distance < 1
show_notice '距離超過1000米,不能簽到'
return
post_longitude_and_latitude(longitude,latitude)
Ti.Geolocation.addEventListener 'location',location_callback
provider_network = null
provider_gps = null
#================= 獲取ios 地理位置 ==================
get_current_position_for_ios = ->
Titanium.Geolocation.accuracy = Titanium.Geolocation.ACCURACY_BEST
Titanium.Geolocation.getCurrentPosition (e) ->
if (!e.success || e.error)
show_alert("提示",'error ' + JSON.stringify(e.error))
longitude = e.coords.longitude
latitude = e.coords.latitude
altitude = e.coords.altitude
heading = e.coords.heading
accuracy = e.coords.accuracy
speed = e.coords.speed
timestamp = e.coords.timestamp
altitudeAccuracy = e.coords.altitudeAccuracy
distance = getDistance(latitude, longitude, decorating_case_latitude, decorating_case_longitude)
if distance > 1
show_notice '距離超過1000米,不能簽到'
return
post_longitude_and_latitude(longitude,latitude)
附帶一個android bug

解決辦法是 使 用 android 真 機 調(diào) 試!
ios 也需要真機。