public class MapsActivity extends AppCompatActivity implements LocationListener {
GoogleMap map;
private boolean flag = true;
private ProgressDialog mainDialog;
private MarkerOptions mp; ///my point
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
mainDialog = ProgressDialog.show(this, "Wait a bit", "...", true);
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
mainDialog.dismiss();
Toast.makeText(getApplicationContext(), "We are not allow to take your current location.", Toast.LENGTH_LONG).show();
return;
}
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
}
@Override
public void onLocationChanged(Location location) {
final LatLng MOUNTAIN_VIEW = new LatLng(location.getLatitude(), location.getLongitude());
if (flag && location != null) {
map.clear();
mp = new MarkerOptions();
mp.position(new LatLng(location.getLatitude(), location.getLongitude()));
mp.title("my position");
map.addMarker(mp);
// map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(location.getLatitude(), location.getLongitude()), 10));
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(MOUNTAIN_VIEW) // Sets the center of the map to Mountain View
.zoom(10) // Sets the zoom
.bearing(90) // Sets the orientation of the camera to east
.tilt(30) // Sets the tilt of the camera to 30 degrees
.build(); // Creates a CameraPosition from the builder
map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
mainDialog.dismiss();
new getMosque().execute(new LatLng(location.getLatitude(), location.getLongitude()));
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_map, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
case R.id.action_refresh:
new getMosque().execute(mp.getPosition());
break;
}
return true;
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
class getMosque extends AsyncTask {
double x, y;
String name;
private ProgressDialog dialog;
private LatLng myPoint;
@Override
protected void onPreExecute() {
super.onPreExecute();
dialog = new ProgressDialog(MapsActivity.this);
dialog.setTitle("Please Wait");
dialog.show();
}
@TargetApi(Build.VERSION_CODES.KITKAT)
@Override
protected LatLng doInBackground(LatLng... params) {
myPoint = params[0];
String s = "https://maps.googleapis.com/maps/api/place/nearbysearch" +
"/json?location=" + myPoint.latitude + "," + myPoint.longitude
+ "&radius=50000&types=mosque&name=ireland" +
"&key=AIzaSyDP_2efAut2LHEHU4xc6_oe-1Yf-x-EKKA";
Log.i("app", s);
try {
URL url = new URL(s);
BufferedReader r = new BufferedReader(new InputStreamReader(((HttpURLConnection) url.openConnection()).getInputStream()));
JsonParser jp = new JsonParser();
JsonElement jsonElement = jp.parse(r);
JsonObject jsonObject = jsonElement.getAsJsonObject();
Log.i("app", "doInBackground: json = " + jsonObject.toString());
JsonArray jsonArray = jsonObject.getAsJsonArray("results");
for (JsonElement element : jsonArray) {
name = element.getAsJsonObject().get("name").getAsString();
if (name.contains("Islamic Cultural Centre of Ireland")) {
x = Double.valueOf(element.getAsJsonObject().get("geometry").getAsJsonObject().get("location").getAsJsonObject().get("lat").getAsString());
//Log.i("app", "doInBackground: x = " + x);
y = Double.valueOf(element.getAsJsonObject().get("geometry").getAsJsonObject().get("location").getAsJsonObject().get("lng").getAsString());
break;
}
}
return new LatLng(x, y);
}
catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
protected void onPostExecute(LatLng latLng) {
super.onPostExecute(latLng);
dialog.dismiss();
MarkerOptions mp = new MarkerOptions();
mp.position(latLng);
mp.title(name);
mp.icon(BitmapDescriptorFactory.fromResource(R.drawable.masjid));
map.addMarker(mp);
flag = false;
if (latLng != null) {
mp.position(latLng);
mp.title(name);
mp.icon(BitmapDescriptorFactory.fromResource(R.drawable.masjid));
map.addMarker(mp);
flag = false;
}
else {
Toast.makeText(getApplicationContext(), "Sorry, but we didn't find any embassy near you.", Toast.LENGTH_LONG).show();
}
}
}
}
< /code>
Это изображение показывает json parse < /p>
Функция для получения к моему текущему местоположению < /p>
Привет, все мой вопрос должен получить интересную точку от моего текущего местоположения. В моем случае я пытаюсь найти мечети рядом с моим нынешним местоположением. Я добавил два изображения, чтобы объяснить, как я пытаюсь получить мечети из моего текущего местоположения. Я могу показать свое текущее местоположение, а также могу показать в мечети, используя (если еще) оператор. Я использую JSON, чтобы получить все мечети, но я могу показать только один. Я хочу показать все мечети рядом со мной от JSON. Пожалуйста, помогите мне разобраться с этой проблемой. Заранее спасибо
Подробнее здесь: https://stackoverflow.com/questions/390 ... ndroid-app
Я хочу показать только мечети рядом с моим текущим приложением Android местоположение ⇐ Android
Форум для тех, кто программирует под Android
1758402455
Anonymous
public class MapsActivity extends AppCompatActivity implements LocationListener {
GoogleMap map;
private boolean flag = true;
private ProgressDialog mainDialog;
private MarkerOptions mp; ///my point
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
mainDialog = ProgressDialog.show(this, "Wait a bit", "...", true);
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
mainDialog.dismiss();
Toast.makeText(getApplicationContext(), "We are not allow to take your current location.", Toast.LENGTH_LONG).show();
return;
}
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
}
@Override
public void onLocationChanged(Location location) {
final LatLng MOUNTAIN_VIEW = new LatLng(location.getLatitude(), location.getLongitude());
if (flag && location != null) {
map.clear();
mp = new MarkerOptions();
mp.position(new LatLng(location.getLatitude(), location.getLongitude()));
mp.title("my position");
map.addMarker(mp);
// map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(location.getLatitude(), location.getLongitude()), 10));
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(MOUNTAIN_VIEW) // Sets the center of the map to Mountain View
.zoom(10) // Sets the zoom
.bearing(90) // Sets the orientation of the camera to east
.tilt(30) // Sets the tilt of the camera to 30 degrees
.build(); // Creates a CameraPosition from the builder
map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
mainDialog.dismiss();
new getMosque().execute(new LatLng(location.getLatitude(), location.getLongitude()));
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_map, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
case R.id.action_refresh:
new getMosque().execute(mp.getPosition());
break;
}
return true;
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
class getMosque extends AsyncTask {
double x, y;
String name;
private ProgressDialog dialog;
private LatLng myPoint;
@Override
protected void onPreExecute() {
super.onPreExecute();
dialog = new ProgressDialog(MapsActivity.this);
dialog.setTitle("Please Wait");
dialog.show();
}
@TargetApi(Build.VERSION_CODES.KITKAT)
@Override
protected LatLng doInBackground(LatLng... params) {
myPoint = params[0];
String s = "https://maps.googleapis.com/maps/api/place/nearbysearch" +
"/json?location=" + myPoint.latitude + "," + myPoint.longitude
+ "&radius=50000&types=mosque&name=ireland" +
"&key=AIzaSyDP_2efAut2LHEHU4xc6_oe-1Yf-x-EKKA";
Log.i("app", s);
try {
URL url = new URL(s);
BufferedReader r = new BufferedReader(new InputStreamReader(((HttpURLConnection) url.openConnection()).getInputStream()));
JsonParser jp = new JsonParser();
JsonElement jsonElement = jp.parse(r);
JsonObject jsonObject = jsonElement.getAsJsonObject();
Log.i("app", "doInBackground: json = " + jsonObject.toString());
JsonArray jsonArray = jsonObject.getAsJsonArray("results");
for (JsonElement element : jsonArray) {
name = element.getAsJsonObject().get("name").getAsString();
if (name.contains("Islamic Cultural Centre of Ireland")) {
x = Double.valueOf(element.getAsJsonObject().get("geometry").getAsJsonObject().get("location").getAsJsonObject().get("lat").getAsString());
//Log.i("app", "doInBackground: x = " + x);
y = Double.valueOf(element.getAsJsonObject().get("geometry").getAsJsonObject().get("location").getAsJsonObject().get("lng").getAsString());
break;
}
}
return new LatLng(x, y);
}
catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
protected void onPostExecute(LatLng latLng) {
super.onPostExecute(latLng);
dialog.dismiss();
MarkerOptions mp = new MarkerOptions();
mp.position(latLng);
mp.title(name);
mp.icon(BitmapDescriptorFactory.fromResource(R.drawable.masjid));
map.addMarker(mp);
flag = false;
if (latLng != null) {
mp.position(latLng);
mp.title(name);
mp.icon(BitmapDescriptorFactory.fromResource(R.drawable.masjid));
map.addMarker(mp);
flag = false;
}
else {
Toast.makeText(getApplicationContext(), "Sorry, but we didn't find any embassy near you.", Toast.LENGTH_LONG).show();
}
}
}
}
< /code>
Это изображение показывает json parse < /p>
Функция для получения к моему текущему местоположению < /p>
Привет, все мой вопрос должен получить интересную точку от моего текущего местоположения. В моем случае я пытаюсь найти мечети рядом с моим нынешним местоположением. Я добавил два изображения, чтобы объяснить, как я пытаюсь получить мечети из моего текущего местоположения. Я могу показать свое текущее местоположение, а также могу показать в мечети, используя (если еще) оператор. Я использую JSON, чтобы получить все мечети, но я могу показать только один. Я хочу показать все мечети рядом со мной от JSON. Пожалуйста, помогите мне разобраться с этой проблемой. Заранее спасибо
Подробнее здесь: [url]https://stackoverflow.com/questions/39014626/i-want-to-show-only-mosques-near-to-my-current-location-android-app[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия