1957
This commit is contained in:
		@@ -1,8 +1,8 @@
 | 
				
			|||||||
#Created by .winboll/winboll_app_build.gradle
 | 
					#Created by .winboll/winboll_app_build.gradle
 | 
				
			||||||
#Fri Feb 28 03:13:40 GMT 2025
 | 
					#Fri Feb 28 11:55:01 GMT 2025
 | 
				
			||||||
stageCount=0
 | 
					stageCount=0
 | 
				
			||||||
libraryProject=
 | 
					libraryProject=
 | 
				
			||||||
baseVersion=1.0
 | 
					baseVersion=1.0
 | 
				
			||||||
publishVersion=1.0.0
 | 
					publishVersion=1.0.0
 | 
				
			||||||
buildCount=209
 | 
					buildCount=230
 | 
				
			||||||
baseBetaVersion=1.0.1
 | 
					baseBetaVersion=1.0.1
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,6 +6,7 @@ import android.content.Context;
 | 
				
			|||||||
import android.content.Intent;
 | 
					import android.content.Intent;
 | 
				
			||||||
import android.os.Build;
 | 
					import android.os.Build;
 | 
				
			||||||
import android.os.Bundle;
 | 
					import android.os.Bundle;
 | 
				
			||||||
 | 
					import android.os.Message;
 | 
				
			||||||
import android.telecom.TelecomManager;
 | 
					import android.telecom.TelecomManager;
 | 
				
			||||||
import android.view.Menu;
 | 
					import android.view.Menu;
 | 
				
			||||||
import android.view.MenuItem;
 | 
					import android.view.MenuItem;
 | 
				
			||||||
@@ -49,6 +50,7 @@ final public class MainActivity extends AbsActivity implements IWinBollActivity,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public static final String ACTION_SOS = "cc.winboll.studio.libappbase.WinBoll.ACTION_SOS";
 | 
					    public static final String ACTION_SOS = "cc.winboll.studio.libappbase.WinBoll.ACTION_SOS";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    TXMSFragment mTXMSFragment;
 | 
				
			||||||
    LogView mLogView;
 | 
					    LogView mLogView;
 | 
				
			||||||
    Toolbar mToolbar;
 | 
					    Toolbar mToolbar;
 | 
				
			||||||
    CheckBox cbMainService;
 | 
					    CheckBox cbMainService;
 | 
				
			||||||
@@ -108,11 +110,11 @@ final public class MainActivity extends AbsActivity implements IWinBollActivity,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        // 初始化地图视图
 | 
					        // 初始化地图视图
 | 
				
			||||||
        // 创建Fragment实例
 | 
					        // 创建Fragment实例
 | 
				
			||||||
        TXMSFragment myFragment = TXMSFragment.newInstance(0);
 | 
					        mTXMSFragment = new TXMSFragment();
 | 
				
			||||||
        // 获取FragmentTransaction
 | 
					        // 获取FragmentTransaction
 | 
				
			||||||
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
 | 
					        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
 | 
				
			||||||
        // 将Fragment添加到FrameLayout容器中
 | 
					        // 将Fragment添加到FrameLayout容器中
 | 
				
			||||||
        transaction.add(R.id.frameLayout, myFragment);
 | 
					        transaction.add(R.id.frameLayout, mTXMSFragment);
 | 
				
			||||||
        transaction.commit();
 | 
					        transaction.commit();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        tabLayout = findViewById(R.id.tabLayout);
 | 
					        tabLayout = findViewById(R.id.tabLayout);
 | 
				
			||||||
@@ -121,9 +123,9 @@ final public class MainActivity extends AbsActivity implements IWinBollActivity,
 | 
				
			|||||||
        // 创建Fragment列表和标题列表
 | 
					        // 创建Fragment列表和标题列表
 | 
				
			||||||
        List<Fragment> fragmentList = new ArrayList<>();
 | 
					        List<Fragment> fragmentList = new ArrayList<>();
 | 
				
			||||||
        List<String> tabTitleList = new ArrayList<>();
 | 
					        List<String> tabTitleList = new ArrayList<>();
 | 
				
			||||||
        fragmentList.add(PositionsFragment.newInstance(0));
 | 
					        fragmentList.add(new PositionsFragment());
 | 
				
			||||||
        fragmentList.add(TasksFragment.newInstance(1));
 | 
					        fragmentList.add(new TasksFragment());
 | 
				
			||||||
        fragmentList.add(LogFragment.newInstance(2));
 | 
					        fragmentList.add(new LogFragment());
 | 
				
			||||||
        tabTitleList.add("位置");
 | 
					        tabTitleList.add("位置");
 | 
				
			||||||
        tabTitleList.add("任务");
 | 
					        tabTitleList.add("任务");
 | 
				
			||||||
        tabTitleList.add("日志");
 | 
					        tabTitleList.add("日志");
 | 
				
			||||||
