Bài viết này, chúng tôi muốn đề cập đến bạn đọc làm thế nào để lấy giá trị GPS vào chương trình ứng dụng của mình. Với giá trị này, ứng dụng của bạn sẽ dễ dàng xác định được vị trí của chiếc điện thoại trên bản đồ thế giới dựa vào giá trị hoành độ (latitude), tung độ (longitude) và cao độ (altitude).
Khi cài đặt Bada SDK thành công, bạn có thể tìm thấy các ứng dụng mẫu có đề cập đến vấn đề location được hỗ trợ trên bada.
Trong bài viết này, chúng tôi chỉ trích chọn một số điểm đặc trưng, làm thế nào để lấy giá trị hoành độ, tung độ và cao độ. Sau đó, đưa giá trị lấy được đó vào google map để xác định vị trí hiện tại trên bản đồ thế giới.
Ví dụ:
Cập nhật vị trí của mình trên bản đồ
Tìm kiếm đường đi và vị trí trên bản đồ
Để sử dụng được GPS, ứng dụng của bạn phải sử dụng lớp
public Osp::Locations::ILocationListener
để lắng nghe sự kiện cập nhật giá trị GPS.
Khai báo đối tượng localtion để lấy giá trị hoành độ, tung độ và cao độ.
// Get Location Osp::Locations::LocationProvider* __pLocProvider; __pLocProvider = new LocationProvider(); __pLocProvider->Construct(LOC_METHOD_GPS); __pLocProvider->RequestLocationUpdates(*this, 5, false);
Phương thức RequestLocationUpdates() sẽ phát sinh sự kiện OnLocationUpdated sau thời gian timeout (ví dụ: 5 giây). Khi sự kiện được phát sinh thì kèm theo đó là object mô tả giá trị location (nếu có)
Tại đây, chúng ta xử lý để lấy giá trị hoành độ và tung độ như sau:
MyForm::OnLocationUpdated (Location &location)
{
double latitude = 0;
double longitude = 0;
const QualifiedCoordinates* pQCoord = location.GetQualifiedCoordinates();
if(pQCoord != null)
{
latitude = pQCoord->GetLatitude();
longitude = pQCoord->GetLongitude();
AppLog("Lat: %f, Long: %f", latitude, longitude);
}
}
Sau khi có được giá trị hoành độ (latitude) và tung độ (longitude), bạn đưa nó vào google map để hiển thị là xong.
Google map cung cấp các API để chúng ta xác định vị trí, tìm đường, tìm địa chỉ và hiển thị vị trí trên bản đồ.
Bạn đọc phải có chút kiến thức cơ bản về cách sử dụng nó hoặc tìm hiểu các bài mẫu (tutorial) để đưa nó vào ứng dụng cho phù hợp.
Chúc bạn thành công!



Hi, I need u r help can u please drop a test mail my email id i.e., divakarlasrinivas@gmail.com
what do you mean? Can you post your problem here?
Hello, i am building GPSMap application (test on SamSung Wave 575). i use Bada IDE 1.2.1 LP3. when i test GPSMap on simulator, it’s successful. But when i test it on target (Wave 575), it didn’t run (although the application was successfully installed). Help me, please!
source code
chào kthangvd
em đang xây dựng ứng dụng GPS trên SamSung Wave 575 sử dụng googlemap. Em sử dung tool Bada IDE 1.2.1 LP3. Em cũng đã tạo tài khoản trên samsung developer và tải file mainifest rồi. Khi em test ứng dụng trên bộ giả lập thì chạy bình thường, nhưng khi cài đặt trên thiết bị đích thì không chạy được (mặc dù IDE đã báo ứng dụng đã cài đặt thành công). Mong kthangvd chỉ giúp cho em
source code
Mình bị lỗi syntax error bắt đầu từ dòng này…
__pLocProvider = new LocationProvider();
__pLocProvider->Construct(LOC_METHOD_GPS);
__pLocProvider->RequestLocationUpdates(*this, 5, false);
bạn có thể nói cụ thể hơn, biết đâu mình giúp được ^^’
Chùi may quá có bạn làm đây rùi,cho mình cái yh được ko bạn ? vì vấn đề nó lằng nhằng quá !! >”<
mình cũng chỉ mới bắt đầu tìm hiểu thui ! Mong bạn chỉ giáo thêm ^^’
gacon_om_yeu@yahoo.com.vn –> mong bạn giúp đỡ
Chào bạn HPĐ ! Tôi có chạy thử ứng dụng của bạn.Ứng dụng có hiển thị Google Map hệ thống tìm đường.Nhưng tôi ko thể sử dụng chức năng GPS để tìm vị trí của mình.Khi tôi nhấn My Position ứng dụng ko trả về vị trí ! Tôi chạy trên bộ giả lập Bada 1.2.1
Chào bạn,
Để simulator sử dụng được GPS thì bạn cần thiết phải cấu hình lại trong simulator. Trong phần setting, bạn enable chức năng GPS là ok thôi.
Chúc bạn thành công!
chào bạn, thanks vì bạn đã quan tâm đến project của tôi ^^
tôi đã xây dựng xong ứng dụng chỉ đường tại thành phố Cần Thơ thông qua GPS. Nhưng giao diện chưa trong suốt với người dùng, user phải hiểu socket client-server để sử dụng dễ dàng. Giờ tôi đang có gắng khắc phục bằng cách sử dụng SMS message để app trên hai máy trao đổi IP+port để thiết lập kết nối socket. Nhưng tôi không phải là partner của Samsung nên không thể sử dụng MESSAGING PRIVILEGE. Tôi vừa đăng ký partner nhưng đang chờ Samsung phản hồi.
Mong các bác cho tôi xin vài cao kiến về vấn đề này. Thanks
Source code
Tôi đã enable GPS rồi mà vẫn ko được.
đầu tiên bạn phải enable GPS trên bộ giả lập. Sau đó click phải chuột vào simulator chọn Event Injector (tạo dữ liệu giã lập, chọn Location rồi chọn toạ độ GPS giả lập, click send log. khi đó bạn ấn nút My position của ứng dụng. vậy là ok.
Ngoài ra ứng dụng có thể chạy trên WAVE 575 (target) nhưng chương trình chạy chưa ổn định. tôi vẫn đang cố gắng khắc phục ^^’
không có ai giúp được tôi sao?
(Huỳnh Phương Đông
26/04/2011 lúc 10:24 sáng
Cảm ơn bạn đã trả lời rất chi tiết cho câu hỏi của tôi.Tôi đã làm theo các bước như bạn nói.
Nhưng khi tôi chọn My position thì ko hiện được map.
Đây là ảnh tôi đã chụp lại.Ko biết tôi đã làm thiếu bước nào ?
http://cB2.upanh.com/21.904.28866291.ln0/gps.jpg
Tôi mới cập nhật code lại (26/4/2011) ở trên. Bạn down về rồi test thử đi nhe. Lỗi mà bạn gặp phải là do app không load bản đồ về được, lỗi về tài khoản (^^’ chỉ đoán vậy thui). lưu ý bản đò bạn sử dụng không phải của googlemap mà của decarta nên phải có tài khoản mới sử dụng được.
Chúc bạn thành công
Như vậy là ứng dụng này sử dụng 2 bản đồ phải ko bạn ? Vì ban đầu lúc tôi chỉ sử dụng chức năng tìm đường thì thấy hiển thị bản đồ là GoogleMap (vẫn hiển thị bình thường)…Chỉ khi tôi dùng My position thì mới ko hiển thị được.
ứng dụng chỉ sử dụng bản đồ trên decarta thôi bạn. còn bản đồ trên Envent Injector dùng tạo dữ liệu giả lập mới dùng google map.
Bạn có thể hướng dẫn tôi cách đưa bản đồ trên decarta vào ứng dụng được ko ? Tôi đã đăng kí tài khoản nhưng ko biết cách đưa vào ứng dụng.Xin chân thành cảm ơn sự giúp đỡ nhiệt tình của bạn.Xin lỗi vì tôi ko thể giúp gì lại được cho bạn
sorry, mình không có thời gian hướng dẫn chi tiết. Bạn có thể lấy code mà mình đã up lên rùi tìm hiểu thử hé ^^’ . Hiện giờ đang đau đầu với cái luận văn.
Dù sao cũng rất cảm ơn bạn
Tôi đã thử nhiều cách nhưng ko sao hiển thị map trong bước tìm vị trí được. Có bạn nào giúp tôi ở bước này được ko ? Tôi ko hiểu lắm về quy trình kết nối giữa deCarta và Bada… xin cảm ơn.
À tôi có đọc được thông tin trên forum của samsungbada nói rằng deCarta chưa support ở Việt Nam vậy bạn HPĐ cho tôi hỏi là khi bạn chạy ứng dụng có định vị được vị trí ở Việt Nam ko ?
Decarta có hỗ trợ ^^ . Mình đang xây dựng một ứng dụng chỉ đường tại thành phố Cần Thơ và định vị vị trí thông qua GPS – ứng dụng chạy tốt ^^
http://www.mediafire.com/imgbnc.php/5955812df6c29397286104475bce309deaffcf01fea35c3879f793f47b6a070f6g.jpg
Tôi cũng thấy ứng dụng của bạn chạy rất tốt,chỉ là tôi vẫn chưa biết cách để hiển thị map deCarta nên chưa test được phần GPS ( Dù tôi đã đăng kí tài khoản và sửa lại “PROVIDER_EXTRA_INFO” nhưng ko hiểu sao vẫn ko load được )
Bạn test trên thiết bị nào vậy? có bật chức năng GPS chưa?Trong phần bật GPS bạn chọn My position (wave 575) xem coi nó có cập nhật được tạo độ của bạn chưa?Máy của bạn phải có nối kết 3G hoặc nối kết wirefire cũng được. Bạn không cần phải dk tài khoản trên decarta đâu vì trong ứng dụng đã cấu hình sẵn rồi ^^ code”static const String PROVIDER_EXTRA_INFO(L”ClientName=BADA-hpdong14:;ClientPassword=6jseq3w4kjzhkb4khpk8p2hc;HostUrl=http://bada.developer.decarta.com/openls/openls;DigitalGlobeKey=6jseq3w4kjzhkb4khpk8p2hc”);” trong file MapForm.cpp
bạn tải file CanthoMap.txt–> http://www.mediafire.com/?x53fm3blyly4q5b
rồi chép vào /Home trong project. OK build lại thử nhe bạn ^^
Tôi đã tải rồi nhưng vẫn ko được bạn ạ
Tôi test trên mô phỏng chạy chưa được luôn… Tôi đã chép file bạn đưa nhưng vẫn bị tình trạng như cũ.
Lúc bắt đầu chạy ứng dụng :
http://cB1.upanh.com/22.268.29265760.5Bl0/gps1.jpg
Lúc dùng GPS để định vị :
http://cB2.upanh.com/22.268.29265761.ug0/gps2.jpg
Tôi đã bật chức năng GPS rồi. Hơi tiếc vì ko test được phần này vì tôi đang muốn dùng thử chương trình thay vì dùng phần mềm GPS Status…
^^’ do giới hạn của ứng dụng bạn ơi. Vì phạm vi số hóa của bản đồ nằm trong quận Ninh Kiều, tp Cần Thơ thui.
Tôi đã hiểu được tại sao,bản đồ của tôi ko hiển thị rồi.Đó là do giá trị hoành độ và tung độ đưa vào ko phù hợp.Để xác định vị trí ở Việt nam giá trị hoành độ và tung độ bạn đưa vào ở Event Injector là bao nhiêu vậy ?
sau khi bạn mở Event Injector lên, có hai cách cho bạn thiết lập tọa độ. Event Injector sẽ load một bản đồ, bạn click lên bản đồ chọn một điểm rồi duy chuyển điểm đó về lại vị trí tại Việt Nam, rồi click send.
Cảm ơn bạn ,tôi thử rồi nhưng phần GPS này tôi thấy hơi lạ.Vì khi tôi thiết lập vị trí trên Event Injector là điểm nào thì bấm My Location nó sẽ trả về vị trí điểm đó chứ ko phải trả về vị trí của tôi ???
uhm, thì đúng rùi vì đó là dữ liệu giả lập nên làm sao hiển thị vị trí của bạn được. nếu muốn thì bạn cài đặt lên thiết bị thực thì nó sẽ cập nhật vị trí của bạn.
Cảm ơn bạn.
Ai giải đáp dùm tôi mấy câu hỏi này : ko liên quan lắm đến đề tài trên, nhưng hi vọng được các bạn giúp đỡ.
- Khi tôi build và run as simulator một ứng dụng mẫu có sẵn trên Bada hiện lên khung báo lỗi :
http://farm2.anhso.net/pic/o/129790/972011114251453/1.jpg
- Khi tôi mở Event InJector, nút send log ở phần Map ở trạng thái invisible. Tôi cố gắng để enable nó lên nhưng ko được.
http://farm2.anhso.net/pic/o/129790/972011114231963/2.jpg
Tôi ko hiểu được lý do tại sao lại như vậy. Ai biết làm ơn hãy giúp đỡ tôi.
Tôi có 1 vấn đề khác mong các bạn có thể giúp đỡ :
Nút Send log ở phần map trong event injector của tôi ko hiển thị….
http://farm2.anhso.net/pic/o/129790/972011114231963/2.jpg