בדוגמה הזו מוסבר איך להאזין לאירועים מסוימים במפה ולטפל בהם.
למידע נוסף, עיינו במאמרי העזרה.
שנתחיל?
לפני שתוכלו לנסות את הקוד לדוגמה, עליכם להגדיר את סביבת הפיתוח שלכם. מידע נוסף זמין במאמר דוגמאות קוד של מפות Google ל-Android.
הצגת הקוד
Kotlin
class EventsDemoActivity : AppCompatActivity(), OnMapClickListener, OnMapLongClickListener, OnCameraIdleListener, OnMapReadyCallback { private lateinit var tapTextView: TextView private lateinit var cameraTextView: TextView private lateinit var map: GoogleMap override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.events_demo) tapTextView = findViewById(R.id.tap_text) cameraTextView = findViewById(R.id.camera_text) val mapFragment = supportFragmentManager.findFragmentById(R.id.map) as SupportMapFragment? mapFragment?.getMapAsync(this) } override fun onMapReady(googleMap: GoogleMap) { // return early if the map was not initialised properly map = googleMap map.setOnMapClickListener(this) map.setOnMapLongClickListener(this) map.setOnCameraIdleListener(this) } override fun onMapClick(point: LatLng) { tapTextView.text = "tapped, point=$point" } override fun onMapLongClick(point: LatLng) { tapTextView.text = "long pressed, point=$point" } override fun onCameraIdle() { if (!::map.isInitialized) return cameraTextView.text = map.cameraPosition.toString() } }
Java
public class EventsDemoActivity extends AppCompatActivity implements OnMapClickListener, OnMapLongClickListener, OnCameraIdleListener, OnMapReadyCallback { private TextView tapTextView; private TextView cameraTextView; private GoogleMap map; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.events_demo); tapTextView = findViewById(R.id.tap_text); cameraTextView = findViewById(R.id.camera_text); SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); mapFragment.getMapAsync(this); } @Override public void onMapReady(GoogleMap map) { this.map = map; this.map.setOnMapClickListener(this); this.map.setOnMapLongClickListener(this); this.map.setOnCameraIdleListener(this); } @Override public void onMapClick(LatLng point) { tapTextView.setText("tapped, point=" + point); } @Override public void onMapLongClick(LatLng point) { tapTextView.setText("long pressed, point=" + point); } @Override public void onCameraIdle() { cameraTextView.setText(map.getCameraPosition().toString()); } }
שכפול והרצה של הדוגמאות
נדרש Git כדי להריץ את הדוגמה הזו באופן מקומי. הפקודה הבאה תשכפל את הדוגמה של Google Apps.
git clone git@github.com:googlemaps-samples/android-samples.git
מייבאים את הפרויקט לדוגמה אל Android Studio:
- ב-Android Studio, בוחרים באפשרות File > חדש > ייבוא פרויקט.
עוברים למיקום שבו שמרתם את המאגר ובוחרים את ספריית הפרויקט. Kotlin או Java:
- Kotlin:
PATH-REPO/android-samples/ApiDemos/kotlin
- Java:
PATH-REPO/android-samples/ApiDemos/java
- Kotlin:
- לוחצים על פתיחה. מערכת Android Studio יוצרת את הפרויקט באמצעות גרסת ה-build של Gradle של Google.
- יוצרים קובץ
secrets.properties
ריק באותה ספרייה שבה נמצא קובץlocal.properties
של הפרויקט. מידע נוסף זמין במאמר הוספת מפתח API לפרויקט. מוסיפים את המחרוזת הבאה אל
secrets.properties
, ומחליפים את YOUR_API_KEY בערך של מפתח ה-API:MAPS_API_KEY=YOUR_API_KEY
- מפעילים את האפליקציה.