提交 0f50acb7 编写于 作者: S suhy

poi

上级 a82ea95e
......@@ -78,6 +78,7 @@
<entry key="..\:/Users/suhy/Desktop/github/drift-bottle/MyHomeWork/app/src/main/res/layout/activity_add_bottle.xml" value="0.4" />
<entry key="..\:/Users/suhy/Desktop/github/drift-bottle/MyHomeWork/app/src/main/res/layout/activity_add_message.xml" value="0.4" />
<entry key="..\:/Users/suhy/Desktop/github/drift-bottle/MyHomeWork/app/src/main/res/layout/activity_ar.xml" value="0.13858695652173914" />
<entry key="..\:/Users/suhy/Desktop/github/drift-bottle/MyHomeWork/app/src/main/res/layout/activity_draft_details.xml" value="0.15677083333333333" />
<entry key="..\:/Users/suhy/Desktop/github/drift-bottle/MyHomeWork/app/src/main/res/layout/activity_evalute.xml" value="0.2" />
<entry key="..\:/Users/suhy/Desktop/github/drift-bottle/MyHomeWork/app/src/main/res/layout/activity_historical_records.xml" value="0.13858695652173914" />
<entry key="..\:/Users/suhy/Desktop/github/drift-bottle/MyHomeWork/app/src/main/res/layout/activity_login.xml" value="0.2" />
......@@ -100,7 +101,11 @@
<entry key="..\:/Users/suhy/Desktop/github/drift-bottle/MyHomeWork/app/src/main/res/layout/fragment_news.xml" value="0.11822916666666666" />
<entry key="..\:/Users/suhy/Desktop/github/drift-bottle/MyHomeWork/app/src/main/res/layout/fragment_photo.xml" value="0.13858695652173914" />
<entry key="..\:/Users/suhy/Desktop/github/drift-bottle/MyHomeWork/app/src/main/res/layout/historyrecord_item.xml" value="0.13858695652173914" />
<entry key="..\:/Users/suhy/Desktop/github/drift-bottle/MyHomeWork/app/src/main/res/layout/item_draft.xml" value="0.15677083333333333" />
<entry key="..\:/Users/suhy/Desktop/github/drift-bottle/MyHomeWork/app/src/main/res/layout/item_dropdown.xml" value="0.15677083333333333" />
<entry key="..\:/Users/suhy/Desktop/github/drift-bottle/MyHomeWork/app/src/main/res/layout/item_maprecord.xml" value="0.2670940170940171" />
<entry key="..\:/Users/suhy/Desktop/github/drift-bottle/MyHomeWork/app/src/main/res/layout/item_message.xml" value="0.15677083333333333" />
<entry key="..\:/Users/suhy/Desktop/github/drift-bottle/MyHomeWork/app/src/main/res/layout/item_select.xml" value="0.15677083333333333" />
<entry key="..\:/Users/suhy/Desktop/github/drift-bottle/MyHomeWork/app/src/main/res/layout/message_details.xml" value="0.25885416666666666" />
<entry key="..\:/Users/suhy/Desktop/github/drift-bottle/MyHomeWork/app/src/main/res/layout/message_item.xml" value="0.17760416666666667" />
<entry key="..\:/Users/suhy/Desktop/github/drift-bottle/MyHomeWork/app/src/main/res/layout/msg_right_layout.xml" value="0.13858695652173914" />
......
......@@ -18,6 +18,6 @@ public class BottleApplication extends Application {
SDKInitializer.initialize(this);
//自4.3.0起,百度地图SDK所有接口均支持百度坐标和国测局坐标,用此方法设置您使用的坐标类型.
//包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
// SDKInitializer.setCoordType(CoordType.BD09LL);
SDKInitializer.setCoordType(CoordType.GCJ02);
}
}
package com.example.myhomework.activity;
import static com.example.myhomework.global.GlobalMemory.Address;
import static com.example.myhomework.global.GlobalMemory.Latitude;
import static com.example.myhomework.global.GlobalMemory.Longitude;
import static com.example.myhomework.global.GlobalMemory.NickName;
import static com.example.myhomework.global.GlobalMemory.PoiList;
import static com.example.myhomework.global.GlobalMemory.PoiNameList;
import static com.example.myhomework.utils.UiUtil.ShowToast;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.ArrayAdapter;
import androidx.appcompat.app.AppCompatActivity;
import com.baidu.mapapi.map.BaiduMap;
import com.example.myhomework.R;
import com.example.myhomework.databinding.ActivityAddBottleBinding;
import com.example.myhomework.service.MapService;
import com.example.myhomework.utils.MapUtil;
......@@ -18,6 +25,7 @@ import com.example.myhomework.utils.UiUtil;
public class AddBottleActivity extends AppCompatActivity {
ActivityAddBottleBinding binding;
BaiduMap baiduMap;
private String[] starArray = {"水星","金星","地球","火星","木星","土星"};
@Override
protected void onCreate(Bundle savedInstanceState) {
......@@ -34,6 +42,8 @@ public class AddBottleActivity extends AppCompatActivity {
baiduMap = binding.map.getMap();
MapUtil.initLocationOption(baiduMap,this, binding.map);
binding.finish.setOnClickListener(v -> {
double x = Latitude;
double y = Longitude;
String title = binding.title.getText().toString();
String address;
String describe = binding.describe.getText().toString();
......@@ -43,11 +53,23 @@ public class AddBottleActivity extends AppCompatActivity {
ShowToast(this,"内容不能为空噢");
return;
}
int position = binding.spinner.getSelectedItemPosition();
address = PoiNameList.get(position);
if(address == null)
address = Address;
if(binding.switchAnon.isChecked())
author = "匿名";
MapService.addBottle(title, describe, author, this);
finish();
MapService.addBottle(x, y, title, address, describe, author, AddBottleActivity.this);
});
initSpinner();
}
private void initSpinner(){
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this, R.layout.item_select, PoiNameList);
binding.spinner.setPrompt("请选择投放位置");
binding.spinner.setAdapter(spinnerAdapter);
binding.spinner.setSelection(0);
}
}
package com.example.myhomework.activity;
import static com.example.myhomework.global.GlobalMemory.Address;
import static com.example.myhomework.global.GlobalMemory.Latitude;
import static com.example.myhomework.global.GlobalMemory.Longitude;
import static com.example.myhomework.global.GlobalMemory.NickName;
import static com.example.myhomework.global.GlobalMemory.PoiNameList;
import static com.example.myhomework.utils.UiUtil.ShowToast;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.ArrayAdapter;
import androidx.appcompat.app.AppCompatActivity;
import com.baidu.mapapi.map.BaiduMap;
import com.example.myhomework.BottleApplication;
import com.example.myhomework.R;
import com.example.myhomework.databinding.ActivityAddMessageBinding;
import com.example.myhomework.fragment.MapFragment;
import com.example.myhomework.service.MapService;
import com.example.myhomework.utils.MapUtil;
import com.example.myhomework.utils.UiUtil;
......@@ -37,6 +41,8 @@ public class AddMessageActivity extends AppCompatActivity {
baiduMap = binding.map.getMap();
MapUtil.initLocationOption(baiduMap,this, binding.map);
binding.finish.setOnClickListener(v -> {
double x = Latitude;
double y = Longitude;
String title = binding.title.getText().toString();
String address;
String describe = binding.describe.getText().toString();
......@@ -46,11 +52,20 @@ public class AddMessageActivity extends AppCompatActivity {
ShowToast(this,"内容不能为空噢");
return;
}
address = PoiNameList.get(binding.spinner.getSelectedItemPosition());
if(address == null)
address = Address;
if(binding.switchAnon.isChecked())
author = "匿名";
MapService.addBoard(title, describe, author, this);
finish();
MapService.addBoard(x , y,title, address, describe, author, AddMessageActivity.this);
});
initSpinner();
}
private void initSpinner(){
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this, R.layout.item_select, PoiNameList);
binding.spinner.setPrompt("请选择投放位置");
binding.spinner.setAdapter(spinnerAdapter);
binding.spinner.setSelection(0);
}
}
......@@ -53,9 +53,9 @@ public class MapRecordAdapter extends RecyclerView.Adapter<MapRecordAdapter.View
d=R*Math.acos(Math.cos(Longitude) * Math.cos(mapRecord.getY())*Math.cos(Latitude - mapRecord.getX())
+Math.sin(Longitude) * Math.sin(mapRecord.getY()));
if(d > 1){
itemMaprecordBinding.distance.setText(d + "km");
itemMaprecordBinding.distance.setText((String)(d+"").substring(0,8)+"km");
}else{
itemMaprecordBinding.distance.setText(d + "m");
itemMaprecordBinding.distance.setText((String)(d+"").substring(0,8)+"m");
}
}
@Override
......
package com.example.myhomework.adapter;
public class SelectAdapter {
}
......@@ -2,6 +2,7 @@ package com.example.myhomework.global;
import android.util.Log;
import com.baidu.location.Poi;
import com.example.myhomework.bean.MapRecord;
import java.util.ArrayList;
......@@ -20,6 +21,8 @@ public class GlobalMemory {
public static double Longitude = 1;
public static double Latitude = 1;
public static String Address = "未知地点";
public static List<String> PoiNameList = new ArrayList<>();
public static List<Poi> PoiList = new ArrayList<>();
public static void PrintLog(String msg){
Log.d(TAG,msg);
}
......
......@@ -6,6 +6,7 @@ import static com.example.myhomework.global.GlobalMemory.Longitude;
import static com.example.myhomework.global.GlobalMemory.TAG;
import static com.example.myhomework.global.GlobalMemory.MapRecordList;
import android.app.Activity;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
......@@ -99,11 +100,11 @@ public class MapService extends Service {
}).start();
}
public static void addBottle(String title, String describe, String author, Context context){
public static void addBottle(double x, double y, String title, String address, String describe, String author, Activity context) {
new Thread(() -> {
Connection connection = JDBCUtil.Connection();
String sql = "INSERT into point values(null,"+Latitude+","+Longitude+",'"+title+"','"
+Address+"','"+describe+"','Bottle','"+author+"')";
String sql = "INSERT into point values(null,"+x+","+y+",'"+title+"','"
+address+"','"+describe+"','Board','"+author+"')";
GlobalMemory.PrintLog(TAG+sql);
PreparedStatement preparedStatement;
try {
......@@ -113,14 +114,15 @@ public class MapService extends Service {
GlobalMemory.PrintLog(TAG+e.getMessage());
GlobalMemory.PrintLog(TAG+sql);
}
UiUtil.ShowToast(context,"添加成功");
context.runOnUiThread(()->UiUtil.ShowToast(context,"添加成功"));
context.finish();
}).start();
}
public static void addBoard(String title, String describe, String author, Context context) {
public static void addBoard(double x, double y, String title, String address, String describe, String author, Activity context) {
new Thread(() -> {
Connection connection = JDBCUtil.Connection();
String sql = "INSERT into point values(null,"+Latitude+","+Longitude+",'"+title+"','"
+Address+"','"+describe+"','Board','"+author+"')";
String sql = "INSERT into point values(null,"+x+","+y+",'"+title+"','"
+address+"','"+describe+"','Board','"+author+"')";
GlobalMemory.PrintLog(TAG+sql);
PreparedStatement preparedStatement;
try {
......@@ -130,7 +132,8 @@ public class MapService extends Service {
GlobalMemory.PrintLog(TAG+e.getMessage());
GlobalMemory.PrintLog(TAG+sql);
}
UiUtil.ShowToast(context,"添加成功");
context.runOnUiThread(()->UiUtil.ShowToast(context,"添加成功"));
context.finish();
}).start();
}
......
......@@ -3,11 +3,12 @@ package com.example.myhomework.utils;
import static com.example.myhomework.global.GlobalMemory.Address;
import static com.example.myhomework.global.GlobalMemory.Latitude;
import static com.example.myhomework.global.GlobalMemory.Longitude;
import static com.example.myhomework.global.GlobalMemory.PoiList;
import static com.example.myhomework.global.GlobalMemory.PoiNameList;
import android.content.Context;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
import com.baidu.location.BDAbstractLocationListener;
import com.baidu.location.BDLocation;
......@@ -22,7 +23,6 @@ import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MyLocationConfiguration;
import com.baidu.mapapi.map.MyLocationData;
import com.example.myhomework.R;
import com.example.myhomework.fragment.MapFragment;
public class MapUtil {
public static void initLocationOption(BaiduMap mBaiduMap, Context context, View mapView) {
......@@ -77,13 +77,18 @@ public class MapUtil {
//通过LocationClientOption设置LocationClient相关参数
LocationClientOption option = new LocationClientOption();
option.setOpenGps(true); // 打开gps
option.setCoorType("bd09ll"); // 设置坐标类型
option.setCoorType("gcj02"); // 设置坐标类型
option.setScanSpan(1100);
option.setNeedDeviceDirect(true);
option.setIsNeedAddress(true);
option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
option.setIsNeedAltitude(true);
option.setIsNeedLocationDescribe(true);
option.setIsNeedLocationPoiList(true);
//设置locationClientOption
mLocationClient.setLocOption(option);
//注册LocationListener监听器
MyLocationListener myLocationListener = new MyLocationListener(mBaiduMap, mapView);
MyLocationListener myLocationListener = new MyLocationListener(mBaiduMap, mapView,context);
mLocationClient.registerLocationListener(myLocationListener);
//开启地图定位图层
mLocationClient.start();
......@@ -103,7 +108,8 @@ public class MapUtil {
static class MyLocationListener extends BDAbstractLocationListener {
BaiduMap mBaiduMap;
View view;
MyLocationListener(BaiduMap mBaiduMap,View view){
Context context;
MyLocationListener(BaiduMap mBaiduMap,View view, Context context){
this.mBaiduMap = mBaiduMap;
this.view = view;
}
......@@ -127,12 +133,14 @@ public class MapUtil {
//获取定位类型、定位错误返回码,具体信息可参照类参考中BDLocation类中的说明
String locationDescribe = location.getLocationDescribe();
Address = locationDescribe;
Log.d("TAGTAG",locationDescribe+"");
Log.d("TAGTAG",location.getTown()+"");
Log.d("TAGTAG",location.getStreet()+"");
Log.d("TAGTAG",location.getCity()+"");
Log.d("TAGTAG",location.getProvince()+"");
Log.d("TAGTAG","详细地址"+location.getAddrStr()+"");
Log.d("TAGTAG",location.toString());
Log.d("TAGTAG","描述:"+locationDescribe+"");
Log.d("TAGTAG","乡镇: "+location.getTown()+"");
Log.d("TAGTAG","街道:"+location.getStreet()+"");
Log.d("TAGTAG","城市:"+location.getCity()+"");
Log.d("TAGTAG","省份:"+location.getProvince()+"");
Log.d("TAGTAG","详细地址:"+location.getAddrStr()+"");
//此处的BDLocation为定位结果信息类,通过它的各种get方法可获取定位相关的全部结果
//以下只列举部分获取周边POI信息相关的结果
//更多结果信息获取说明,请参照类参考中BDLocation类中的说明
......@@ -142,16 +150,18 @@ public class MapUtil {
String poiName = poi.getName(); //获取POI名称
String poiTags = poi.getTags(); //获取POI类型
String poiAddr = poi.getAddr(); //获取POI地址 //获取周边POI信息
PoiNameList.clear();
for (Poi _poi: location.getPoiList()){
Log.d("TAGTAG","poi"+_poi.getAddr()+"");
Log.d("TAGTAG","poi"+_poi.getName()+"");
PoiList.add(_poi);
PoiNameList.add(_poi.getName());
}
}
// PoiRegion poiRegion= location.getPoiRegion();
// String poiDerectionDesc = poiRegion.getDerectionDesc(); //获取PoiRegion位置关系
// String poiRegionName = poiRegion.getName(); //获取PoiRegion名称
// String _poiTags = poiRegion.getTags(); //获取PoiRegion类型
PoiRegion poiRegion= location.getPoiRegion();
String poiDerectionDesc = poiRegion.getDerectionDesc(); //获取PoiRegion位置关系
String poiRegionName = poiRegion.getName(); //获取PoiRegion名称
String _poiTags = poiRegion.getTags(); //获取PoiRegion类型
int errorCode = location.getLocType();
if (location == null || view == null)
......
......@@ -77,6 +77,7 @@
android:layout_marginTop="15dp"
app:cardCornerRadius="15dp">
<Spinner
android:layout_marginStart="15dp"
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="match_parent"
......
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="45dp"
android:textColor="@android:color/black"
android:textSize="14sp"
android:gravity="center"/>
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="45dp"
android:background="@android:color/white"
android:textSize="14sp"
android:textColor="#8C8383"
android:gravity="center_vertical"/>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册