2013-02-14 48 views
5

Tôi thấy một số cách để thực hiện: Cách tốt nhất để tạo bản đồ của tòa nhà tùy chỉnh cho iOS

1) Vẽ bằng cách sử dụng OpenGL theo lập trình.

2) Vẽ bằng cách sử dụng QuartzCore và CoreAnimation theo chương trình.

3) Vẽ bản đồ trong AutoCad và sau đó bằng cách nào đó kết nối nó với iOS.

4) Vẽ bản đồ bằng SVG.

Yêu cầu hỗ trợ hướng dẫn đường dẫn và điều hướng gps.

Đối với 2 cách đầu tiên, tôi nghĩ rằng đó là tốn kém về mặt hiệu suất, vẽ lại tất cả các yếu tố về nhân rộng; và tôi không nghĩ rằng cách này có thể có hỗ trợ định vị GPS.

Sử dụng bản đồ hình ảnh AutoCad khó hiểu đối với tôi cách kết nối nó với biểu đồ \ đường dẫn cho đường dẫn.

Đồng nghiệp của tôi sẽ phát triển ứng dụng này trên web bằng SVG. Tôi tìm thấy nó - https://github.com/SVGKit/SVGKit, nhưng vẫn không có ý tưởng làm thế nào nó sẽ hỗ trợ pathfinding và chuyển hướng.

Tôi sẽ đánh giá cao bất kỳ trợ giúp nào.

Trả lời

4

Nói chung có hai loại ứng dụng bản đồ:

A) Họ hiển thị bản đồ, (có hoặc không có một vị trí người dùng) mà không cần phải tính toán một con đường giống như một hệ thống dẫn đường không (xem điểm B)

B) Ứng dụng sử dụng các vectơ của bản đồ và tính toán điều gì đó: ví dụ: để tìm đường đi tốt nhất. Kết nối ngắn nhất, ví dụ: Hệ thống điều hướng, v.v.

Ứng dụng cho A) thường ít phức tạp hơn B), vì vectơ có thể hơi không chính xác, không có conections, có khoảng trống nhỏ, không có logic giữa cạnh, vv

1) Để chỉ hiển thị bản đồ tòa nhà, bạn chỉ cần danh sách các cạnh. (Một cạnh là cặp tọa độ (x1, y1) - (x2, y2) Bạn có bao giờ nhận được điều đó, ví dụ: Định dạng MapInfo Professional mif/mid
Hoặc thậm chí bạn có thể phân phối bản pdf chứa bản đồ của builing. Ngay với Chế độ xem PDF được tích hợp sẵn (cũng với SVG nhưng khó hơn).

Mọi thứ trở nên phức tạp hơn nếu nó không phải là bản đồ tương đối, nhưng cũng là bản đồ được định vị với hệ tọa độ tham chiếu, như vĩ độ Trong trường hợp đó, bạn sẽ sử dụng Công cụ (mapInfoProfessional, để nhập các tệp DXF AutoCad, và áp dụng 3 điểm tham chiếu được đo GPS ở góc nhà và chuyển đổi thành hệ tọa độ LatLong WGS84.
Với ios bạn không thể đo lường 3 P gợi ý bởi vì bạn không thể trung bình một vị trí, ios ngừng gửi khi bạn đang đứng yên ở một góc của ngôi nhà. Bạn có thể thử trích xuất các vị trí từ vệ tinh của google earth foto nếu bạn đang sống ở một khu vực mà google Sattelite fotos có độ phân giải cao. (Nhưng điều này có thể vi phạm các điều kiện giấy phép của nhà cung cấp Vệ tinh Foto đó (Chủ đề: dữ liệu có nguồn gốc))

Cuối cùng bạn có danh sách các cạnh trong Hệ tọa độ Lat Lon.

Để hiển thị cá nhân tôi sẽ thực hiện với 1) OpenGL) hoặc 2) Quartz2D.

Bây giờ phần Tìm đường dẫn.

Chắc chắn bạn cần một "bản đồ" thứ hai xác định các đường dẫn có thể có bên trong tòa nhà. Cấu trúc này phải là biểu đồ kết nối (điểm với các hàng xóm được kết nối). Trò chơi máy tính thực hiện theo cách đó. (Một số thậm chí cho phép bạn hiển thị đường dẫn đó trong chế độ developper)

Đường dẫn có thể được vẽ, trong một lớp khác của sơ đồ mặt bằng. Nhưng con đường này có yêu cầu cao hơn: Không có khoảng trống nào được phép, tất cả đều phải được kết nối hoàn hảo.

Gọi lớp đó là "Đường dẫn" và xuất nó dưới dạng gói riêng.
Bây giờ chỉ sử dụng lớp đường dẫn này và nhập và tạo biểu đồ các nút có các hàng xóm kết nối.

Sử dụng Dijkstra Algo để tìm kiếm đường đi ngắn nhất.

+0

Cảm ơn câu trả lời chi tiết! Vì vậy, như tôi đã hiểu, tôi phải làm cho bản đồ AutoCad, chuyển đổi nó bằng cách sử dụng mapInfoProfessional thành một cái gì đó, hỗ trợ hệ thống phối hợp LatLong, và sau đó vẽ nó bằng cách sử dụng OpenGL/Quartz2D? Tôi vẫn không thể hiểu làm thế nào làm cho bản đồ này tương tác với iOS, chỉ cần vẽ nó trong một số xem? Hoặc bất kỳ thành phần nào được chỉ định? Và hệ tọa độ LatLong phải được áp dụng chính xác cho bản đồ AutoCad, hoặc bản đồ đã vẽ trong iOS? – Aft3rmath

+0

có, chỉ cần vẽ nó trong một cái nhìn, CGRectlineTo. việc chuyển đổi bản đồ sang LAtLong cũng có thể được bạn thực hiện bằng cách sử dụng Chuyển đổi Helmert. khi vẽ bản đồ, bạn cũng cần chuyển đổi lại latLong thành tọa độ màn hình (Sử dụng phép chiếu hình trụ) – AlexWien

+0

Cảm ơn bạn rất nhiều! Nhưng những gì về mở rộng quy mô? Tôi có nên tạo các bản đồ độ phân giải khác nhau cho mỗi bước mở rộng, và sau đó vẽ lại phân đoạn bản đồ trên quy mô, sử dụng bản đồ cad tự động phân giải khác không? – Aft3rmath

Các vấn đề liên quan