+2

Đưa sơ đồ của 1 địa điểm lên google map trong android

Giới thiệu

Từ trước tới giờ, chắc mọi người cũng đã quá quen thuộc với việc tìm kiếm đường đi, và địa điểm trên google map. Nhưng có lẽ vẫn chưa nhiều người biết được rằng chúng ta có thể đưa được một hình ảnh sơ đồ của một địa điểm bất kì nào đó lên bản đồ thế giới để giúp cho việc sử dụng bản đồ được trực quan và sinh động hơn rất nhiều.

Và hôm nay, mình sẽ hướng dẫn các bạn làm được điều kì diệu này bằng cách sử dụng Ground OverLays trong android.

Trước hết, phải nói qua để mọi người chuẩn bị trước tinh thần. Rằng bởi vì điều này rất kì diệu nên cách thực hiện nó cực kỳ...đơn giản 😃 Cụ thể:

  • Chúng ta cần chuẩn bị một bức hình thật chính xác về địa điểm mà chúng ta sẽ đặt lên bản đồ
  • Sau đó, chúng ta sẽ tạo ra 1 đối tượng BitmapDescriptor như sau: BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromResource(R.drawable .picture_diagram);
  • Tiếp tục, ta cần giới hạn phạm vi cho bức ảnh bằng 2 cách
  1. Xác định vị trí đặt tâm bức ảnh, sau đó xác định tỷ lệ về chiều dài, rộng của bức ảnh với sơ đồ. Và sử dụng các thông số này để tạo ra 1 đối tượng GroundOverlayOptions:

    LatLng AEON = new LatLng(21.027498, 105.899202);

    GroundOverlayOptions aeonLocation = new GroundOverlayOptions() .image(bitmapDescriptor).position(AEON, 8600f, 6500f);

  2. Chúng ta sẽ xác định 2 điểm Tây Nam và Đông Bắc của địa điểm này trên sơ đồ để đính 2 góc tương ứng của bức ảnh lên qua đối tượng LatLngBounds và cũng sẽ tạo ra 1 đối tượng GroundOverlayOptions từ đây

    LatLngBounds aeonBounds = new LatLngBounds( new LatLng(21.025933, 105.896914), new LatLng(21.028660, 105.901372));

    GroundOverlayOptions aeonLocation = new GroundOverlayOptions().image(bitmapDescriptor).positionFromBounds(aeonBounds) .bearing(Constants.GROUND_BEARING);

  • Bước cuối cùng, chúng ta chỉ cần add đối tượng GroundOverlayOptions lên bản đồ và đồng thời sinh ra đối tượng GroundOverlay

    GroundOverlay imageOverlay = mMap.addGroundOverlay(goo); mMap.addMarker(new MarkerOptions().position(mAeon).title("Trung tâm thương mại AEON"));

Vậy là chúng ta đã hoàn thành xong 1 tác phẩm nghệ thuật trên google map trong android chỉ với vài bước không quá phức tạp. Các bạn có thể tìm hiểu sâu hơn về phần này vì còn rất nhiều những thứ thú vị mà mình chưa kịp đề cập đến.

Còn bây giờ thì xin chào tạm biệt và hẹn gặp lại trong những tác phẩm nghệ thuật lần sau 😃)


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí