12/08/2018, 14:06

Giả lập gps với xcode

Nếu bạn đã từng làm các app về tìm đường và chỉ đường, chắc hẳn không thể nào vừa code vừa thuê 1 chiếc uber để debug. Do đó xcode đã cải tiến khá nhiều cho phép sử dụng giả lập GPS một cách ổn định và dễ dàng hơn. GPX file: Xcode sử dụng 1 loại file chuẩn để giả lập về location đó là gpx, về ...

Nếu bạn đã từng làm các app về tìm đường và chỉ đường, chắc hẳn không thể nào vừa code vừa thuê 1 chiếc uber để debug. Do đó xcode đã cải tiến khá nhiều cho phép sử dụng giả lập GPS một cách ổn định và dễ dàng hơn.

  1. GPX file: Xcode sử dụng 1 loại file chuẩn để giả lập về location đó là gpx, về bản chất nó là 1 file xml, trong đó có nội dung về tên địa điểm, toạ độ và thời gian. Xcode sử dung thẻ <wpt> nên khi dùng tool sinh ra gpx file bạn nó chọn tool tương thích. Dưới đây là một ví dụ về file gpx
<?xml version="1.0"?>
<gpx version="1.1" creator="Xcode">
    <wpt lat="21.0096041" lon="105.7888507">
        <name>vị trí sô 1</name>
        <time>2016-10-28T13:00:55Z</time>
    </wpt>
    <wpt lat="21.0138243" lon="105.7854004">
        <name>vị trí số 2</name>
        <time>2016-10-28T13:30:09Z</time>
    </wpt>
</gpx>

Bạn để ý file gpx trên thấy hoàn toàn không có tham số về vận tốc hoặc quãng đường. Thế làm thế nào để điều chỉnh được các tham số này...

Chẳng có cách nào khác bằng cách tự phải tính thôi: vận tốc tính bằng quãng đường và thời gian di chuyển giữa 2 điểm mà, do đó vận tốc nhanh hay chậm sẽ phụ thuộc vào khoảng cách giữa 2 thời điểm bạn ở 2 vị trí đó (thẻ time)

Ví dụ như ở file gpx trên thì khoảng cách giữa vị trí số 1 và vị trí số 2 sẽ là 600m (tính dựa trên 2 toạ độ lat & lon), thời gian là 30s -> vận tốc sẽ là 600m/30s = 20m/s Ngoài ra bạn có thể thêm vào nhiều vị trí.

Chú ý là giả lập di chuyển theo đường thẳng nhé, nên hãy chọn sao cho hợp lý.

  1. Sử dụng GPX file Tạo 1 project mới. Vào New File và chọn GPX File, đặt tên file là HaNoi

Screen Shot 2016-10-28 at 2.47.19 PM.png

Sau đó copy nội dụng file gpx ở trên

Screen Shot 2016-10-28 at 2.48.45 PM.png

Cần phải config project để luôn là enable location (default là enable) Product -> Scheme -> Edit Scheme -> Options -> Allow Location Simulator -> enable

Screen Shot 2016-10-28 at 2.51.05 PM.png

Bạn click vào Default Location sẽ thấy có file HaNoi sinh ra. Bên cạnh đó có nhiều file default do xcode tạo sẵn.

Screen Shot 2016-10-28 at 2.53.24 PM.png

Bây giờ hãy run project, ở khu vực Debug Area bạn sẽ thấy có hình mũi tên, click vào đó để start giả lập di chuyển

Chú ý là cả điện thoại và simulator đều có thể debug đc

Screen Shot 2016-10-28 at 2.57.40 PM.png

Để quan sát rõ hơn về di chuyển, bạn có thể dùng CoreLocation để log ra current location update.

Thank you!

0