Как я могу показать разные маркеры на карте? - PullRequest
1 голос
/ 16 ноября 2010

Я отображаю маркеры на карте. Я не уверен, как я могу указать другой ресурс для разных маркеров?

Я хотел бы показать зеленую булавку, если расстояние между точками <50 и т. Д. И т. Д. </p>

pin = getResources().getDrawable(R.drawable.pushpin);
        itemizedOverlay = new MyItemizedOverlay(pin, mapView);

        for (Record element : list) {
            GeoPoint point;
            OverlayItem overlayItem;

            double lat = Double.parseDouble(element.getLatitude());
            double lng = Double.parseDouble(element.getLongitude());
            double locationDistance = Double.parseDouble(element.getLocationDist());

            geoPoint.add(new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6)));
            listOfOverlays = mapView.getOverlays();
            point = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
            Log.i("deep", "deep    " + point);

            overlayItem = new OverlayItem(point, "", element.getTitle());
            if(locationDistance < 50){
                //green
            }
            else if(locationDistance > 50 && locationDistance < 100){
                //yellow
            }
            else if(locationDistance > 100 && locationDistance < 150){
                //blue
            }

Ответы [ 3 ]

4 голосов
/ 17 ноября 2010

Мне удалось пользователю setMarker (). Смотрите ответ № 3:

Маркеры с разными именами на карте Google Android

3 голосов
/ 09 ноября 2012

Я нашел решение для метода setMarker для правильной работы:

Drawable drawable = getResources().getDrawable(R.drawable....);  
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());  
overlayItem.setMarker(drawable); 
1 голос
/ 16 ноября 2010

Шаг # 1: Создайте свой собственный подкласс из OverlayItem

Шаг # 2: Переопределите getMarker() и верните нужное изображение

Вот пример проекта демонстрирует это.

...