Làm thế nào để chuyển đổi tọa độ của 1 đối tượng từ file Dgn sang MapControl

Thảo luận trong 'Lập trình trong ArcGIS' bắt đầu bởi taibc, 19/9/12.

  1. taibc

    taibc New Member

    Tham gia ngày:
    9/7/12
    Bài viết:
    130
    Đã được thích:
    0
    Điểm thành tích:
    0
    Nghề nghiệp:
    Kỹ sư phần mềm - Công ty địa chính tư vấn và dịch
    Nơi ở:
    Hà Nội
    Mình đang thực hiện đọc các phần tử từ file Dgn và rồi hiển thị lên trên một đối tượng MapControl (sử dụng Visual Studio, C#). Tuy nhiên, do tọa độ khác nhau nên không thể hiện thị được.

    Ví dụ: Trên file dgn có chữ "Cộng hòa", với tọa độ origin là: X= 661477.5798, Y =1629837.9538

    Nhưng không thể nào dùng tọa độ trên với MapControl của Arcgis. (Ví dụ nếu: X = 20, Y = 20 thì hoàn toàn hiển thị được).

    Có bạn nào có giải pháp cho việc này không ?

    Thanks & regards,
     
    Tags:
  2. bktuannv

    bktuannv Member

    Tham gia ngày:
    4/11/11
    Bài viết:
    66
    Đã được thích:
    0
    Điểm thành tích:
    6
    Nghề nghiệp:
    GIS, LIS Database & Applications
    Nơi ở:
    Nghệ An
    1. Nếu bạn dùng MapControl thì có thể là do bạn chưa Zoom đến tọa độ X= 661477.5798, Y =1629837.9538, nên không nhìn thấy được điểm này.

    2. Nếu bạn đã zoom rồi mà vẫn không hiển thị được, trong khi với tọa độ X = 20, Y = 20 thì hoàn toàn hiển thị được: Có thể bạn đang sử dụng PageLayoutControl?

     
  3. taibc

    taibc New Member

    Tham gia ngày:
    9/7/12
    Bài viết:
    130
    Đã được thích:
    0
    Điểm thành tích:
    0
    Nghề nghiệp:
    Kỹ sư phần mềm - Công ty địa chính tư vấn và dịch
    Nơi ở:
    Hà Nội
    Cảm ơn bạn,

    Bạn có biết cần Zoom đến tọa độ bao nhiêu với MapControl để có thể hiển thị được dạng fitview của file Dgn không ?
     
  4. bktuannv

    bktuannv Member

    Tham gia ngày:
    4/11/11
    Bài viết:
    66
    Đã được thích:
    0
    Điểm thành tích:
    6
    Nghề nghiệp:
    GIS, LIS Database & Applications
    Nơi ở:
    Nghệ An
    Nếu muốn hiển thị fitview của file dgn, thì bạn đặt extent của MapControl = extent của file dgn đó

    Hoặc dùng ControlsMapFullExtentCommandClass để xem fit view của toàn bộ bản đồ

     
  5. taibc

    taibc New Member

    Tham gia ngày:
    9/7/12
    Bài viết:
    130
    Đã được thích:
    0
    Điểm thành tích:
    0
    Nghề nghiệp:
    Kỹ sư phần mềm - Công ty địa chính tư vấn và dịch
    Nơi ở:
    Hà Nội
    Xác định Extent của file dgn bằng cách nào hả bạn ? Ví dụ: Mapcontrol.Extent = ?
     
  6. bktuannv

    bktuannv Member

    Tham gia ngày:
    4/11/11
    Bài viết:
    66
    Đã được thích:
    0
    Điểm thành tích:
    6
    Nghề nghiệp:
    GIS, LIS Database & Applications
    Nơi ở:
    Nghệ An
    Lấy extent của dgn layer bằng thuộc tính AreaOfIntersect.

     
  7. taibc

    taibc New Member

    Tham gia ngày:
    9/7/12
    Bài viết:
    130
    Đã được thích:
    0
    Điểm thành tích:
    0
    Nghề nghiệp:
    Kỹ sư phần mềm - Công ty địa chính tư vấn và dịch
    Nơi ở:
    Hà Nội
    Cảm ơn bạn, mình làm được rồi
     
  8. bebeo

    bebeo New Member

    Tham gia ngày:
    28/11/11
    Bài viết:
    8
    Đã được thích:
    0
    Điểm thành tích:
    0
    Mình cũng đang tìm hiểu vần đề này bạn có thể chia sẽ code ở đây không?
     
  9. taibc

    taibc New Member

    Tham gia ngày:
    9/7/12
    Bài viết:
    130
    Đã được thích:
    0
    Điểm thành tích:
    0
    Nghề nghiệp:
    Kỹ sư phần mềm - Công ty địa chính tư vấn và dịch
    Nơi ở:
    Hà Nội
    Mình chỉ có thể gợi ý cho bạn được thôi:

    Có 2 hướng thực hiện việc này:

    1. Là bạn sử dụng thư viện MicrostationDgn như ở đây: Please login or register to view links

    2. Hoặc là bạn dùng thư viện mã nguồn mở của gdal: Dùng Ogr (Please login or register to view links )
    hoặc DgnLib: Please login or register to view links

    Chúc bạn thành công !
     

Chia sẻ trang này

Share
Đang tải...