Google Maps đang cho ra mắt bộ luật Google My Maps với không ít tiện ích thú vị cung cấp tối đa cho những người dùng yêu mến khám phá bản đồ
Mới đây nhất Google Mapsđã cho reviews bộ công cụGoogle My Mapsvới không hề ít tiện ích thú vị hỗ trợ tối đa cho người dùng ngưỡng mộ khám phá phiên bản đồ. Một trong số đó là công dụng vẽ lại vị trí theo ý hy vọng trực tiếp trên phiên bản đồ cũng tương tự chỉnh sửa chúng.

Bạn đang xem: Vẽ đường đi trên google map android

Ở nội dung bài viết này MSmobile vẫn hướng dẫn chúng ta vẽ hình lên Google maps trên máy tính và điện thoại với My Maps.

1. Vẽ hình trên bản đồ Google Maps bởi PC

Bước 1: Đầu tiên chúng ta truy cập vào trangtạo phiên bản đồ cá nhân My Maps. Sau đó, chúng ta nhấn nútTạo phiên bản đồ mới.

Bước 2:Nhấn nút thêm đường kẻ bên trên thanh vẻ ngoài để bước đầu vẽ.

Bước 3:Tiếp theo hãy vẽ hình theo ý thích của công ty để khu vực (điểm đầu cùng điểm cuối phải trùng nhau) để tạo nên một khu vực vực. Giới hạn của quần thể vực:

- lên tới mức 10.000 dòng, hình dạng hoặc địa điểm.

- lên đến mức 50.000 điểm tổng (theo con đường và hình).

- lên tới mức 20.000 ô dữ liệu.

Bước 4: sau khoản thời gian vẽ xong, các bạn đặt thương hiệu cho khu vực vừa vẽ tiếp đến nhấn nútLưu.

Bước 5:Sau khi lưu lại, các chúng ta cũng có thể chỉnh sửa bằng phương pháp nhấn vào quanh vùng vừa vẽ. Có một số trong những công ráng các bạn cũng có thể sử dụng như xóa hình, chèn thêm hình ảnh khu vực hoặc thay đổi màu. Chúng ta cũng vẫn được cung cấp diện tích của quanh vùng bạn vừa vẽ vào bảng.

2. Vẽ hình trên bản đồ Google My Maps bằng điện thoại

Đầu tiên các bạn cần tải phầm mềm Google My Maps trên năng lượng điện thoại. Hiện áp dụng này mới chỉ có sẵn trên game android mà chưa cung cấp nền tảng i
OS.

- sở hữu Google Maps trên android ở đây

- download Google Maps bên trên i
OS làm việc đây

Các bước thực hiện ví dụ và rất dễ dàng và đơn giản như sau:

Bước 1: sau khoản thời gian đã tải và cài đặt, chúng ta hãy mở vận dụng lên cùng nhấn nútTạo bản đồ.

Bước 2:Ở góc dưới cùng bên yêu cầu nhấn chọnAdd => Add a new line.

Bước 3:Nhấn giữ và vẽ một cạnh của khu vực theo ý bạn có nhu cầu và liên tục nhấnAdd.

Bước 4:Lặp lại quá trình này cho đến khi vẽ được bạn dạng đồ như ý muốn hãy nhấn nútDone. Để vẽ lại thừa nhận nútBackspace.

Mở đầu

Nghe mang đến Gmap chắc chắn hẳn người nào cũng quen thuộc và cũng đã từng sử dụng vài ba lần nhằm tìm kiếm địa điểm và mặt đường đi. Hôm nay mình thích chia sẻ với các bạn cách áp dụng gmap api .

Ứng dụng

Hiện nay việc đưa map vào trong áp dụng là vô cùng thông dụng , sử dụng maps trong app giúp cho việc tế bào tả địa điểm một giải pháp trực quan cùng rất thuận lợi , đôi khi xoay xung quanh map hoàn toàn có thể có cực kỳ nhiều tính năng các chúng ta có thể phát triển làm tăng độ hiệu dụng của tiện ích : kiếm tìm đường, kiếm tìm kiếm xung quanh, .... Để ứng dụng được gmap vào app chúng ta cần xử lí một số bước sau.

Tạo 1 project map

Bạn bảo vệ Android SDK của chính mình đã được setup google playservice :
*
Trong apk studio các bạn creat new project và chọn google maps Activity
*

Sau kia 1 project bắt đầu được tạo, các bạn sẽ thấy xuất hiện file google_maps_api.xml trong value folder. Trong số đó có đoạn

YOUR_KEY_HEREYOUR_KEY_HERE : đó là vị trí chúng ta điền key mang được từ bước 2.Tại bước này khi run project bạn sẽ thấy như sau :

