我有两个位置,我想以米为单位计算距离.我写了一些代码,但它并不完美.
private void getDistanceBetweenTwoPoints(double lat1,double lon1,double lat2,double lon2)
{
Location loc1 = new Location("");
loc1.setLatitude(lat1);
loc1.setLongitude(lon1);
Location loc2 = new Location("");
loc2.setLatitude(lat2);
loc2.setLongitude(lon2);
int R = 6371; // km
double dLat = deg2rad(lat2-lat1);
double dLon = deg2rad(lon2-lon1);
double a =
Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *
Math.sin(dLon/2) * Math.sin(dLon/2)
;
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
double distanceInMeters = R * c;
Log.e("distanceInMeters",distanceInMeters/10000+"mm");
}
public double deg2rad(double deg) {
return deg * (Math.PI/180);
}
Run Code Online (Sandbox Code Playgroud)
如何计算米的距离?我的目标是,如果米> 200做某事.我怎样才能解决我的问题?
我搜索了很多有关以编程方式打开GPS的信息,但没有找到任何解决方案。但是有些像Waze这样的应用程序不是系统应用程序,可以打开GPS!
例如,在显示该窗口的Waze中(如果GPS关闭!):
然后单击“打开GPS”将显示以下内容:
GPS将会自动开启!我们怎样才能像位智一样做到这一点?
我需要找到当前连接方法的SSID。我读过这个了,但它使用全球定位系统,这是我不想。有办法可以实现吗?
我想通过 GPS 以地址的形式获取我当前的位置。我正在使用安卓工作室。它说我的应用程序停止工作。其中有什么错误?有人可以帮我摆脱这种情况吗?
我在 activity_main.xml 文件中的代码是
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
Run Code Online (Sandbox Code Playgroud)
我在 MainActivity.java 中的代码是
package com.example.showlatlong;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;
import java.util.List;
import java.util.Locale;
public class MainActivity extends AppCompatActivity {
Location gps_loc, network_loc, final_loc;
double longitude;
double latitude;
String userCountry, userAddress;
@Override
protected void onCreate(Bundle savedInstanceState) …
Run Code Online (Sandbox Code Playgroud) 我想创建一个应用程序,人们可以看到他们和他们的朋友在哪里例如: - 想象2个人正在使用应用程序,他们应该能够实时看到彼此的位置,他们应该能够互相导航帮助我获得创建这样一个应用程序的资源
我正在使用 AndroidLocationManager
及其方法,requestLocationUpdates
如下所示:
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 10, this);
Run Code Online (Sandbox Code Playgroud)
我发现位置更新必须满足 minTime 和 minDistance 的条件,但我需要每 3 秒或 10 米更新一次。
我试图提出 2 个这样的请求:
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 0, this);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 10, this);
Run Code Online (Sandbox Code Playgroud)
但它不起作用,我只使用此代码每 10 米更新一次,而不是每 3 秒更新一次。
如果这很重要,我正在使用 API19。
我已经将 GPS 模块与 Arduino 板连接,但是,当我打开串行监视器时,它显示了很多空字段和零。GPS模块是否有故障?
它显示了这一点:
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000053.799,V,,,,,0.00,0.00,060180,,,N*43
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000054.799,,,,,0,0,,,M,,M,,*4E
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,000054.799,V,,,,,0.00,0.00,060180,,,N*44
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,000055.799,,,,,0,0,,,M,,M,,*4F
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
Run Code Online (Sandbox Code Playgroud) 在Android中,我看到了许多获取位置的方法.我已阅读本和这有关位置,并且也我也来了解融合位置API.
我在App中的案例是,当用户启动应用程序时,它必须以最快的方式获取位置.因为我必须根据用户位置做一些特定的任务.
所以到现在我正在使用位置服务.在这里我尝试了从GPS和网络位置的Loation.但是他们两个都要求启用我的位置,但我认为如果我从netwrok获取位置应该没关系?是吗 ?
那么你们建议我如何获得位置?应该快速准确地回复回复?
请为此辩论我的这些困惑?对我来说什么是最好的可以请一些人在我的情况下破坏并相应地回答我?
我希望每当他改变位置时都能获得用户位置的更新.我使用了requestLocationUpdates,其中有最小距离.但我怀疑的是距离单位是多少?
如果我想在用户移动2公里时更新,我应该以最小距离给出什么号码?
我正在写一个代码,它给了我纬度,经度和地址.但经度和经度在小数点后只显示7个位置,我希望它更准确,即.小数点后最多15个数字请帮助并谢谢以下是我的代码,我通过getLatitude和getLongitude获取价值
final String location = locationText.getText().toString();
RequestQueue queue = Volley.newRequestQueue(MainActivity.this);
StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(MainActivity.this, "dfdsfsd"+response, Toast.LENGTH_SHORT).show();
Log.i("My success",""+response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this, "my error :"+error, Toast.LENGTH_LONG).show();
Log.i("My error",""+error);
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> map = new HashMap<String, String>();
map.put("locationText",location );
return map;
}
};
queue.add(request);
}
});
if (ContextCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getApplicationContext(), …
Run Code Online (Sandbox Code Playgroud) import android.app.AlertDialog;
import android.app.Service;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
import android.provider.Settings;
import android.util.Log;
public class GPSTracker extends Service implements LocationListener {
private Context mContext;
// flag for GPS status
boolean isGPSEnabled = false;
// flag for network status
boolean isNetworkEnabled = false;
// flag for GPS status
boolean canGetLocation = false;
Location location; // location
double latitude; // latitude
double longitude; // longitude
// The minimum distance to change …
Run Code Online (Sandbox Code Playgroud) 我application
在android中开发单一模式,其中不需要请求用户的批准.
它甚至可以在根设备上作为Native应用程序(ndk)完成.但是,我仍然不确定是否有办法处理它GPS
permissions
.
在manifest
文件中声明权限似乎还不够.
有没有办法在不问用户的情况下做到这一点permission
?
android-gps ×12
android ×11
gps ×4
java ×4
android-ndk ×1
android-wifi ×1
arduino ×1
geolocation ×1
google-maps ×1
nmea ×1