Mobile GIS

Chào các bác,

Mình thấy trong diễn đàn có Thread về GIS & GPS, mình xin mạo muội có vài dòng thêm cho vui.

Mình cũng muốn làm thử một vài trò ứng dụng GIS trên con PocketPC.
Cũng đã sắm sử khá đầy đủ rồi:

  • 1 con HP4155
  • 1 con GPS RoyalTek
  • Software Mobile GIS thì cũng có được rồi.
  • Bản đồ số
    Tóm lại là tương đối.

Tuy nhiên còn nhiều điều phải giải quyết.

  1. Bản đồ số: chưa tốt lắm.
  2. Software của ngoại.
  3. Độ chính xác của GPS không cao.

Mình đang muốn tìm người cùng chia sẻ kinh nghiệm
Xin cảm ơn

Mình vừa mới mua con Holux 232, chạy với o22, đang cài các chương trình GPS để chạy thử: Ozi, GPS view, tomtom. Khi chạy xong phải softreset máy chứ không là treo, không dùng phone được, bạn dùng chương trình nào thế?

Mình sử dụng phần mềm ArcPad của ESRI.
Phần bản đồ còn banana lắm.
GPS của bác dùng con gì vậy.

Holux 232. mình đã nói trên rồi mà. Nhưng đang bị liệt rồi, con O22 vỡ mất màn hình, đau thế đấy.

Bác nào có bản đồ số của Việt Nam share cho mình với. Không biết mấy cái bản đồ số đó tỉ lệ là bao nhiêu nhỉ? độ chính xác so với thực tế thế nào (cập nhật năm nào?). Soft gì để coi ban đồ là good nhất bây giờ?

Minh chỉ có bản đồ của Tp. HCM, Đồng Nai, Bình Dương, Nha Trang thôi.
Nhưng các bản đồ này còn Banana lắm.
Theo mình thì thằng ArcPad có vẻ hay đấy. Nó cho phép kết nối với www.geographynetwork.com .
Geographynetwork là kho dữ liệu bản đồ hay lắm, có cả ảnh vệ tinh nữa nhưng tỷ lệ nhỏ thôi.

Mình hiện tại cũng có cả 1 mớ bản đồ rồi, nhưng quả thật là chưa thể dùng vào thực tiễn được.

Bạn DellAximX5 có ở TPHCM không?
Bạn có ý tưởng gì để cải thiện đống dữ liệu không nhỉ.
Mình cũng đã lọ mọ làm nhưng nhiều wá, làm không xuể.

Mình ở lung tung lắm, di chuyển thường xuyên. Hiện tại mình đang trong trạng thái tìm hiểu xem có thể ứng dụng cái này vào việc gì ko? Mình ko quan tâm đến việc cải thiện bản đồ lắm vì công việc này mình nghĩ là không khó lắm, chủ yếu nó đòi hỏi thời gian và chi phí. Mình tin là đã có những bản đồ chất lượng cao nhưng hiện tại mình chưa sở hữu được các bản đồ đó.

Hiện nay mình cũng chưa có thiết bị gì cả, đang kêu người bên AU send về cho mình cái GPS bluetooth để tìm hiểu.

Nếu bạn có ý tưởng gì, hoặc có thể chúng ta cùng hợp tác được thì có thể PM cho mình để chúng ta trao đổi. Mình hiện tại có nhiều điều muốn làm lắm, nhưng quả thật là thời gian quá eo hẹp.
Thân chào!

Tớ có bản đồ số thành phố Cần Thơ cũ trên nền autocad14 với tỷ lệ 1/1 (1 unit=1m). 22 phường, xã khoảng 280MB

Quả thực là mình cũng không để tâm đến vụ cải thiện bản đồ lắm, hiện giờ mình chỉ dùng bản đồ để làm nền hiển thị các lớp dữ liệu của mình thôi.
Về ý tưởng thì cũng có một vài ý tưởng như sau:

  1. ý tưởng 1: Mình đang nghĩ phối hợp với bác DigitalWorld để đưa các nhà hàng, quán ăn lên bản đồ. (Không biết bá DigitalWorld có đồng ý không nhỉ). Để giải quyết bài toán này thì:
  • Tinh chỉnh bản đồ để giảm dung lượng, nạp nhanh hơn.
  • Tạo các lớp dữ liệu nhà hàng, quán ăn (cái vụ này mình làm được), hiệu chỉnh lại vị trí theo GPS (Cái vụ này làm phê lắm). Bác DigitalWorld sưu tầm đến hơn 1600 nhà hàng, quán ăn, chưa kể các thông tin kèm theo, thu thập lại vị trí thực tế, chắc chết mất.
  1. Ý tưởng 2: Mình thấy một số bác có nhu cầu biết được các điểm đặt máy ATM của các ngân hàng.Đây cũng là nhu cầu chính đáng. Giải quyết bài toán này cũng tương tự như bài toán trên thôi.

Không biết bác nào có thể làm cùng với mình nhỉ?

Với GPS thì hiện nay mình chỉ quan tâm đến vấn đề đường đi. Tuy nhiên để giải quyết bài toán này mình thấy khá phức tạp. Cho 2 vị trí, tìm đường đi ngắn nhất từ vị trí này đến vị trí kia. 2 vị trí này có thể ở trong nội thành, ngoại thành, (vị trí bất kỳ trên thế giới !!!). Mình chỉ mới nghĩ sơ sơ thôi đã ngao ngán, ví dụ: Bây giờ là 11h trưa (giờ cao điểm tan tầm), mình có cuộc họp gấp với khách hàng ở Nhà Hàng X, làm sao mình đi đến đó nhanh nhất bây giờ? đi bằng phương tiện gì thì tốt nhất (tránh kẹt xe, phù hợp đường xá nơi cần đến)? đi thế nào thì tiết kiệm chi phí nhất? …

Ôi ngao ngán!!!

Bài toán tìm đường đi ngắn nhất không phải là khó, bài toán tìm đường đi thông minh cũng ko khó, cái khó là dữ liệu, nếu bác đưa cho tôi dữ liệu tôi sẽ giúp bác phần còn lại.

Ví dụ như bác đề cập đến, giờ tan tầm là 11h thì phải có dữ liệu về mật độ của mỗi đoạn đường trên toàn thành phố. Phát triển thêm có thể phân loại đường như chiều rộng của đường, chất lượng có nhiều ổ gà ko, có cây xanh bên đường ha ko, có những bệnh viện hay trường học ở những đoạn đường nào. Vì những đoạn đường mà có trường học rất hay bị ách tắc giờ tan học của học sinh.

Thân

Bác đợi mấy hôm em up con chương trình của em mới làm nhé. DAng chan đời nên lười nhập liệu.Em không có thiết bị GPS nên mới làm được phần bản đồ thôi.Cũng có tìm đường. Mới demo trên mấy phố nội thành.
Nhân tiện hỏi các bác cách đóng gói ctrinh trong evc. Em chạy giả lập hoặc copy ctrinhg vào PDA bằng sync thì OK, nhưng cứ dịch bình thường rồi copy sang 1940 thì tòan báo không đúng version.
Em demo con ctrinh nhe
Tìm đường có 2 loại :

  1. Tìm tên đường : Tìm bằng cách lựa chọn (hoặc gõ)tên đường ở ô list box, màn hình sẽ zoom tới vị trí thích hợp của đường đó.Sau đây là minh họa
    http://img.photobucket.com/albums/v638/trieubk/Search1.jpg
    sau khi lựa chọn sẽ ra như sau :
    http://img.photobucket.com/albums/v638/trieubk/Search2.jpg

Bố khỉ, úp lắm ảnh quá nên em phải cắt ra làm 2 phần:
2. Tìm đường đi ngắn nhất : Phải xác định điểm xuất phát (vì nghèo không có tiền mua GPS) và điểm đích bằng một trong 2 cách :
- Lựa chọn tên đường xuất phát và đích như cách tìm tên đường
- Cách thứ 2 khóai hơn là dịch chuyển tới vị trí thích hợp và chọt thẳng vào màn hình một điểm bất kì cho điểm xuất phát và điểm đích
Sau đây là hình minh họa:
Chọt vào một điểm bất kì , ô lựa chọn sẽ hiển thị tên đường gần nhất điểm đó. Em không capture được quá trình chọt nên chỉ capture sau khi đã chọt, các bác thông cảm :
*. Chọt điểm đầu :
http://img.photobucket.com/albums/v638/trieubk/search3.jpg
**.Chọt điểm đích :
http://img.photobucket.com/albums/v638/trieubk/Search4.jpg
***. Và kết quả là :
http://img.photobucket.com/albums/v638/trieubk/search5.jpg

Các bác góp ý giúp em. Phần hiển thị biết là thô thiển vì em không có nhiều thời gian (vài hôm nữa bảo vệ rồi), lại mất quá nhiều thời gian để làm tool dựng bản đồ.
Các bác cứ sợ dựng dữ liệu. Em thì mới chỉ dựng được khu trung tâm HN (=1/5 MAP) nhưng thấy cũng chẳng vấn đề lắm. Vừa đấu giá vừa dựng thì Mất khoảng 2h bằng tool em viết.
Dữ liệu cả HN em ước tính <300K

Nhìn qua chương trình của bác thấy bác cũng mắc lỗi y hệt em 6 tháng trước:

  1. Chương trình ko tự clip geomery, tức là chỉ render những object có trên phần viewable window thôi, những object mà nó chỉ có 1 phần view được thì phải cắt ra. → Cái này sẽ cải thiện performance rõ rệt. Nếu để nguyên thế thì khi view rộng hơn hoặc bản đồ phức tạp lên 1 chút sẽ rất chậm. Đặc biệt là các chương trình viết cho Mobile và PDA, thuật toán cần phải được quan tâm kỹ lưỡng.

  2. Phần render labels của bác ko tốt, vì bác ko tính MBR của render, khi render bác nên coi label như 1 object và ko được render chồng lên nhau (Xem cái hình thứ 3-Hàng Bông và Lý Quốc Sư cắt nhau). → CHính vì vậy nên khi bác setZoom lớn hơn các labels sẽ chồng hết lên nhau. → Performance giảm rất nhiều.

Khi bác cải thiện xong thuật toán render cho cả geometry và label thì bác có thể muốn xem qua phần index để tiếp tục tăng performance, hiện nay thường người ta hay dùng 2 loại index: 1 là RTree, 2 là QTree, cách thứ 1 thường dùng để render points và cách thứ 2 thường để render geometry.

Chút góp ý nho nhỏ để sản phẩm của bác hoàn thiện hơn.

Thân,

Cảm ơn bạn đã góp ý. Thực tế trong chương trình của mình đã giải quyết các vấn đề đó như sau :

  • Có thuật toán xác định các đối tượng đang được hiển thị, khi tác động lên màn hình thì chỉ xét tương quan với các đối tượng đó. Do vậy khi zoom càng to, tốc độ càng nhanh vì đối tượng được hiển thị càng ít.
  • Khi thay đổi góc nhìn như PAN bản đồ chẳng hạn, chương trình chỉ xét đến các đường khung chứ không phải toàn bộ bản đồ nên tốc độ không ảnh hưởng. Chỉ có điều trông không được đẹp mắt, mong muốn là tìm cách capture lại màn hình và tiến hành PAN ảnh như HandMap thì đẹp hơn rất nhiều, nhưng chưa biết cách làm
  • Các chữ đúng là bị trồng lên nhau trong trường hợp này vì mình chưa hiệu chỉnh , nhưng chương trình đã được xây dựng để khi tỉ lệ quá nhỏ, các tên đường sẽ không được hiển thị, không có hiện tượng chồng tên. Chồng trong hiện tượng trên là vì tên mình bắt đầu hiển thị ngay đầu đường, 2 đường cắt nhau sẽ bị như thế. Sẽ khắc phục bằng cách chèn thêm một số dấu cách ở đầu.
    -Thuật toán tìm đường theo địa điểm thì hiển thị ngay lập tức vì cơ sở dữ liệu cả HN của mình chỉ khoảng 200-300K. Mình tự dựng CSDL bằng tool viết riêng nên chỉ dựng đúng những thứ mình cần, không thiếu không thừa.
    Thuật toán tìm đường đi ngắn nhất đã được cải tiến rất nhiều, tốc độ hiện tại cũng chưa có vướng mắc, tuy nhiên liệu mới được 1/5 bản đồ HN (Ở khu phố cổ phức tạp nhất), hy vọng toàn bản đồ dựng lên cũng sẽ nhanh. 1/3 giây cho đường đi ngắn nhất từ KIm Mã đến lò đúc chắc cũng tạm được nhỉ.
    Vướng mắc cần hỏi :
    Mình thử tạo một mảng khá lớn khoảng 1000*100 thì bị báo thiếu bộ nhớ (eVC), có thật sự là bộ nhớ trong eVC eo hẹp vậy không

Up luôn giao diện tool dựng bản đồ cho các bác góp ý
http://img.photobucket.com/albums/v638/trieubk/Image12.jpg
Em viết bằng JAVA tool dựng bản đồ. Dữ liệu được lưu tạm vào CSDL trên ORACLE 9i, để có thể lưu, thêm sửa, kiết xuất sau nhiều lần làm việc. Dữ liệu export ra mới dưới dạng file .txt có topology riêng, đây là điều xấu hổ nhất do ko có thời gian tìm hiểu định dạng các file dữ liệu bản đồ. Chẳng ai cho em hết hu hu.Nhưng file txt của em trông xấu mã nhưng thấy chạy chẳng vấn đề gì.
Em muốn phát triển thêm con này quá, tiếc rằng đã kiệt sức rồi. 3 tháng ròng rã thức gần trắng đêm. Bác nào muốn cùng em tiếp sức không. Nhưng mà ai cho mượng con GPS để ghép thử vào thì em sẽ cố tiếp. hihi.

trước tiên xin góp ý bác về cái tool để draw map. Bác nên nghiên cứu qua 1 chút về cách lưu dữ liệu dưới dạng binary, nếu bác đang dùng Oracle thì có thể xem qua phần Oracle Spatial để biết cách làm của nó. Dữ liệu khi được load vào bộ nhớ bằng binary sẽ nhanh lên từ 10x->1000x tuỳ vào dung lượng. Nếu dữ liệu để ở dạng String rất rất chậm khi load.

tui vừa upload cuốn Simple Fẻature Geometry for OLE/COM cho bác:
Bác chịu khó implemént theo vì đó là chuẩn rồi.

http://www.coding4living.com/temp/99-050-Simple%20Features%20Specification%20For%20OLE-COM.pdf

Còn phương pháp render của bác chỉ là tạm bợ thôi, ko dùng được, tui upload cuốn thuật toán render label cho bác xem thêm

http://www.coding4living.com/temp/Draw labels Algorithm 2001-44.pdf

Nhưng bác đừng xem cuốn thứ 2 vội, trước tiên hãy xem cuốn thứ 1 vì nó nói rõ ràng model của geometry, từng interface một, chỉ việc implement theo thôi.

Sau đó bác cần implement tiếp 1 số funtions rất cơ bản của 1 geometry object như buffer, MBR…

Càng làm cẩn thận thì càng nhanh vì ko phải quay lại sửa, phần nào xong phải chắc chắn ngon.

Thân,

Bác xem lại hộ em cái link thứ 2 cái, em cũng cần đọc mà không thể mở được. Đúng là cái label của em cũng chưa thật ổn vì đấy là cái em tự nghĩ.
Lưu trữ nhị phân em cũng nghĩ rồi nhưng nếu load từ oracle, dữ liệu bé tí nên chắc chưa cần đến vậy. Bấm phát load ra luôn.Tuy nhiên em không biết nếu lưu file nhị phân thì chương trình trên PDA import có tốt hơn không, chưa thử vì cũng chưa thấy chậm gì hết, cũng dạng bấm phát ra luôn.Hiện tại em đang quan tâm đến cấu trúc file mapinfor nhưng ko biết kiếm ở đâu.
Cảm ơn bác nhé, bác có ở HN ko, hôm nào em qua demo cho bác, nhìn chương trình bác góp ý chắc tốt hơn.
Em cũng làm bài bản, không tạm bợ lắm. Gặp bác xem qua được thì tốt.