Построение полилиний в Google Map API с помощью SPINNER - PullRequest
0 голосов
/ 06 февраля 2019

Как построить полилинии с помощью счетчика в Android Studio (Google MAP API)?Вот как это работает: всякий раз, когда пользователь нажимает кнопку в счетчике, он строит полилинию на карте Google.Это последнее, что нам нужно, пожалуйста, помогите нам.Я не могу найти ответ, чтобы построить линии, используя счетчик времени.

package com.example.admin.mobiletrafficanalyzer2;

import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

import java.util.ArrayList;
import java.util.List;


public class challmanila extends FragmentActivity implements OnMapReadyCallback {
    Spinner spinner;
    private GoogleMap mMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_challmanila);


        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
        spinner=(Spinner)findViewById(R.id.spinner);

        List<String> list=new ArrayList<String>();
        list.add("12:00AM - 1:00AM");
        list.add("1:01AM - 2:00AM");
        list.add("2:01AM - 3:30AM");
        list.add("3:31AM - 4:30AM");
        list.add("4:31AM - 5:30AM");
        list.add("5:31AM - 6:00AM");
        list.add("6:01AM - 6:15AM");
        list.add("6:16AM - 10:00AM");
        list.add("10:01AM - 12:00PM");
        list.add("12:01PM - 2:30PM");
        list.add("2:31PM - 6:00PM");
        list.add("6:01PM - 9PM");
        list.add("9:01PM - 10:30PM");
        list.add("10:31PM - 12:59PM");

        ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
        arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(arrayAdapter);
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int i, long l) {
                spinner.setSelection(i);
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });

    }
    /**
     * Manipulates the map once available.
     * This callback is triggered when the map is ready to be used.
     * This is where we can add markers or lines, add listeners or move the camera. In this case,
     * we just add a marker near Sydney, Australia.
     * If Google Play services is not installed on the device, the user will be prompted to install
     * it inside the SupportMapFragment. This method will only be triggered once the user has
     * installed Google Play services and returned to the app.
     */

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;

        // Add a marker in Sydney and move the camera
        LatLng challmanila = new LatLng(14.589892, 120.981580);
        mMap.addMarker(new MarkerOptions().position(challmanila).title("Marker in City Hall Manila"));
        float zoomLevel = 16.0f;
        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(challmanila, zoomLevel=16.0f));
    }


}

1 Ответ

0 голосов
/ 07 февраля 2019

Как насчет простого добавления полилинии к карте всякий раз, когда элемент выбран на счетчике?

@Override
public void onItemSelected(AdapterView<?> parent, View view, int i, long l) {
  if(mMap == null) return;

  Polyline polyline1 = mMap.addPolyline(new PolylineOptions()
          .clickable(true)
          .add(
                  new LatLng(-35.016, 143.321),
                  new LatLng(-34.747, 145.592),
                  new LatLng(-34.364, 147.891),
                  new LatLng(-33.501, 150.217),
                  new LatLng(-32.306, 149.248),
                  new LatLng(-32.491, 147.309)));
}

Вы могли бы написать некоторый код для случая, когда mMap = null, что означает, что карта еще не была загружена или произошла ошибка,Так что в этом случае вы хотели бы где-нибудь хранить polylineOptions и отображать его всякий раз, когда карта готова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...