Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
ilfar_sif
0 / 0 / 0
Регистрация: 19.01.2015
Сообщений: 8
#1

Добавление маркеров на карту Google Maps API v2 - Программирование Android

07.05.2015, 21:34. Просмотров 675. Ответов 1
Метки нет (Все метки)

Доброго времени суток. Есть карта, маркеры на которую ставятся путем загрузки значений местоположения из базы данных. Есть два класса: один - для загрузки карты(MapsActivity), а другой(SuggestionAdapter) для парсинга json ответа от get-запроса.
Внутри класса SuggestionAdapter есть цикл, который при каждом повторении передает значении долготы и широты.
Как, используя координаты из цикла, мне вывести маркеры на карту?
Вот код:
класс MapsActivity:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package ilfarsif.myapp_places;
 
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
 
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
 
public class MapsActivity2 extends FragmentActivity {
 
    private GoogleMap mMap; // Might be null if Google Play services APK is not available.
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps_activity2);
        setUpMapIfNeeded();
    }
 
    @Override
    protected void onResume() {
        super.onResume();
        setUpMapIfNeeded();
    }
 
    /**
     * Sets up the map if it is possible to do so (i.e., the Google Play services APK is correctly
     * installed) and the map has not already been instantiated.. This will ensure that we only ever
     * call {@link #setUpMap()} once when {@link #mMap} is not null.
     * <p/>
     * If it isn't installed {@link SupportMapFragment} (and
     * {@link com.google.android.gms.maps.MapView MapView}) will show a prompt for the user to
     * install/update the Google Play services APK on their device.
     * <p/>
     * A user can return to this FragmentActivity after following the prompt and correctly
     * installing/updating/enabling the Google Play services. Since the FragmentActivity may not
     * have been completely destroyed during this process (it is likely that it would only be
     * stopped or paused), {@link #onCreate(Bundle)} may not be called again so we should call this
     * method in {@link #onResume()} to guarantee that it will be called.
     */
    private void setUpMapIfNeeded() {
        // Do a null check to confirm that we have not already instantiated the map.
        if (mMap == null) {
            // Try to obtain the map from the SupportMapFragment.
            mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
                    .getMap();
            // Check if we were successful in obtaining the map.
            if (mMap != null) {
                setUpMap();
            }
        }
    }
 
    /**
     * This is where we can add markers or lines, add listeners or move the camera. In this case, we
     * just add a marker near Africa.
     * <p/>
     * This should only be called once and when we are sure that {@link #mMap} is not null.
     */
    private void setUpMap() {
        //mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker"));
        String arrayUrl = "id[]=1&id[]=2&id[]=3&id[]=4";
        SuggestionAdapter sa = new SuggestionAdapter();
        sa.execute(arrayUrl);
 
    }
}
класс SuggestionAdapter:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
package ilfarsif.myapp_places;
 
import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.Filter;
 
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
 
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
 
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
 
 
    public class SuggestionAdapter extends AsyncTask<String, Void, String> {
 
        public static String LOG_TAG = "my_log";
    HttpURLConnection urlConnection = null;
    BufferedReader reader = null;
    String resultJson = "";
 
    @Override
    protected String doInBackground(String... Params) {
        // получаем данные с внешнего ресурса
 
        try {
            String strUrl = "";
            if( Params.length > 0 ){
                strUrl = Params[0];
            }
 
            URL url = new URL("http://www.p89742wj.bget.ru/test3.php?"+ strUrl);//id[]=1&id[]=2&id[]=3
 
            urlConnection = (HttpURLConnection) url.openConnection();
            urlConnection.setRequestMethod("GET");
            urlConnection.connect();
 
            InputStream inputStream = urlConnection.getInputStream();
            StringBuffer buffer = new StringBuffer();
 
            reader = new BufferedReader(new InputStreamReader(inputStream));
 
            String line;
            while ((line = reader.readLine()) != null) {
                buffer.append(line);
            }
 
            resultJson = buffer.toString();
 
        } catch (Exception e) {
            e.printStackTrace();
        }
        return resultJson;
    }
 
    @Override
    protected void onPostExecute(String strJson) {
        super.onPostExecute(strJson);
        // выводим целиком полученную json-строку
        Log.d(LOG_TAG, strJson);
 
        JSONObject dataJsonObj = null;
        String idByMagName = "";
 
        try {
 
            dataJsonObj = new JSONObject(strJson);
 
            //--
            JSONObject mag  = dataJsonObj.getJSONObject("idMag");
            idByMagName = mag.getString("idd");
            Log.d(LOG_TAG, "Дешевый Магазин: " + idByMagName);
            //--
            JSONArray products  = dataJsonObj.getJSONArray("Mag");
            for (int i = 0; i < products.length(); i++) {
                JSONObject obj = products.getJSONObject(i);
                String Id = obj.getString("id_mag");
                String Adress = obj.getString("adress");
                //String LL = obj.getString("latlng");
                String Lat=obj.getString("lat");
                String Lng=obj.getString("lng");
 
                double latitude = Double.parseDouble(Lat);//String LL ConvertTO LLDouble
                double longitude = Double.parseDouble(Lng);
                int iddd = Integer.parseInt(Id);
                int dii = Integer.parseInt(idByMagName);
 
                Log.d(LOG_TAG, "id: " + Id);
                Log.d(LOG_TAG, "adress: " + Adress);
                Log.d(LOG_TAG, "lat: " + Lat);
                Log.d(LOG_TAG, "lang: " + Lng);
 
               /* LatLng latLng_new = new LatLng(latitude, longitude);
                mMap.addMarker(new MarkerOptions().position(latLng_new).title("Marker 1"));*/
 
 
 
 
 
 
 
 
            }
 
 
 
 
 
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2015, 21:34     Добавление маркеров на карту Google Maps API v2
Посмотрите здесь:
Android Добавление маркеров на карту Google Maps API v2
Google Maps API v2 добавление своих маркеров и фото к ним Android
Google maps API v2 Android
Использование Google Maps API V2 Android
Android Google Maps API v2+ SlidingMenu
Google Maps Api Key Android
Google Maps API v2 Оповещание Android
Android Google Maps/Drive API for Android
Google Maps API v2. Не отображается карта Android
Ошибка при работе с Google Maps API v2 Android
Android Лимит на запросы в Google Maps Directions API
Android Google maps api - Построить маршрут из одной точки к другой

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dajver
408 / 272 / 18
Регистрация: 18.09.2010
Сообщений: 1,107
07.05.2015, 23:02     Добавление маркеров на карту Google Maps API v2 #2
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
for (int i = 0; i < products.length(); i++) {
                JSONObject obj = products.getJSONObject(i);
                String Id = obj.getString("id_mag");
                String Adress = obj.getString("adress");
                //String LL = obj.getString("latlng");
                String Lat=obj.getString("lat");
                String Lng=obj.getString("lng");
 
                double latitude = Double.parseDouble(Lat);//String LL ConvertTO LLDouble
                double longitude = Double.parseDouble(Lng);
                int iddd = Integer.parseInt(Id);
                int dii = Integer.parseInt(idByMagName);
 
              Marker melbourne = mMap.addMarker(new MarkerOptions()
                          .position(new LatLng(latitude , longitude))
                          .title("Melbourne")
                          .snippet("Population: 4,137,400"));
            }
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru