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. Địa điểm yêu thích bao gồm công viên, trường học, toà nhà chính phủ và khác.
Ngoài ra, địa điểm yêu thích doanh nghiệp xuất hiện theo mặc định trên bản đồ khi loại bản đồ là
normal
. Địa điểm yêu thích là 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 lợi ích khác. Địa điểm yêu thích là doanh nghiệp trên bản đồ trong nhà (sơ đồ tầng) chỉ xuất hiện trên
bản đồ chế độ lite.
POI tương ứng với Mã địa điểm, như được xác định trong SDK Địa điểm 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 nơi như đài phun nước thường không phải là địa điểm yêu thích (trừ phi đó là địa điểm quốc gia hoặc có ý nghĩa lịch sử).
Theo dõi sự kiện nhấp chuột trên đị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 địa điểm yêu thích, bạn có thể sử dụng
OnPoiClickListener
như trong mã sau
mẫu:
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(); } }
Theo mặc định, địa điểm yêu thích sẽ xuất hiện trên bản đồ, nhưng không có giao diện người dùng mặc định khi nhấp chuột. Tức là API không tự động hiển thị cửa sổ thông tin hay bất kỳ 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 giá trị
OnPoiClickListener
trên bản đồ bởi
đang 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 một
OnPoiClick(PointOfInterest)
sự kiện
cho biết địa điểm yêu thích (POI) mà người dùng đã nhấp vào. Chiến lược phát hành đĩa đơn
PointOfInterest
chứa toạ độ vĩ độ/kinh độ,
mã địa điểm và tên của địa điểm ưa thích.
Ngăn địa điểm yêu thích hiển thị trên bản đồ
Bạn có thể ẩn địa điểm yêu thích (POI) bằng cách áp dụng kiểu tuỳ chỉnh cho tất cả địa điểm yêu thích hoặc cho các danh mục địa điểm yêu thích cụ thể.
Nội dung khai báo kiểu JSON sau đây sẽ ẩn tất 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, tệp JSON sau đây giúp đơn giản hoá việc hiển thị tất cả danh mục trong số POI:
[
{
"featureType": "poi",
"stylers": [
{ "visibility": "simplified" }
]
}
]
Để biết mã Java và thông tin chi tiết khác, hãy xem hướng dẫn về ẩn đối tượng trên bản đồ bằng cách định kiểu.