Это для школьного проекта. Независимо от того, сколько я пытался изменить значение или команду, он просто загружает карту и лишь немного перемещается (даже не масштабируя), предполагается, что это работающее приложение, которое отслеживает ваше местоположение в реальном времени, в этом нет необходимости, но я хочу, чтобы оно увеличивало местоположение пользователя, когда он открывает карту
public class Map extends AppCompatActivity {
boolean hasCenteredOnce = false;
MyLocationNewOverlay mLocationOverlay;
MapView map;
LocationManager locationManager;
LocationListener locationListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Configuration.getInstance().setUserAgentValue(getPackageName());
setContentView(R.layout.activity_map);
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
}
map = findViewById(R.id.map);
map.setMultiTouchControls(true);
int size = 60;
Bitmap bitmap = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.FILL);
paint.setAntiAlias(true);
canvas.drawCircle(size / 2f, size / 2f, size / 2.5f, paint);
mLocationOverlay = new MyLocationNewOverlay(new GpsMyLocationProvider(this), map);
mLocationOverlay.enableMyLocation();
mLocationOverlay.enableFollowLocation(); // This makes the map follow the user
mLocationOverlay.setDrawAccuracyEnabled(true); // Shows the blue circle accuracy
mLocationOverlay.setPersonIcon(bitmap);
mLocationOverlay.setDirectionIcon(bitmap);
map.getOverlays().add(mLocationOverlay);
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
locationListener = location -> {
double lat = location.getLatitude();
double lon = location.getLongitude();
GeoPoint userPoint = new GeoPoint(lat, lon);
// 2. Only zoom and snap the first time location is found
// This prevents the map from "jumping" while the user is trying to look around
if (!hasCenteredOnce) {
map.getController().setCenter(userPoint);
map.getController().setZoom(17.0);
map.getController().animateTo(userPoint);
hasCenteredOnce = true;
}
};
}
@Override
protected void onResume() {
super.onResume();
map.onResume();
mLocationOverlay.enableMyLocation();
mLocationOverlay.enableFollowLocation();
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED) {
try {
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
2000,
2,
locationListener);
} catch (SecurityException e) {
e.printStackTrace();
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/799 ... oesnt-work
Я пытаюсь увеличить местоположение пользователя, но это не работает. ⇐ Android
Форум для тех, кто программирует под Android
1772630631
Anonymous
Это для школьного проекта. Независимо от того, сколько я пытался изменить значение или команду, он просто загружает карту и лишь немного перемещается (даже не масштабируя), предполагается, что это работающее приложение, которое отслеживает ваше местоположение в реальном времени, в этом нет необходимости, но я хочу, чтобы оно увеличивало местоположение пользователя, когда он открывает карту
public class Map extends AppCompatActivity {
boolean hasCenteredOnce = false;
MyLocationNewOverlay mLocationOverlay;
MapView map;
LocationManager locationManager;
LocationListener locationListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Configuration.getInstance().setUserAgentValue(getPackageName());
setContentView(R.layout.activity_map);
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1);
}
map = findViewById(R.id.map);
map.setMultiTouchControls(true);
int size = 60;
Bitmap bitmap = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.FILL);
paint.setAntiAlias(true);
canvas.drawCircle(size / 2f, size / 2f, size / 2.5f, paint);
mLocationOverlay = new MyLocationNewOverlay(new GpsMyLocationProvider(this), map);
mLocationOverlay.enableMyLocation();
mLocationOverlay.enableFollowLocation(); // This makes the map follow the user
mLocationOverlay.setDrawAccuracyEnabled(true); // Shows the blue circle accuracy
mLocationOverlay.setPersonIcon(bitmap);
mLocationOverlay.setDirectionIcon(bitmap);
map.getOverlays().add(mLocationOverlay);
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
locationListener = location -> {
double lat = location.getLatitude();
double lon = location.getLongitude();
GeoPoint userPoint = new GeoPoint(lat, lon);
// 2. Only zoom and snap the first time location is found
// This prevents the map from "jumping" while the user is trying to look around
if (!hasCenteredOnce) {
map.getController().setCenter(userPoint);
map.getController().setZoom(17.0);
map.getController().animateTo(userPoint);
hasCenteredOnce = true;
}
};
}
@Override
protected void onResume() {
super.onResume();
map.onResume();
mLocationOverlay.enableMyLocation();
mLocationOverlay.enableFollowLocation();
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED) {
try {
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
2000,
2,
locationListener);
} catch (SecurityException e) {
e.printStackTrace();
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79900408/im-trying-to-zoom-in-on-the-users-location-but-it-doesnt-work[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия