当前位置: 首页 > 知识库问答 >
问题:

我如何不使用谷歌地图和其他地图来获取用户当前位置?

王英彦
2023-03-14

我正在开发天气应用程序,当应用程序第一次推出时,我想检测用户当前位置,但我尝试使用谷歌地图,但他们要求信用卡,以获得谷歌地图的api密钥,不幸的是,我没有信用卡。你有其他的解决方案或替代方案吗。

共有1个答案

诸葛苏燕
2023-03-14

Java中的简单代码。

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.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;

import java.util.List;
import java.util.Locale;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    location();
}
private void location() {
    Log.e("@@l", "location");
    LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
    LocationListener locationListener = new LocationListener() {
        public void onLocationChanged(Location location) {

            Log.e("@@", "onLocationChanged : " + location.getLatitude() + ", " + location.getLongitude());
            updateLocation(location);
        }

        public void onStatusChanged(String provider, int status, Bundle extras) {
        }

        public void onProviderEnabled(String provider) {
        }

        public void onProviderDisabled(String provider) {
        }
    };

    if (ActivityCompat.checkSelfPermission(this,
            Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
            ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) !=
                    PackageManager.PERMISSION_GRANTED) {

        return;
        }
        locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 0, locationListener);
    }

        public void updateLocation ( Location location){


        Geocoder geocoder = new Geocoder(getApplicationContext(), Locale.getDefault());
        try {
        List<Address> listAddresses = geocoder.getFromLocation(location.getLatitude(),location.getLongitude(),1);

        String address = " ";

        if (listAddresses != null && listAddresses.size() > 0) {

        if (listAddresses.get(0).getThoroughfare() != null) {

            address = listAddresses.get(0).getThoroughfare() + " ";
        }

        if (listAddresses.get(0).getLocality() != null) {

            address += listAddresses.get(0).getLocality() + " ";
        }

        if (listAddresses.get(0).getPostalCode() != null) {

            address += listAddresses.get(0).getPostalCode() + " ";
        }

        if (listAddresses.get(0).getAdminArea() != null) {

            address += listAddresses.get(0).getAdminArea();
        }
        }

        Log.i("Address",address);

        } catch (Exception e) {

        e.printStackTrace();

        }
        }
    }
 类似资料:
  • 我有一张地图,上面有很多自定义的大标记。现在,我希望允许用户在地图上创建路径(显示为折线,稍后保存为地理坐标对列表)。 如果用户单击地图,我可以使用地图的setOnMapClickedListener方法收集这些位置。但是如果用户点击一个标记(setOnMarkerClickedListener),我只能检索标记的位置(通常是标记的ancor的位置)。

  • 我已经浏览了很多关于堆栈溢出的文档和问题(例如,如何在Google Maps v2 android和android API v2 Change MyLocation图标中平稳地移动当前位置标记),但还没有找到任何答案,如果有可能使默认的当前位置图标(见附件)在跟踪当前位置时移动得更平稳(同时移动)。我已经考虑过requestLocationUpdates触发的频率(时间和距离),但没有什么能让它在

  • 我成功创建了一个活动,用户可以在其中发布他的状态并将他的当前位置放置在android工作室中创建的google map中。我还尝试在map中查看所有其他用户,我成功地做到了。但是,随着他们的位置发生变化,不断增加。我想实现这样一种情况,即用户在移动时可以在地图上看到彼此,并且这些也会相应地移动。我使用Firebase作为我的后端来存储他们的位置和状态。这是我想出的代码。 请帮帮我!提前感谢!:)

  • 是否可以使用Google API为网站创建一个与此完全相同的地图: https://www.google.pl/maps/place/Googleplex/@37.422,-122.0840835,19z/data=!4m2!3m1!1s0x808fba02425dad8f: 0x6c296c66619367e0 所以我想要的是将地点ID传递给API,以获得一个像Googleplex这样的地方,我

  • 我是一名android开发人员,已经使用它开发上下文感知应用程序有一段时间了。位置是上下文感知的重要内容之一,而位置的准确性是非常重要的。 我知道怎么用LocationManager从GPS上得到位置...我知道如何在Android上使用谷歌地图开发应用程序...以及如何在地图上显示用户…但是我的朋友们发现,当他们去外国参加会议时,他们在LocationManager上的位置与谷歌地图相比非常不准

  • 所以我目前正在努力开发一个应用程序,需要一个谷歌地图API。每当我尝试加载地图时,我的应用程序将我的地图实现为片段类的子类: 编辑:原来我只是错过了应该被引用的API键。我很抱歉提出了一个低质量的问题