Exemple #1
0
        // Sends proper data to DataAccess and returns a model with weatherdata
        public async Task <RootObject> GetWeather(ShowWeatherViewModel model)
        {
            WeatherSearch weatherSearch = CreateSearchModel(model);
            string        uri           = SetupUri(weatherSearch);

            return(await dataAccess.GetWeather(uri));
        }
Exemple #2
0
 // Generats a correct uri-string for api-call
 private string SetupUri(WeatherSearch model)
 {
     // Determans if countrycode should be a parameter or not
     if (String.IsNullOrWhiteSpace(model.CountryCode))
     {
         return($"/data/2.5/weather?q={model.City}&type=like&units={model.Units}");
     }
     else
     {
         return($"/data/2.5/weather?q={model.City},{model.CountryCode}&type=like&units={model.Units}");
     }
 }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource   = Resource.Layout.Toolbar;

            base.OnCreate(savedInstanceState);

            //3dmap相关
            mapView = new MapView(this);
            mapView.OnCreate(savedInstanceState);

            //定位相关
            mLocationClient = new AMapLocationClient(this);
            mLocationClient.SetLocationListener(new AMapLocationListener());
            mLocationClient.StartLocation();
            myLocationStyle = new MyLocationStyle();
            myLocationStyle.InvokeInterval(2000);
            mapView.Map.MyLocationStyle   = myLocationStyle;
            mapView.Map.MyLocationEnabled = true;
            myLocationStyle.InvokeMyLocationType(MyLocationStyle.LocationTypeFollow);
            myLocationStyle.ShowMyLocation(true);

            //导航相关
            navi = AMapNavi.GetInstance(this);
            navi.AddAMapNaviListener(this);
            navi.SetEmulatorNaviSpeed(260);//260km/h
            naviRelativeLayout = LayoutInflater.Inflate(Resource.Layout.NaviLayout, null) as Android.Widget.RelativeLayout;
            mAMapNaviView      = naviRelativeLayout.FindViewById <AMapNaviView>(Resource.Id.navi_view);
            mAMapNaviView.SetAMapNaviViewListener(new AMapNaviViewListener());
            mAMapNaviView.OnCreate(savedInstanceState);

            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);

            MessagingCenter.Subscribe <object>(this, SearchPage.QueryWeather, sender =>
            {
                //检索参数为城市和天气类型,实况天气为WEATHER_TYPE_LIVE、天气预报为WEATHER_TYPE_FORECAST
                var mquery         = new WeatherSearchQuery("北京", WeatherSearchQuery.WeatherTypeLive);
                var mweathersearch = new WeatherSearch(this);
                mweathersearch.SetOnWeatherSearchListener(new OnWeatherSearchListener());
                mweathersearch.Query = mquery;
                mweathersearch.SearchWeatherAsyn(); //异步搜索
            });

            MessagingCenter.Subscribe <object>(this, TrackPage.StartTrack, sender =>
            {
                //猎鹰相关
                mAMapTrackClient = new AMapTrackClient(this);
                //上报周期,采用默认,不设置
                //mAMapTrackClient.SetInterval
                //本地缓存大小,采用默认,不设置
                //mAMapTrackClient.SetCacheSize
                //定位模式,采用默认,不设置
                //mAMapTrackClient.SetLocationMode

                //执行一次,创建serviceid即可
                //await (Xamarin.Forms.Application.Current as App).CreateServiceId();
                //await (Xamarin.Forms.Application.Current as App).ServiceId();
                //137618从ServiceId()获取后复制的
                mAMapTrackClient.QueryTerminal(new QueryTerminalRequest(137618, "id1234"), new OnTrackListener(137618, "id1234", mAMapTrackClient));
            });

            LoadApplication(new App());
        }