@@ -312,6 +314,10 @@ final public class MainActivity extends AbsActivity implements IWinBollActivity,
 | 
				
			|||||||
            Intent intent = new Intent(this, com.tencent.map.vector.demo.DemoMainActivity.class);
 | 
					            Intent intent = new Intent(this, com.tencent.map.vector.demo.DemoMainActivity.class);
 | 
				
			||||||
            startActivity(intent);
 | 
					            startActivity(intent);
 | 
				
			||||||
            //WinBollActivityManager.getInstance(this).startWinBollActivity(this, CallActivity.class);
 | 
					            //WinBollActivityManager.getInstance(this).startWinBollActivity(this, CallActivity.class);
 | 
				
			||||||
 | 
					        } else if (item.getItemId() == R.id.item_positionnow) {
 | 
				
			||||||
 | 
					            mTXMSFragment.sendRealTimePositioningMessage();
 | 
				
			||||||
 | 
					        } else if (item.getItemId() == R.id.item_addnewposition) {
 | 
				
			||||||
 | 
					            ToastUtils.show("item_addnewpositon");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
//        } else 
 | 
					//        } else 
 | 
				
			||||||
//        if (item.getItemId() == R.id.item_exit) {
 | 
					//        if (item.getItemId() == R.id.item_exit) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -52,7 +52,7 @@ import com.tencent.tencentmap.mapsdk.maps.model.MyLocationStyle;
 | 
				
			|||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
import pub.devrel.easypermissions.EasyPermissions;
 | 
					import pub.devrel.easypermissions.EasyPermissions;
 | 
				
			||||||
import cc.winboll.studio.positions.beans.LocationJson;
 | 
					import cc.winboll.studio.positions.beans.PostionModel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class MainSimpleActivity extends AppCompatActivity implements EasyPermissions.PermissionCallbacks,LocationSource, TencentLocationListener {
 | 
					public class MainSimpleActivity extends AppCompatActivity implements EasyPermissions.PermissionCallbacks,LocationSource, TencentLocationListener {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -69,7 +69,7 @@ public class MainSimpleActivity extends AppCompatActivity implements EasyPermiss
 | 
				
			|||||||
    private TencentLocationManager locationManager;
 | 
					    private TencentLocationManager locationManager;
 | 
				
			||||||
    private TencentLocationRequest locationRequest;
 | 
					    private TencentLocationRequest locationRequest;
 | 
				
			||||||
    private MyLocationStyle locationStyle;
 | 
					    private MyLocationStyle locationStyle;
 | 
				
			||||||
    ArrayList<LocationJson> locationJsonList;
 | 
					    ArrayList<PostionModel> locationJsonList;
 | 
				
			||||||
    LogView mLogView;
 | 
					    LogView mLogView;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
@@ -77,7 +77,7 @@ public class MainSimpleActivity extends AppCompatActivity implements EasyPermiss
 | 
				
			|||||||
        super.onCreate(savedInstanceState);
 | 
					        super.onCreate(savedInstanceState);
 | 
				
			||||||
        setContentView(R.layout.activity_main_simple);
 | 
					        setContentView(R.layout.activity_main_simple);
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        locationJsonList = new ArrayList<LocationJson>();
 | 
					        locationJsonList = new ArrayList<PostionModel>();
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        // 初始化工具栏
 | 
					        // 初始化工具栏
 | 
				
			||||||
        mToolbar = findViewById(R.id.activitymainToolbar1);
 | 
					        mToolbar = findViewById(R.id.activitymainToolbar1);
 | 
				
			||||||
@@ -161,7 +161,7 @@ public class MainSimpleActivity extends AppCompatActivity implements EasyPermiss
 | 
				
			|||||||
        // 读取数据
 | 
					        // 读取数据
 | 
				
			||||||
        locationJsonList = LocationFileStorage.loadFromFile(this);
 | 
					        locationJsonList = LocationFileStorage.loadFromFile(this);
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        for (LocationJson lj : locationJsonList) {
 | 
					        for (PostionModel lj : locationJsonList) {
 | 
				
			||||||
            tencentMap.addMarker(new MarkerOptions(toTencentLatLng(lj.toLocation())));
 | 
					            tencentMap.addMarker(new MarkerOptions(toTencentLatLng(lj.toLocation())));
 | 
				
			||||||
            //LogUtils.d("Location", "Lat: " + loc.getLatitude() + ", Lng: " + loc.getLongitude());
 | 
					            //LogUtils.d("Location", "Lat: " + loc.getLatitude() + ", Lng: " + loc.getLongitude());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -176,7 +176,7 @@ public class MainSimpleActivity extends AppCompatActivity implements EasyPermiss
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        // 方式1:保存到文件
 | 
					        // 方式1:保存到文件
 | 
				
			||||||
        //List<Location> locations = new ArrayList<>();
 | 
					        //List<Location> locations = new ArrayList<>();
 | 
				
			||||||
        locationJsonList.add(new LocationJson(location));
 | 
					        locationJsonList.add(new PostionModel(location));
 | 
				
			||||||
        LocationFileStorage.saveToFile(this, locationJsonList);
 | 
					        LocationFileStorage.saveToFile(this, locationJsonList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 读取数据
 | 
					        // 读取数据
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,18 +11,26 @@ import android.util.JsonWriter;
 | 
				
			|||||||
import cc.winboll.studio.libappbase.BaseBean;
 | 
					import cc.winboll.studio.libappbase.BaseBean;
 | 
				
			||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
import android.location.Location;
 | 
					import android.location.Location;
 | 
				
			||||||
 | 
					import java.util.UUID;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class LocationJson extends BaseBean {
 | 
					public class PostionModel extends BaseBean {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static final String TAG = "LocationJson";
 | 
					    public static final String TAG = "PostionModel";
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					    // UUID 唯一位置标识
 | 
				
			||||||
 | 
					    private String uuid;
 | 
				
			||||||
 | 
					    // 纬度
 | 
				
			||||||
    private double latitude;
 | 
					    private double latitude;
 | 
				
			||||||
 | 
					    // 经度
 | 
				
			||||||
    private double longitude;
 | 
					    private double longitude;
 | 
				
			||||||
 | 
					    // 标记时间
 | 
				
			||||||
    private long timestamp;
 | 
					    private long timestamp;
 | 
				
			||||||
 | 
					    // 精确度
 | 
				
			||||||
    private double accuracy;
 | 
					    private double accuracy;
 | 
				
			||||||
    private String provider;
 | 
					    private String provider;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    public LocationJson() {
 | 
					    public PostionModel() {
 | 
				
			||||||
 | 
					        this.uuid = UUID.randomUUID().toString();
 | 
				
			||||||
        this.latitude = 0.0f;
 | 
					        this.latitude = 0.0f;
 | 
				
			||||||
        this.longitude = 0.0f;
 | 
					        this.longitude = 0.0f;
 | 
				
			||||||
        this.timestamp = 0L;
 | 
					        this.timestamp = 0L;
 | 
				
			||||||
@@ -30,7 +38,8 @@ public class LocationJson extends BaseBean {
 | 
				
			|||||||
        this.provider = "";
 | 
					        this.provider = "";
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public LocationJson(Location location) {
 | 
					    public PostionModel(Location location) {
 | 
				
			||||||
 | 
					        this.uuid = UUID.randomUUID().toString();
 | 
				
			||||||
        this.latitude = location.getLatitude();
 | 
					        this.latitude = location.getLatitude();
 | 
				
			||||||
        this.longitude = location.getLongitude();
 | 
					        this.longitude = location.getLongitude();
 | 
				
			||||||
        this.timestamp = location.getTime();
 | 
					        this.timestamp = location.getTime();
 | 
				
			||||||
@@ -38,6 +47,14 @@ public class LocationJson extends BaseBean {
 | 
				
			|||||||
        this.provider = location.getProvider();
 | 
					        this.provider = location.getProvider();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setUuid(String uuid) {
 | 
				
			||||||
 | 
					        this.uuid = uuid;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    public String getUuid() {
 | 
				
			||||||
 | 
					        return uuid;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void setLatitude(double latitude) {
 | 
					    public void setLatitude(double latitude) {
 | 
				
			||||||
        this.latitude = latitude;
 | 
					        this.latitude = latitude;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -81,12 +98,13 @@ public class LocationJson extends BaseBean {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public String getName() {
 | 
					    public String getName() {
 | 
				
			||||||
        return LocationJson.class.getName();
 | 
					        return PostionModel.class.getName();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void writeThisToJsonWriter(JsonWriter jsonWriter) throws IOException {
 | 
					    public void writeThisToJsonWriter(JsonWriter jsonWriter) throws IOException {
 | 
				
			||||||
        super.writeThisToJsonWriter(jsonWriter);
 | 
					        super.writeThisToJsonWriter(jsonWriter);
 | 
				
			||||||
 | 
					        jsonWriter.name("uuid").value(getUuid());
 | 
				
			||||||
        jsonWriter.name("latitude").value(getLatitude());
 | 
					        jsonWriter.name("latitude").value(getLatitude());
 | 
				
			||||||
        jsonWriter.name("longitude").value(getLongitude());
 | 
					        jsonWriter.name("longitude").value(getLongitude());
 | 
				
			||||||
        jsonWriter.name("timestamp").value(getTimestamp());
 | 
					        jsonWriter.name("timestamp").value(getTimestamp());
 | 
				
			||||||
@@ -98,7 +116,9 @@ public class LocationJson extends BaseBean {
 | 
				
			|||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public boolean initObjectsFromJsonReader(JsonReader jsonReader, String name) throws IOException {
 | 
					    public boolean initObjectsFromJsonReader(JsonReader jsonReader, String name) throws IOException {
 | 
				
			||||||
        if (super.initObjectsFromJsonReader(jsonReader, name)) { return true; } else {
 | 
					        if (super.initObjectsFromJsonReader(jsonReader, name)) { return true; } else {
 | 
				
			||||||
            if (name.equals("latitude")) {
 | 
					            if (name.equals("uuid")) {
 | 
				
			||||||
 | 
					                setUuid(jsonReader.nextString());
 | 
				
			||||||
 | 
					            } else if (name.equals("latitude")) {
 | 
				
			||||||
                setLatitude(jsonReader.nextDouble());
 | 
					                setLatitude(jsonReader.nextDouble());
 | 
				
			||||||
            } else if (name.equals("longitude")) {
 | 
					            } else if (name.equals("longitude")) {
 | 
				
			||||||
                setLongitude(jsonReader.nextDouble());
 | 
					                setLongitude(jsonReader.nextDouble());
 | 
				
			||||||
@@ -22,21 +22,21 @@ public class LogFragment extends Fragment {
 | 
				
			|||||||
    private static final String ARG_PAGE = "ARG_PAGE";
 | 
					    private static final String ARG_PAGE = "ARG_PAGE";
 | 
				
			||||||
    private int mPage;
 | 
					    private int mPage;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static LogFragment newInstance(int page) {
 | 
					//    public static LogFragment newInstance(int page) {
 | 
				
			||||||
        Bundle args = new Bundle();
 | 
					//        Bundle args = new Bundle();
 | 
				
			||||||
        args.putInt(ARG_PAGE, page);
 | 
					//        args.putInt(ARG_PAGE, page);
 | 
				
			||||||
        LogFragment fragment = new LogFragment();
 | 
					//        LogFragment fragment = new LogFragment();
 | 
				
			||||||
        fragment.setArguments(args);
 | 
					//        fragment.setArguments(args);
 | 
				
			||||||
        return fragment;
 | 
					//        return fragment;
 | 
				
			||||||
    }
 | 
					//    }
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
    @Override
 | 
					//    @Override
 | 
				
			||||||
    public void onCreate(Bundle savedInstanceState) {
 | 
					//    public void onCreate(Bundle savedInstanceState) {
 | 
				
			||||||
        super.onCreate(savedInstanceState);
 | 
					//        super.onCreate(savedInstanceState);
 | 
				
			||||||
        if (getArguments() != null) {
 | 
					//        if (getArguments() != null) {
 | 
				
			||||||
            mPage = getArguments().getInt(ARG_PAGE);
 | 
					//            mPage = getArguments().getInt(ARG_PAGE);
 | 
				
			||||||
        }
 | 
					//        }
 | 
				
			||||||
    }
 | 
					//    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Nullable
 | 
					    @Nullable
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,20 +25,20 @@ public class PositionsFragment extends Fragment {
 | 
				
			|||||||
    private static final String ARG_PAGE = "ARG_PAGE";
 | 
					    private static final String ARG_PAGE = "ARG_PAGE";
 | 
				
			||||||
    private int mPage;
 | 
					    private int mPage;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static PositionsFragment newInstance(int page) {
 | 
					//    public static PositionsFragment newInstance(int page) {
 | 
				
			||||||
        Bundle args = new Bundle();
 | 
					//        Bundle args = new Bundle();
 | 
				
			||||||
        args.putInt(ARG_PAGE, page);
 | 
					//        args.putInt(ARG_PAGE, page);
 | 
				
			||||||
        PositionsFragment fragment = new PositionsFragment();
 | 
					//        PositionsFragment fragment = new PositionsFragment();
 | 
				
			||||||
        fragment.setArguments(args);
 | 
					//        fragment.setArguments(args);
 | 
				
			||||||
        return fragment;
 | 
					//        return fragment;
 | 
				
			||||||
    }
 | 
					//    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void onCreate(Bundle savedInstanceState) {
 | 
					    public void onCreate(Bundle savedInstanceState) {
 | 
				
			||||||
        super.onCreate(savedInstanceState);
 | 
					        super.onCreate(savedInstanceState);
 | 
				
			||||||
        if (getArguments()!= null) {
 | 
					//        if (getArguments()!= null) {
 | 
				
			||||||
            mPage = getArguments().getInt(ARG_PAGE);
 | 
					//            mPage = getArguments().getInt(ARG_PAGE);
 | 
				
			||||||
        }
 | 
					//        }
 | 
				
			||||||
        setHasOptionsMenu(true);
 | 
					        setHasOptionsMenu(true);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -62,9 +62,9 @@ public class PositionsFragment extends Fragment {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public boolean onOptionsItemSelected(MenuItem item) {
 | 
					    public boolean onOptionsItemSelected(MenuItem item) {
 | 
				
			||||||
        if (item.getItemId() == R.id.item_addposition) {
 | 
					//        if (item.getItemId() == R.id.item_addposition) {
 | 
				
			||||||
            ToastUtils.show("item_addposition");
 | 
					//            ToastUtils.show("item_addposition");
 | 
				
			||||||
        }
 | 
					//        }
 | 
				
			||||||
//        } else 
 | 
					//        } else 
 | 
				
			||||||
//        if (item.getItemId() == R.id.item_exit) {
 | 
					//        if (item.getItemId() == R.id.item_exit) {
 | 
				
			||||||
//            exit();
 | 
					//            exit();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,33 +6,32 @@ package cc.winboll.studio.positions.fragments;
 | 
				
			|||||||
 * @Describe 腾讯地图服务视图
 | 
					 * @Describe 腾讯地图服务视图
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
import android.Manifest;
 | 
					import android.Manifest;
 | 
				
			||||||
import android.content.Intent;
 | 
					 | 
				
			||||||
import android.content.pm.PackageManager;
 | 
					import android.content.pm.PackageManager;
 | 
				
			||||||
import android.graphics.Bitmap;
 | 
					import android.graphics.Bitmap;
 | 
				
			||||||
import android.graphics.BitmapFactory;
 | 
					import android.graphics.BitmapFactory;
 | 
				
			||||||
import android.graphics.Matrix;
 | 
					import android.graphics.Matrix;
 | 
				
			||||||
import android.location.Location;
 | 
					import android.location.Location;
 | 
				
			||||||
 | 
					import android.location.LocationManager;
 | 
				
			||||||
import android.os.Bundle;
 | 
					import android.os.Bundle;
 | 
				
			||||||
 | 
					import android.os.Handler;
 | 
				
			||||||
import android.os.Looper;
 | 
					import android.os.Looper;
 | 
				
			||||||
 | 
					import android.os.Message;
 | 
				
			||||||
import android.os.SystemClock;
 | 
					import android.os.SystemClock;
 | 
				
			||||||
import android.util.Log;
 | 
					import android.util.Log;
 | 
				
			||||||
import android.view.Menu;
 | 
					import android.view.LayoutInflater;
 | 
				
			||||||
import android.view.MenuItem;
 | 
					 | 
				
			||||||
import android.view.View;
 | 
					import android.view.View;
 | 
				
			||||||
 | 
					import android.view.ViewGroup;
 | 
				
			||||||
import android.widget.TextView;
 | 
					import android.widget.TextView;
 | 
				
			||||||
import android.widget.Toast;
 | 
					import android.widget.Toast;
 | 
				
			||||||
import androidx.annotation.NonNull;
 | 
					import androidx.annotation.NonNull;
 | 
				
			||||||
import androidx.appcompat.app.AppCompatActivity;
 | 
					import androidx.annotation.Nullable;
 | 
				
			||||||
import androidx.appcompat.widget.Toolbar;
 | 
					 | 
				
			||||||
import androidx.core.app.ActivityCompat;
 | 
					import androidx.core.app.ActivityCompat;
 | 
				
			||||||
import androidx.core.content.ContextCompat;
 | 
					import androidx.core.content.ContextCompat;
 | 
				
			||||||
import cc.winboll.studio.libappbase.LogView;
 | 
					import androidx.fragment.app.Fragment;
 | 
				
			||||||
import cc.winboll.studio.positions.R;
 | 
					import cc.winboll.studio.positions.R;
 | 
				
			||||||
import cc.winboll.studio.positions.activities.SettingsActivity;
 | 
					import cc.winboll.studio.positions.beans.PostionModel;
 | 
				
			||||||
import cc.winboll.studio.positions.activities.TestMapViewActivity;
 | 
					 | 
				
			||||||
import cc.winboll.studio.positions.utils.LocationFileStorage;
 | 
					import cc.winboll.studio.positions.utils.LocationFileStorage;
 | 
				
			||||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
 | 
					import com.hjq.toast.ToastUtils;
 | 
				
			||||||
import com.google.android.material.snackbar.Snackbar;
 | 
					 | 
				
			||||||
import com.tencent.map.geolocation.TencentLocation;
 | 
					import com.tencent.map.geolocation.TencentLocation;
 | 
				
			||||||
import com.tencent.map.geolocation.TencentLocationListener;
 | 
					import com.tencent.map.geolocation.TencentLocationListener;
 | 
				
			||||||
import com.tencent.map.geolocation.TencentLocationManager;
 | 
					import com.tencent.map.geolocation.TencentLocationManager;
 | 
				
			||||||
@@ -53,22 +52,6 @@ import com.tencent.tencentmap.mapsdk.maps.model.MyLocationStyle;
 | 
				
			|||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
import pub.devrel.easypermissions.EasyPermissions;
 | 
					import pub.devrel.easypermissions.EasyPermissions;
 | 
				
			||||||
import cc.winboll.studio.positions.beans.LocationJson;
 | 
					 | 
				
			||||||
import android.os.Bundle;
 | 
					 | 
				
			||||||
import android.view.LayoutInflater;
 | 
					 | 
				
			||||||
import android.view.View;
 | 
					 | 
				
			||||||
import android.view.ViewGroup;
 | 
					 | 
				
			||||||
import androidx.fragment.app.Fragment;
 | 
					 | 
				
			||||||
import cc.winboll.studio.positions.R;
 | 
					 | 
				
			||||||
import cc.winboll.studio.libappbase.LogView;
 | 
					 | 
				
			||||||
import androidx.annotation.Nullable;
 | 
					 | 
				
			||||||
import androidx.annotation.NonNull;
 | 
					 | 
				
			||||||
import android.graphics.Color;
 | 
					 | 
				
			||||||
import android.widget.TextView;
 | 
					 | 
				
			||||||
import cc.winboll.studio.positions.views.GridMapView;
 | 
					 | 
				
			||||||
import com.tencent.tencentmap.mapsdk.maps.MapView;
 | 
					 | 
				
			||||||
import com.tencent.tencentmap.mapsdk.maps.TencentMap;
 | 
					 | 
				
			||||||
import com.tencent.tencentmap.mapsdk.maps.TextureMapView;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class TXMSFragment extends Fragment implements EasyPermissions.PermissionCallbacks,LocationSource, TencentLocationListener {
 | 
					public class TXMSFragment extends Fragment implements EasyPermissions.PermissionCallbacks,LocationSource, TencentLocationListener {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -86,30 +69,31 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
 | 
				
			|||||||
    private TencentLocationManager locationManager;
 | 
					    private TencentLocationManager locationManager;
 | 
				
			||||||
    private TencentLocationRequest locationRequest;
 | 
					    private TencentLocationRequest locationRequest;
 | 
				
			||||||
    private MyLocationStyle locationStyle;
 | 
					    private MyLocationStyle locationStyle;
 | 
				
			||||||
    ArrayList<LocationJson> locationJsonList;
 | 
					    ArrayList<PostionModel> locationJsonList;
 | 
				
			||||||
 | 
					    Location lastLocation;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static TXMSFragment newInstance(int page) {
 | 
					//    public static TXMSFragment newInstance(int page) {
 | 
				
			||||||
        Bundle args = new Bundle();
 | 
					//        Bundle args = new Bundle();
 | 
				
			||||||
        args.putInt(ARG_PAGE, page);
 | 
					//        args.putInt(ARG_PAGE, page);
 | 
				
			||||||
        TXMSFragment fragment = new TXMSFragment();
 | 
					//        TXMSFragment fragment = new TXMSFragment();
 | 
				
			||||||
        fragment.setArguments(args);
 | 
					//        fragment.setArguments(args);
 | 
				
			||||||
        return fragment;
 | 
					//        return fragment;
 | 
				
			||||||
    }
 | 
					//    }
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
    @Override
 | 
					//    @Override
 | 
				
			||||||
    public void onCreate(Bundle savedInstanceState) {
 | 
					//    public void onCreate(Bundle savedInstanceState) {
 | 
				
			||||||
        super.onCreate(savedInstanceState);
 | 
					//        super.onCreate(savedInstanceState);
 | 
				
			||||||
        if (getArguments() != null) {
 | 
					//        if (getArguments() != null) {
 | 
				
			||||||
            mPage = getArguments().getInt(ARG_PAGE);
 | 
					//            mPage = getArguments().getInt(ARG_PAGE);
 | 
				
			||||||
        }
 | 
					//        }
 | 
				
			||||||
    }
 | 
					//    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Nullable
 | 
					    @Nullable
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
 | 
					    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
 | 
				
			||||||
                             @Nullable Bundle savedInstanceState) {
 | 
					                             @Nullable Bundle savedInstanceState) {
 | 
				
			||||||
        View viewRoot = inflater.inflate(R.layout.fragment_txms, container, false);
 | 
					        View viewRoot = inflater.inflate(R.layout.fragment_txms, container, false);
 | 
				
			||||||
        locationJsonList = new ArrayList<LocationJson>();
 | 
					        locationJsonList = new ArrayList<PostionModel>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        TencentMapInitializer.setAgreePrivacy(getActivity(), true);
 | 
					        TencentMapInitializer.setAgreePrivacy(getActivity(), true);
 | 
				
			||||||
        TencentMapInitializer.start(getActivity());
 | 
					        TencentMapInitializer.start(getActivity());
 | 
				
			||||||
@@ -134,18 +118,19 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
 | 
				
			|||||||
        checkLocationPermission();
 | 
					        checkLocationPermission();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //设置显示定位的图标
 | 
					        //设置显示定位的图标
 | 
				
			||||||
        TencentLocationManager.setUserAgreePrivacy(true);
 | 
					//        TencentLocationManager.setUserAgreePrivacy(true);
 | 
				
			||||||
        //建立定位
 | 
					//        // 启动实时定位
 | 
				
			||||||
        //initLocation();
 | 
					//        doRealTimePosition();
 | 
				
			||||||
        //对地图操作类进行操作
 | 
					
 | 
				
			||||||
        CameraUpdate cameraSigma =
 | 
					//        //对地图操作类进行操作
 | 
				
			||||||
            CameraUpdateFactory.newCameraPosition(new CameraPosition(
 | 
					//        CameraUpdate cameraSigma =
 | 
				
			||||||
                                                      new LatLng(22.984066, 116.307548),
 | 
					//            CameraUpdateFactory.newCameraPosition(new CameraPosition(
 | 
				
			||||||
                                                      15,
 | 
					//                                                      new LatLng(22.984066, 116.307548),
 | 
				
			||||||
                                                      0f,
 | 
					//                                                      15,
 | 
				
			||||||
                                                      0f));
 | 
					//                                                      0f,
 | 
				
			||||||
        //移动地图
 | 
					//                                                      0f));
 | 
				
			||||||
        tencentMap.moveCamera(cameraSigma);
 | 
					//        //移动地图
 | 
				
			||||||
 | 
					//        tencentMap.moveCamera(cameraSigma);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 设置地图点击监听
 | 
					        // 设置地图点击监听
 | 
				
			||||||
        tencentMap.setOnMapClickListener(new TencentMap.OnMapClickListener(){
 | 
					        tencentMap.setOnMapClickListener(new TencentMap.OnMapClickListener(){
 | 
				
			||||||
@@ -156,7 +141,7 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
 | 
				
			|||||||
                    //LatLng position = new LatLng(40.011313,116.391907);
 | 
					                    //LatLng position = new LatLng(40.011313,116.391907);
 | 
				
			||||||
                    BitmapDescriptor custom = BitmapDescriptorFactory.fromResource(R.drawable.marker);
 | 
					                    BitmapDescriptor custom = BitmapDescriptorFactory.fromResource(R.drawable.marker);
 | 
				
			||||||
                    Location location = createLocationFromLatLng(latLng);
 | 
					                    Location location = createLocationFromLatLng(latLng);
 | 
				
			||||||
                    addLocationJson(location);
 | 
					                    addLocationToMap(location);
 | 
				
			||||||
                    Marker mCustomMarker = tencentMap.addMarker(new MarkerOptions(latLng));
 | 
					                    Marker mCustomMarker = tencentMap.addMarker(new MarkerOptions(latLng));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    //创建Marker对象之后,修改属性
 | 
					                    //创建Marker对象之后,修改属性
 | 
				
			||||||
@@ -169,6 +154,11 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        loadLocations();
 | 
					        loadLocations();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // 启动实时定位
 | 
				
			||||||
 | 
					        //pickUpPosition();
 | 
				
			||||||
 | 
					        //realTimePositioning();
 | 
				
			||||||
 | 
					        sendRealTimePositioningMessage();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return viewRoot;
 | 
					        return viewRoot;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -187,13 +177,13 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
 | 
				
			|||||||
        // 读取数据
 | 
					        // 读取数据
 | 
				
			||||||
        locationJsonList = LocationFileStorage.loadFromFile(getActivity());
 | 
					        locationJsonList = LocationFileStorage.loadFromFile(getActivity());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (LocationJson lj : locationJsonList) {
 | 
					        for (PostionModel lj : locationJsonList) {
 | 
				
			||||||
            tencentMap.addMarker(new MarkerOptions(toTencentLatLng(lj.toLocation())));
 | 
					            tencentMap.addMarker(new MarkerOptions(convertToLatLng(lj.toLocation())));
 | 
				
			||||||
            //LogUtils.d("Location", "Lat: " + loc.getLatitude() + ", Lng: " + loc.getLongitude());
 | 
					            //LogUtils.d("Location", "Lat: " + loc.getLatitude() + ", Lng: " + loc.getLongitude());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void addLocationJson(Location location) {
 | 
					    void addLocationToMap(Location location) {
 | 
				
			||||||
        // 存储位置数据
 | 
					        // 存储位置数据
 | 
				
			||||||
//        Location location = new Location("gps");
 | 
					//        Location location = new Location("gps");
 | 
				
			||||||
//        location.setLatitude(22.984066);
 | 
					//        location.setLatitude(22.984066);
 | 
				
			||||||
@@ -202,7 +192,7 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        // 方式1:保存到文件
 | 
					        // 方式1:保存到文件
 | 
				
			||||||
        //List<Location> locations = new ArrayList<>();
 | 
					        //List<Location> locations = new ArrayList<>();
 | 
				
			||||||
        locationJsonList.add(new LocationJson(location));
 | 
					        locationJsonList.add(new PostionModel(location));
 | 
				
			||||||
        LocationFileStorage.saveToFile(getActivity(), locationJsonList);
 | 
					        LocationFileStorage.saveToFile(getActivity(), locationJsonList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 读取数据
 | 
					        // 读取数据
 | 
				
			||||||
@@ -213,11 +203,31 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
 | 
				
			|||||||
//        }
 | 
					//        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void addCurrentLocationToMap() {
 | 
				
			||||||
 | 
					        ToastUtils.show("addCurrentLocationToMap");
 | 
				
			||||||
 | 
					        locationJsonList.add(new PostionModel(createCurrentLocation()));
 | 
				
			||||||
 | 
					        LocationFileStorage.saveToFile(getActivity(), locationJsonList);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 创建Location对象方法
 | 
				
			||||||
 | 
					    private Location createCurrentLocation() {
 | 
				
			||||||
 | 
					        // 获取位置管理器
 | 
				
			||||||
 | 
					        LocationManager locationManager = (LocationManager) getActivity().getSystemService(getActivity().LOCATION_SERVICE);
 | 
				
			||||||
 | 
					        // 获取最后已知位置
 | 
				
			||||||
 | 
					        Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
 | 
				
			||||||
 | 
					        if (location != null) {
 | 
				
			||||||
 | 
					            // 获取位置提供程序名称
 | 
				
			||||||
 | 
					            String provider = location.getProvider();
 | 
				
			||||||
 | 
					            System.out.println("定位来源:" + provider);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return location;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // 创建Location对象方法
 | 
					    // 创建Location对象方法
 | 
				
			||||||
    private Location createLocationFromLatLng(LatLng latLng) {
 | 
					    private Location createLocationFromLatLng(LatLng latLng) {
 | 
				
			||||||
        Location location = new Location("tencent_map_manual");
 | 
					        Location location = new Location("Tencent_Map_Manual");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 设置基础坐标
 | 
					        // 设置基础坐标
 | 
				
			||||||
        location.setLatitude(latLng.getLatitude());
 | 
					        location.setLatitude(latLng.getLatitude());
 | 
				
			||||||
@@ -231,8 +241,16 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
 | 
				
			|||||||
        return location;
 | 
					        return location;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static LatLng convertToLatLng(TencentLocation location) {
 | 
				
			||||||
 | 
					        if (location != null) {
 | 
				
			||||||
 | 
					            double latitude = location.getLatitude();
 | 
				
			||||||
 | 
					            double longitude = location.getLongitude();
 | 
				
			||||||
 | 
					            return new LatLng(latitude, longitude);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    public LatLng toTencentLatLng(Location location) {
 | 
					    public static LatLng convertToLatLng(Location location) {
 | 
				
			||||||
        return new LatLng(
 | 
					        return new LatLng(
 | 
				
			||||||
            location.getLatitude(),
 | 
					            location.getLatitude(),
 | 
				
			||||||
            location.getLongitude()
 | 
					            location.getLongitude()
 | 
				
			||||||
@@ -249,6 +267,21 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
 | 
				
			|||||||
        tencentMap.addMarker(options);
 | 
					        tencentMap.addMarker(options);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static final int REALTIME_POSITIONING = 1;
 | 
				
			||||||
 | 
					    private Handler handler = new Handler(Looper.getMainLooper()) {
 | 
				
			||||||
 | 
					        @Override
 | 
				
			||||||
 | 
					        public void handleMessage(@NonNull Message msg) {
 | 
				
			||||||
 | 
					            switch (msg.what) {
 | 
				
			||||||
 | 
					                case REALTIME_POSITIONING:
 | 
				
			||||||
 | 
					                    // 在这里处理接收到消息后的逻辑,比如更新 UI
 | 
				
			||||||
 | 
					                    singleTimePositioning();
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					                default:
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * mapview的生命周期管理
 | 
					     * mapview的生命周期管理
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
@@ -314,20 +347,74 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
 | 
				
			|||||||
        return bitmap;
 | 
					        return bitmap;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private void pickUpCurrentPosition() {
 | 
				
			||||||
 | 
					        Location location = createCurrentLocation();
 | 
				
			||||||
 | 
					        ToastUtils.show(String.format("%s", location.toString()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //对地图操作类进行操作
 | 
				
			||||||
 | 
					        CameraUpdate cameraSigma =
 | 
				
			||||||
 | 
					            CameraUpdateFactory.newCameraPosition(new CameraPosition(
 | 
				
			||||||
 | 
					                                                      convertToLatLng(location),
 | 
				
			||||||
 | 
					                                                      15,
 | 
				
			||||||
 | 
					                                                      0f,
 | 
				
			||||||
 | 
					                                                      0f));
 | 
				
			||||||
 | 
					        //移动地图
 | 
				
			||||||
 | 
					        tencentMap.moveCamera(cameraSigma);
 | 
				
			||||||
 | 
					        addLocationToMap(location);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void sendRealTimePositioningMessage() {
 | 
				
			||||||
 | 
					        Message message = Message.obtain();
 | 
				
			||||||
 | 
					        message.what = TXMSFragment.REALTIME_POSITIONING;
 | 
				
			||||||
 | 
					        handler.sendMessage(message);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 定位的一些初始化设置
 | 
					     * 定位的一些初始化设置
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private void initLocation() {
 | 
					    public void singleTimePositioning() {
 | 
				
			||||||
        //用于访问腾讯定位服务的类, 周期性向客户端提供位置更新
 | 
					        TencentMapInitializer.setAgreePrivacy(getActivity(), true);
 | 
				
			||||||
 | 
					        TencentMapInitializer.start(getActivity());
 | 
				
			||||||
 | 
					        TencentLocationManager.setUserAgreePrivacy(true);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        //用于访问腾讯定位服务的类, 提供一次位置信息
 | 
				
			||||||
        locationManager = TencentLocationManager.getInstance(getActivity());
 | 
					        locationManager = TencentLocationManager.getInstance(getActivity());
 | 
				
			||||||
        //设置坐标系
 | 
					        //设置坐标系
 | 
				
			||||||
        locationManager.setCoordinateType(TencentLocationManager.COORDINATE_TYPE_GCJ02);
 | 
					        locationManager.setCoordinateType(TencentLocationManager.COORDINATE_TYPE_GCJ02);
 | 
				
			||||||
        //创建定位请求
 | 
					        //创建定位请求
 | 
				
			||||||
        locationRequest = TencentLocationRequest.create();
 | 
					        locationRequest = TencentLocationRequest.create();
 | 
				
			||||||
        //设置定位周期(位置监听器回调周期)为3s
 | 
					        // 设置定位模式为单次定位
 | 
				
			||||||
        locationRequest.setInterval(3000);
 | 
					        locationRequest.setInterval(0); // 设置为0表示只定位一次
 | 
				
			||||||
 | 
					        //locationRequest.setFastestInterval(0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // 实现 TencentLocationListener 接口来接收定位结果
 | 
				
			||||||
 | 
					        locationManager.requestLocationUpdates(locationRequest, new TencentLocationListener() {
 | 
				
			||||||
 | 
					                @Override
 | 
				
			||||||
 | 
					                public void onLocationChanged(TencentLocation location, int errorCode, String errorInfo) {
 | 
				
			||||||
 | 
					                    if (errorCode == TencentLocation.ERROR_OK) {
 | 
				
			||||||
 | 
					                        // 定位成功,处理定位数据
 | 
				
			||||||
 | 
					                        double latitude = location.getLatitude();
 | 
				
			||||||
 | 
					                        double longitude = location.getLongitude();
 | 
				
			||||||
 | 
					                        // 在这里可以将定位数据传递给其他需要的地方
 | 
				
			||||||
 | 
					                        //对地图操作类进行操作
 | 
				
			||||||
 | 
					                        CameraUpdate cameraSigma =
 | 
				
			||||||
 | 
					                            CameraUpdateFactory.newCameraPosition(new CameraPosition(
 | 
				
			||||||
 | 
					                                                                      convertToLatLng(location),
 | 
				
			||||||
 | 
					                                                                      15,
 | 
				
			||||||
 | 
					                                                                      0f,
 | 
				
			||||||
 | 
					                                                                      0f));
 | 
				
			||||||
 | 
					                        //移动地图
 | 
				
			||||||
 | 
					                        tencentMap.moveCamera(cameraSigma);
 | 
				
			||||||
 | 
					                    } else {
 | 
				
			||||||
 | 
					                        // 定位失败,处理错误信息
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                @Override
 | 
				
			||||||
 | 
					                public void onStatusUpdate(String name, int statusCode, String statusInfo) {
 | 
				
			||||||
 | 
					                    // 位置状态更新,根据需要处理
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }, Looper.getMainLooper());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //地图上设置定位数据源
 | 
					        //地图上设置定位数据源
 | 
				
			||||||
        tencentMap.setLocationSource(this);
 | 
					        tencentMap.setLocationSource(this);
 | 
				
			||||||
@@ -335,9 +422,10 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
 | 
				
			|||||||
        tencentMap.setMyLocationEnabled(true);
 | 
					        tencentMap.setMyLocationEnabled(true);
 | 
				
			||||||
        //设置定位图标样式
 | 
					        //设置定位图标样式
 | 
				
			||||||
        setLocMarkerStyle();
 | 
					        setLocMarkerStyle();
 | 
				
			||||||
//        locationStyle = locationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE);
 | 
					 | 
				
			||||||
        tencentMap.setMyLocationStyle(locationStyle);
 | 
					        tencentMap.setMyLocationStyle(locationStyle);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 实现位置监听
 | 
					     * 实现位置监听
 | 
				
			||||||
     * @param tencentLocation
 | 
					     * @param tencentLocation
 | 
				
			||||||
@@ -359,6 +447,16 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
 | 
				
			|||||||
            getActivity().runOnUiThread(new Runnable() {
 | 
					            getActivity().runOnUiThread(new Runnable() {
 | 
				
			||||||
                    @Override
 | 
					                    @Override
 | 
				
			||||||
                    public void run() {
 | 
					                    public void run() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        //对地图操作类进行操作
 | 
				
			||||||
 | 
					                        CameraUpdate cameraSigma =
 | 
				
			||||||
 | 
					                            CameraUpdateFactory.newCameraPosition(new CameraPosition(
 | 
				
			||||||
 | 
					                                                                      convertToLatLng(location),
 | 
				
			||||||
 | 
					                                                                      15,
 | 
				
			||||||
 | 
					                                                                      0f,
 | 
				
			||||||
 | 
					                                                                      0f));
 | 
				
			||||||
 | 
					                        //移动地图
 | 
				
			||||||
 | 
					                        tencentMap.moveCamera(cameraSigma);
 | 
				
			||||||
//                        Rules.getEffectInfo(location);
 | 
					//                        Rules.getEffectInfo(location);
 | 
				
			||||||
//                        double distance = DistanceUtils.getDistance(
 | 
					//                        double distance = DistanceUtils.getDistance(
 | 
				
			||||||
//                            locationA.getLatitude(), 
 | 
					//                            locationA.getLatitude(), 
 | 
				
			||||||
@@ -371,6 +469,22 @@ public class TXMSFragment extends Fragment implements EasyPermissions.Permission
 | 
				
			|||||||
//                    Toast.makeText(getApplicationContext(), new Gson().toJson(location), Toast.LENGTH_LONG).show();
 | 
					//                    Toast.makeText(getApplicationContext(), new Gson().toJson(location), Toast.LENGTH_LONG).show();
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 保存最后定位信息
 | 
				
			||||||
 | 
					            lastLocation = new Location(tencentLocation.getProvider());;
 | 
				
			||||||
 | 
					            lastLocation.setLatitude(tencentLocation.getLatitude());
 | 
				
			||||||
 | 
					            lastLocation.setLongitude(tencentLocation.getLongitude());
 | 
				
			||||||
 | 
					            lastLocation.setAccuracy(tencentLocation.getAccuracy());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 当不再需要定位时
 | 
				
			||||||
 | 
					            // 取消定位监听
 | 
				
			||||||
 | 
					            if (locationManager != null) {
 | 
				
			||||||
 | 
					                locationManager.removeUpdates(this);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            // 关闭当前位置显示
 | 
				
			||||||
 | 
					//            if (tencentMap != null) {
 | 
				
			||||||
 | 
					//                tencentMap.setMyLocationEnabled(false);
 | 
				
			||||||
 | 
					//            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,20 +25,20 @@ public class TasksFragment extends Fragment {
 | 
				
			|||||||
    private static final String ARG_PAGE = "ARG_PAGE";
 | 
					    private static final String ARG_PAGE = "ARG_PAGE";
 | 
				
			||||||
    private int mPage;
 | 
					    private int mPage;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    public static TasksFragment newInstance(int page) {
 | 
					//    public static TasksFragment newInstance(int page) {
 | 
				
			||||||
        Bundle args = new Bundle();
 | 
					//        Bundle args = new Bundle();
 | 
				
			||||||
        args.putInt(ARG_PAGE, page);
 | 
					//        args.putInt(ARG_PAGE, page);
 | 
				
			||||||
        TasksFragment fragment = new TasksFragment();
 | 
					//        TasksFragment fragment = new TasksFragment();
 | 
				
			||||||
        fragment.setArguments(args);
 | 
					//        fragment.setArguments(args);
 | 
				
			||||||
        return fragment;
 | 
					//        return fragment;
 | 
				
			||||||
    }
 | 
					//    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void onCreate(Bundle savedInstanceState) {
 | 
					    public void onCreate(Bundle savedInstanceState) {
 | 
				
			||||||
        super.onCreate(savedInstanceState);
 | 
					        super.onCreate(savedInstanceState);
 | 
				
			||||||
        if (getArguments()!= null) {
 | 
					//        if (getArguments()!= null) {
 | 
				
			||||||
            mPage = getArguments().getInt(ARG_PAGE);
 | 
					//            mPage = getArguments().getInt(ARG_PAGE);
 | 
				
			||||||
        }
 | 
					//        }
 | 
				
			||||||
        setHasOptionsMenu(true);
 | 
					        setHasOptionsMenu(true);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,25 +15,25 @@ import java.util.ArrayList;
 | 
				
			|||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
import org.json.JSONArray;
 | 
					import org.json.JSONArray;
 | 
				
			||||||
import cc.winboll.studio.libappbase.LogUtils;
 | 
					import cc.winboll.studio.libappbase.LogUtils;
 | 
				
			||||||
import cc.winboll.studio.positions.beans.LocationJson;
 | 
					import cc.winboll.studio.positions.beans.PostionModel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class LocationFileStorage {
 | 
					public class LocationFileStorage {
 | 
				
			||||||
    public static final String TAG = "LocationFileStorage";
 | 
					    public static final String TAG = "LocationFileStorage";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private static final String FILE_NAME = "locations.json";
 | 
					    private static final String FILE_NAME = "locations.json";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static void saveToFile(Context context, ArrayList<LocationJson> locations) {
 | 
					    public static void saveToFile(Context context, ArrayList<PostionModel> locations) {
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            LocationJson.saveBeanList(context, locations, LocationJson.class);
 | 
					            PostionModel.saveBeanList(context, locations, PostionModel.class);
 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
            LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
 | 
					            LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static ArrayList<LocationJson> loadFromFile(Context context) {
 | 
					    public static ArrayList<PostionModel> loadFromFile(Context context) {
 | 
				
			||||||
        ArrayList<LocationJson> result = new ArrayList<LocationJson>();
 | 
					        ArrayList<PostionModel> result = new ArrayList<PostionModel>();
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            LocationJson.loadBeanList(context, result, LocationJson.class);
 | 
					            PostionModel.loadBeanList(context, result, PostionModel.class);
 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
            LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
 | 
					            LogUtils.d(TAG, e, Thread.currentThread().getStackTrace());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,8 +3,13 @@
 | 
				
			|||||||
	xmlns:app="http://schemas.android.com/apk/res-auto">
 | 
						xmlns:app="http://schemas.android.com/apk/res-auto">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <item
 | 
					    <item
 | 
				
			||||||
        android:id="@+id/item_addposition"
 | 
					        android:id="@+id/item_positionnow"
 | 
				
			||||||
        android:title="AddPositions"
 | 
					        android:title="PositionNow"
 | 
				
			||||||
 | 
					        app:showAsAction="ifRoom" />
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    <item
 | 
				
			||||||
 | 
					        android:id="@+id/item_addnewposition"
 | 
				
			||||||
 | 
					        android:title="AddNewPositions"
 | 
				
			||||||
        app:showAsAction="ifRoom" />
 | 
					        app:showAsAction="ifRoom" />
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
</menu>
 | 
					</menu>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user