Titanium 獲取當前地理位置(經(jīng)緯度)Get the current location (latitude and longitude)

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 也需要真機。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容