Theo mặc định, các địa điểm yêu thích (POI) sẽ xuất hiện trên bản đồ cơ sở cùng với các biểu tượng tương ứng. POI bao gồm công viên, trường học, toà nhà chính phủ và nhiều địa điểm khác.
Ngoài ra, các điểm đến kinh doanh sẽ xuất hiện theo mặc định trên bản đồ khi loại bản đồ là normal
. POI doanh nghiệp đại diện cho các doanh nghiệp như cửa hàng, nhà hàng, khách sạn và nhiều doanh nghiệp khác. Các địa điểm yêu thích của doanh nghiệp trên bản đồ trong nhà (sơ đồ mặt bằng) chỉ xuất hiện trên bản đồ ở chế độ đơn giản.
POI tương ứng với một Place ID, như được xác định trong Places SDK dành cho Android. Ví dụ: công viên giải trí là địa điểm yêu thích, nhưng những thứ như đài phun nước thường không phải là địa điểm yêu thích (trừ phi chúng có ý nghĩa quốc gia hoặc lịch sử).
Theo dõi các sự kiện nhấp vào trên các địa điểm yêu thích
Nếu muốn phản hồi khi người dùng nhấn vào một POI, bạn có thể dùng OnPoiClickListener
như trong mã mẫu sau:
Kotlin
internal class OnPoiClickDemoActivity : AppCompatActivity(), OnMapReadyCallback, OnPoiClickListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.poi_click_demo) val mapFragment = supportFragmentManager.findFragmentById(R.id.map) as SupportMapFragment mapFragment.getMapAsync(this) } override fun onMapReady(map: GoogleMap) { map.setOnPoiClickListener(this) } override fun onPoiClick(poi: PointOfInterest) { Toast.makeText(this, """Clicked: ${poi.name} Place ID:${poi.placeId} Latitude:${poi.latLng.latitude} Longitude:${poi.latLng.longitude}""", Toast.LENGTH_SHORT ).show() } }
Java
class OnPoiClickDemoActivity extends AppCompatActivity implements OnMapReadyCallback, GoogleMap.OnPoiClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.poi_click_demo); SupportMapFragment mapFragment; mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); mapFragment.getMapAsync(this); } @Override public void onMapReady(GoogleMap map) { map.setOnPoiClickListener(this); } @Override public void onPoiClick(PointOfInterest poi) { Toast.makeText(this, "Clicked: " + poi.name + "\nPlace ID:" + poi.placeId + "\nLatitude:" + poi.latLng.latitude + " Longitude:" + poi.latLng.longitude, Toast.LENGTH_SHORT).show(); } }
Các địa điểm xuất hiện trên bản đồ theo mặc định, nhưng không có giao diện người dùng mặc định khi nhấp vào. Tức là API không tự động hiển thị cửa sổ thông tin hoặc bất kỳ giao diện người dùng nào khác khi người dùng nhấn vào một địa điểm yêu thích.
Như ví dụ trên cho thấy, bạn đặt OnPoiClickListener
trên bản đồ bằng cách gọi GoogleMap.setOnPoiClickListener(OnPoiClickListener)
.
Khi người dùng nhấp (nhấn) vào một địa điểm yêu thích, ứng dụng của bạn sẽ nhận được sự kiện OnPoiClick(PointOfInterest)
cho biết địa điểm yêu thích mà người dùng đã nhấp vào. PointOfInterest
chứa toạ độ vĩ độ/kinh độ, mã địa điểm và tên của địa điểm yêu thích.
Ngừng hiển thị các địa điểm yêu thích trên bản đồ
Bạn có thể ẩn các địa điểm yêu thích (POI) bằng cách áp dụng kiểu tuỳ chỉnh cho tất cả POI hoặc cho các danh mục POI cụ thể.
Khai báo kiểu JSON sau đây sẽ ẩn tất cả các địa điểm yêu thích của doanh nghiệp trên bản đồ:
[
{
"featureType": "poi.business",
"stylers": [
{ "visibility": "off" }
]
}
]
Một ví dụ khác là JSON sau đây giúp đơn giản hoá việc hiển thị tất cả danh mục địa điểm yêu thích:
[
{
"featureType": "poi",
"stylers": [
{ "visibility": "simplified" }
]
}
]
Để biết mã Java và các thông tin khác, hãy xem hướng dẫn về cách ẩn các đối tượng trên bản đồ bằng cách tạo kiểu.