*

Lấy Google Maps API key:

Như khuyên bảo trong file google_maps_api.xml sau thời điểm tạo cũng có ghi rất đầy đủ cách get 1 gmap api key. Trong khuôn khổ bài viết mình ko viết cụ thể . Sau khi lấy được api key bạn sửa chữa vào "YOUR_KEY_HERE" trong cách 1 và công dụng bạn dấn được.

*
Như vậy các bạn đã hiển thị được bản đồ google vào app của bản thân mình để sử dụng. Có 1 số chăm chú như sau.

Trong tệp tin json chưa maps : chúng ta chú ý sẽ sở hữu "android:name="com.google.android.gms.maps.Support
Map
Fragment" đây là đoạn code đặc biệt quan trọng để hiển thị maps lên view bạn ao ước muốn.

vào Activity, hoặc fragment chứa map để ý cần implements On
Map
Ready
Callbackpublic class Maps
Activity extends Fragment
Activity implements On
Map
Ready
Callback private Google
Map m
Map;
Override protected void on
Create(Bundle saved
Instance
State) super.on
Create(saved
Instance
State); set
Content
View(R.layout.activity_maps); // Obtain the Support
Map
Fragment and get notified when the bản đồ is ready lớn be used. Support
Map
Fragment map
Fragment = (Support
Map
Fragment) get
Support
Fragment
Manager() .find
Fragment
By
Id(R.id.map); map
Fragment.get
Map
Async(this); /** * Manipulates the maps once available. * This callback is triggered when the bản đồ is ready to be used. * This is where we can địa chỉ markers or lines, địa chỉ listeners or move the camera. In this case, * we just địa chỉ cửa hàng a marker near Sydney, Australia. * If Google Play services is not installed on the device, the user will be prompted to install * it inside the Support
Map
Fragment. This method will only be triggered once the user has * installed Google Play services và returned to lớn the app. */
Override public void on
Map
Ready(Google
Map google
Map) m
Map = google
Map; // showroom a marker in Sydney & move the camera Lat
Lng sydney = new Lat
Lng(-34, 151); m
Map.add
Marker(new Marker
Options().position(sydney).title("Marker in Sydney")); m
Map.move
Camera(Camera
Update
Factory.new
Lat
Lng(sydney)); Hàm on
Map
Ready được dùng để làm xử lí thông tin trên maps khi bản đồ đã sẵn sàng. Sau đó là 1 số kích hoạt mình hay sử dụng trên map.

Add Marker bên trên map.

Trong hàm on
Map
Ready ta thêm như sau:

