Pertanyaan Beberapa baris atau garis putus di .snippet (google maps apiv2)


Saya sedang mengembangkan di google maps APIv2. Masalah yang saya hadapi sekarang adalah saya hanya dapat menambahkan satu baris kata di jendela info / snippet. Tetapi output yang saya inginkan dapat ditampilkan dalam bentuk garis putus seperti contoh di bawah ini. Jadi adakah metode yang mungkin untuk menyelesaikannya?

Contoh:

Koordinat: 03.05085, 101.70506

Batas Kecepatan: 80 km / jam

public class MainActivity extends FragmentActivity {
  static final LatLng SgBesi = new LatLng(03.05085, 101.76022);
  static final LatLng JB = new LatLng(1.48322, 103.69065);
  private GoogleMap map;


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

    map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
            .getMap();

    map.addMarker(new MarkerOptions().position(SgBesi)
        .title("KM D7.7 Sungai Besi")               //name
        .snippet("Coordinate: 03.05085, 101.70506"));   //description

    map.addMarker(new MarkerOptions().position(JB)
        .title("test") 
        .snippet("Hey, how are you?")); 

       // .icon(BitmapDescriptorFactory  //set icon
       //     .fromResource(R.drawable.ic_launcher)));

    // move the camera instantly with a zoom of 15.
    map.moveCamera(CameraUpdateFactory.newLatLngZoom(SgBesi, 15));

    // zoom in, animating the camera.       
    map.animateCamera(CameraUpdateFactory.zoomTo(15), 2000, null);
   }
}

10
2018-06-30 14:35


asal


Jawaban:


Anda harus menggunakan InfoWindowAdapter kustom untuk mengubah tata letak InfoWindow ke desain khusus yang ditentukan menggunakan file tata letak. Pada dasarnya Anda perlu:

  1. Deklarasikan fungsi Anda menggunakan GoogleMap.setInfoWindowAdapter(Yourcustominfowindowadpater)
  2. Punya kelas seperti di bawah ini:

...

class Yourcustominfowindowadpater implements InfoWindowAdapter {
    private final View mymarkerview;

    Yourcustominfowindowadpater() {
        mymarkerview = getLayoutInflater()
            .inflate(R.layout.custominfowindow, null); 
    }

    public View getInfoWindow(Marker marker) {      
        render(marker, mymarkerview);
        return mymarkerview;
    }

    public View getInfoContents(Marker marker) {
       return null;
    }

    private void render(Marker marker, View view) {
       // Add the code to set the required values 
       // for each element in your custominfowindow layout file
    }
}

19
2018-06-30 19:16



Anda harus menggunakan InfoWindowAdapter untuk membuat jendela info khusus. Implementasi default entah bagaimana menghilangkan baris baru dari snippet, yang mungkin dianggap sebagai bug minor.


0
2018-06-30 19:14



Saya ingin menambahkan sesuatu ke @tony, Menurut dokumentasi Anda tidak dapat menambahkan tindakan ke tampilan kustom karena gambar tersebut diambil sebagai gambar dalam waktu berjalan.

Catatan: Jendela info yang digambar bukan tampilan langsung. Pandangannya adalah   ditampilkan sebagai gambar (menggunakan View.draw (Canvas)) pada saat itu   dikembalikan. Ini berarti bahwa setiap perubahan berikutnya pada tampilan tidak akan   dicerminkan oleh jendela info di peta. Untuk memperbarui jendela info   nanti (misalnya, setelah gambar dimuat), panggil showInfoWindow ().   Selanjutnya, jendela info tidak akan menghormati interaktivitas apa pun   khas untuk tampilan normal seperti acara sentuh atau gerakan. Bagaimanapun kamu   dapat mendengarkan acara klik umum di seluruh jendela info sebagai   dijelaskan pada bagian di bawah ini.


0
2017-12-31 09:11