public void on
Map
Ready(Google
Map google
Map) m
Map = google
Map; // địa chỉ a marker in Sydney và move the camera Lat
Lng hanoi = new Lat
Lng(21.0169598, 105.8114176); // chế tạo ra location bao gồm tọa độ lat, long tương xứng m
Map.add
Marker(new Marker
Options().position(hanoi).title("Marker in Ha
Noi")); // phối marker tại điểm được tao ngơi nghỉ trên với câu chữ hiển thị khi click vào vị trí m
Map.move
Camera(Camera
Update
Factory.new
Lat
Lng(hanoi));// move camera cho tới điểm vừa tạo. Ngoài ra chúng ta có thể config trong code hoặc tệp tin json các thông số như :

map:camera
Bearing="112.5" map:camera
Target
Lat="21.0169598" map:camera
Target
Lng="105.8114176" map:camera
Tilt="30" map:camera
Zoom="13" map:map
Type="normal" map:ui
Compass="false" map:ui
Rotate
Gestures="true" map:ui
Scroll
Gestures="true" map:ui
Tilt
Gestures="true" map:ui
Zoom
Controls="true" map:ui
Zoom
Gestures="true"Sau config trên chúng ta được map như sau, chăm chú ở phần góc dưới bên phải đã xuất hiện thêm thanh zoom map.

*

Vẽ đường đi giữa 2 điểm trên map.

Xem thêm: Hướng Dẫn Cách Xem Lượt Follow Trên Instagram Của Người Nổi Tiếng

Với file Maps
Activity.java được khởi tạo ban đầu ta tạo ra thêm 2 file mới như sau :GMap
V2Direction.java

public class GMap
V2Direction { public final static String MODE_DRIVING = "driving"; public final static String MODE_WALKING = "walking"; public GMap
V2Direction() public Document get
Document(Lat
Lng start, Lat
Lng end, String mode) String url = "http://maps.googleapis.com/maps/api/directions/xml?" + "origin=" + start.latitude + "," + start.longitude + "&destination=" + end.latitude + "," + end.longitude + "&sensor=false&units=metric&mode=" + mode; try Http
Client http
Client = new Default
Http
Client(); Http
Context local
Context = new Basic
Http
Context(); Http
Post http
Post = new Http
Post(url); Http
Response response = http
Client.execute(http
Post, local
Context); Input
Stream in = response.get
Entity().get
Content(); Document
Builder builder = Document
Builder
Factory.new
Instance() .new
Document
Builder(); Document doc = builder.parse(in); return doc; catch (Exception e) e.print
Stack
Trace(); return null; public String get
Duration
Text(Document doc) Node
List nl1 = doc.get
Elements
By
Tag
Name("duration"); Node node1 = nl1.item(nl1.get
Length() - 1); Node
List nl2 = node1.get
Child
Nodes(); Node node2 = nl2.item(get
Node
Index(nl2, "text")); Log.i("Duration
Text", node2.get
Text
Content()); return node2.get
Text
Content(); public int get
Duration
Value(Document doc) Node
List nl1 = doc.get
Elements
By
Tag
Name("duration"); Node node1 = nl1.item(nl1.get
Length() - 1); Node
List nl2 = node1.get
Child
Nodes(); Node node2 = nl2.item(get
Node
Index(nl2, "value")); Log.i("Duration
Value", node2.get
Text
Content()); return Integer.parse
Int(node2.get
Text
Content()); public String get
Distance
Text(Document doc) Node
List nl1 = doc.get
Elements
By
Tag
Name("distance"); Node node1 = nl1.item(nl1.get
Length() - 1); Node
List nl2 = node1.get
Child
Nodes(); Node node2 = nl2.item(get
Node
Index(nl2, "text")); Log.i("Distance
Text", node2.get
Text
Content()); return node2.get
Text
Content(); public int get
Distance
Value(Document doc) Node
List nl1 = doc.get
Elements
By
Tag
Name("distance"); Node node1 = nl1.item(nl1.get
Length() - 1); Node
List nl2 = node1.get
Child
Nodes(); Node node2 = nl2.item(get
Node
Index(nl2, "value")); Log.i("Distance
Value", node2.get
Text
Content()); return Integer.parse
Int(node2.get
Text
Content()); public String get
Start
Address(Document doc) Node
List nl1 = doc.get
Elements
By
Tag
Name("start_address"); Node node1 = nl1.item(0); Log.i("Start
Address", node1.get
Text
Content()); return node1.get
Text
Content(); public String get
End
Address(Document doc) Node
List nl1 = doc.get
Elements
By
Tag
Name("end_address"); Node node1 = nl1.item(0); Log.i("Start
Address", node1.get
Text
Content()); return node1.get
Text
Content(); public String get
Copy
Rights(Document doc) Node
List nl1 = doc.get
Elements
By
Tag
Rights", node1.get
Text
Content()); return node1.get
Text
Content(); public Array
List get
Direction(Document doc) { Node
List nl1, nl2, nl3; Array
List list
Geopoints = new Array
List(); nl1 = doc.get
Elements
By
Tag
Name("step"); if (nl1.get
Length() > 0) for (int i = 0; i arr = decode
Poly(lat
Node.get
Text
Content()); for (int j = 0; j decode
Poly(String encoded) Array
List poly = new Array
List(); int index = 0, len = encoded.length(); int lat = 0, lng = 0; while (index = 0x20); int dlat = ((result và 1) != 0 ? ~(result >> 1) : (result >> 1)); lat += dlat; shift = 0; result = 0; bởi vì = (b và 0x1f) = 0x20); int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1)); lng += dlng; Lat
Lng position = new Lat
Lng((double) lat / 1E5, (double) lng / 1E5); poly.add(position); return poly; Get
Directions
Async
Task.java . để ý trong file đựng : "private Weak
Reference activity" đề xuất để rất có thể sử dụng mang lại nhiều màn hình hiển thị ta có thể tạo 1 base activity, base fragment nhằm sử dụng.

public class Get
Directions
Async
Task extends Async
Task, Object, Array
List> { public static final String USER_CURRENT_LAT = "user_current_lat"; public static final String USER_CURRENT_LONG = "user_current_long"; public static final String DESTINATION_LAT = "destination_lat"; public static final String DESTINATION_LONG = "destination_long"; public static final String DIRECTIONS_MODE = "directions_mode"; private Weak
Reference activity; private Exception exception; // private Progress
Dialog progress
Dialog; public Get
Directions
Async
Task(Maps
Activity activity) super(); this.activity = new Weak
Reference(activity); public void on
Pre
Execute() // progress
Dialog = new Progress
Dialog(activity.get().get
Activity()); // progress
Dialog.set
Message("Calculating directions"); // progress
Dialog.show();