Bắt đầu với ArcObjects?


26

Tuyến đường hoặc địa điểm tốt nhất để bắt đầu với ArcObjects là gì nếu một người không phải là nhà phát triển và không đặt mục tiêu trở thành nhà phát triển ?

Tôi đã sử dụng gis một cách chuyên nghiệp trong một thời gian dài, gần hai thập kỷ, arcinfo / arcgis cho hầu hết điều đó; Tôi khá tốt. Tôi đang học phát triển phần mềm và thậm chí có một ứng dụng trăn nhỏ thành công khiêm tốn được sử dụng trong một dự án công cộng; Tôi không tốt! Tôi không muốn trở thành một nhà phát triển phần mềm chính thức nhưng tôi tiếp tục chạy vào những thứ tôi không thể làm mà không cần lập trình ( ví dụ ). Trong thế giới arcgis, điều này đặt tôi khá nhiều vào trại trăn, điều này cũng ổn đối với tôi vì tôi thích trăn, tuy nhiên trăn không có quyền truy cập thẳng vào ArcObjects. (Python và ArcObjects là có thể , nhưng đó là một tuyến đường không được hỗ trợ. Câu hỏi này là về việc đi theo một con đường bị đánh đập.)

Tôi cần bắt đầu, nhưng ở đâu? Trợ giúp của Arcgis nói rằng hãy bắt đầu với Mạng lưới nhà phát triển ESRI nhưng $ 1500 / năm chắc chắn không nằm trong ngân sách của tôi và nghe có vẻ như sử dụng búa tạ để quét mosquitos. Và ngôn ngữ .NET, Visual Basic hay Visual C ++?


CẬP NHẬT: Cảm ơn tất cả mọi người cho câu trả lời tuyệt vời. Trong ánh sáng của họ, tôi nhận ra rằng tôi đã thu hẹp một cách không cần thiết phạm vi câu hỏi của tôi là giả sử "ArcObjects" là hướng tôi cần đi vào. Một công thức kết thúc mở hơn nằm dọc theo dòng:

Tôi tiếp tục gặp vấn đề mà tôi không thể giải quyết chỉ với arcgis và python. Tôi có thể học / sử dụng những gì khác để giải quyết các vấn đề như X? Tôi không có hứng thú hoặc ý định trở thành nhà phát triển phần mềm. Tôi chỉ cần làm một vài điều mà không tiếp xúc với các mô-đun python của arcgis.


đây là một câu hỏi được tái chế từ Stack Overflow, ( ref ) mà vì bất kỳ lý do gì họ đã quyết định không di chuyển đến đây. Vì vậy, tôi đang yêu cầu một lần nữa để có được câu trả lời toàn diện hơn từ những người ở vị trí tốt hơn để giúp đỡ.
matt wilkie

Bạn có phần mềm nào theo ý của bạn? ArcGIS tôi phải giả định. Visual Studio 2008/2010 Pro / Express?
Chad Cooper

Tôi có ArcGIS 9 & 10. Tôi chưa chọn bất kỳ phần mềm phát triển nào.
matt wilkie

Câu trả lời:


14

Bổ trợ VB.Net cho chắc chắn. Các máng đi bộ ESRI sẽ đưa bạn lên đường.

Tôi đã sử dụng VB6 và VBA trong nhiều năm và cá nhân tôi thấy VB khá trực quan. Tất nhiên VB .Net là một động vật hoàn toàn khác nhưng cấu trúc bổ trợ tương đối đơn giản để tìm hiểu và triển khai. Tôi vừa tham gia một hội thảo kỹ thuật về ArcPy tại một hội nghị ESRI và tôi phải nói rằng tôi sẽ gắn bó với các bổ trợ VB.Net. Tôi đã khóc khi biết rằng VBA sẽ được thay thế bằng bổ trợ nhưng sau khi vi phạm đường cong học tập, tôi phải nói rằng đó là cải tiến tốt nhất cho ArcGIS 10. Tôi không thể làm gì với thiết lập này. Tôi có các công cụ tùy chỉnh ở khắp mọi nơi. Những điều mọi người phàn nàn trong ArcGIS tôi chỉ đơn giản là tùy chỉnh theo ý thích của tôi. Viết một công cụ và phân phối nó trong môi trường văn phòng thật dễ dàng ...

Tất cả những gì bạn cần là Visual Studio Express miễn phí và SDK được cài đặt.

Đây là máng đi bộ: http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/Bu kiếm_add_ins_for_ArcGIS_Desktop / 0001000000w2000000 /

Đối với ArcObjects, có rất nhiều ví dụ và đoạn mã mà bạn có thể thêm trực tiếp vào Visual Studio để bạn có thể học những điều cơ bản từ các ví dụ.

Trong phiên bản 8 ESRI thực sự xuất bản sách ArcObjects; 2 khối lượng lớn là một tài liệu tham khảo tuyệt vời và bao gồm nhiều ví dụ cho C và VB. Tất cả bây giờ có thể được tìm thấy trực tuyến nhưng tôi muốn ESRI sẽ lại xuất bản những thứ này.


3
Đồng ý với tất cả các điểm, buuuuttt, tôi sẽ nói đi C # nếu bạn không có kinh nghiệm về VBA / VB6 trước đó.
Chad Cooper

Có tôi là một phần của VB. Nếu tôi là một nhà phát triển và sử dụng nhiều nền tảng khác nhau, tôi chắc chắn sẽ sử dụng C # nhưng tôi thấy (và ý kiến ​​phổ biến) VB rõ ràng hơn và dễ hiểu hơn và kết quả là phù hợp hơn cho người mới bắt đầu.
Jakub Sisak GeoGraphics

1
+1 khi đi với C #. Đây rõ ràng là ngôn ngữ .NET yêu thích của các nhà lãnh đạo trong ngành. Tôi đã sử dụng cả VB và C # khi mới bắt đầu và thực sự nghĩ rằng nó dễ học và dễ hiểu hơn. Ngoài ra, nó gần với các ngôn ngữ dựa trên C khác như JavaScript và Java.
wilbev

7

Đây là một phích cắm không biết xấu hổ cho một bài viết tôi đã viết năm ngoái cho ArcUser khi bắt đầu với ArcObjects trong .NET .


Chỉ cần đọc nó và nó là một bài viết tuyệt vời..chỉ với sự xấu hổ vì lợi ích của những người mới như tôi! Bạn có bất cứ điều gì về việc sử dụng TOC trong .net..tôi nghĩ gì khi bắt đầu sử dụng COM? Cảm ơn.
Justin

6

Nếu bạn không muốn trở thành một nhà phát triển nghiêm túc thì tôi sẽ đặt câu hỏi cho bước đi của bạn trong bước vào thế giới lập trình. Vấn đề ở đây là để viết mã bạn nên hiểu những gì đang xảy ra dưới mui xe. Nếu không, bạn có thể làm gì đó với dữ liệu, ứng dụng và thậm chí cả máy tính mà bạn không có ý định làm, chỉ vì thiếu hiểu biết (vâng, bạn cũng có thể làm trong Python nhưng .NET là một bước tiến xa hơn trong việc mắc lỗi dễ dàng hơn một chút comimt).

Về câu hỏi của bạn về bí danh trường (tôi không chắc là tôi đã hiểu đúng chưa) bạn có yêu cầu thay đổi bí danh của các trường trong một lớp đối tượng không? Nếu vậy thì bạn có thể sử dụng featureclass_to_featureclass với ánh xạ trường. Có, nó tạo ra một lớp tính năng khác nhưng bạn chỉ có thể có một khu vực đầu ra để sao chép dữ liệu và thay đổi bí danh trong khi thực hiện nó.

Như Steve gợi ý ArcPy cũng có thể trả lời các yêu cầu của bạn trong ArcGIS 10 với quyền truy cập mới vào các thuộc tính lớp trong bản đồ.


re: bí danh trường - bạn nên thêm câu đó làm câu trả lời cho Q. Tôi không biết điều đó là có thể.
matt wilkie

5

Nhìn vào các tài nguyên trực tuyến cho Esri, tôi không thể không chú ý đến việc ArcObjects không có phần tài nguyên phong phú và cập nhật như các công nghệ ArcGIS khác.

Đó là lý do tôi bắt đầu kênh Youtube IGeometry để thảo luận về ArcObjects, sê-ri , mà tôi gọi là Lập trình .NET với ArcObjects, đã đạt đến tập thứ 14 cho đến nay và rất nhiều người dùng GIS thực sự được hưởng lợi từ nó.

Sê-ri dựa trên một dự án hư cấu mà tôi đã tạo ra có tên là "Nhà hàng", nơi bạn phải tạo một ứng dụng trên ArcMap để tìm kiếm, quản lý, thêm, xóa nhà hàng. Với mỗi tập phim, chúng tôi giới thiệu một giao diện mới và tìm hiểu về các đối tượng hạt mịn trong ArcObjects một cách thú vị!

Tôi đăng video hàng tuần, bất cứ khi nào có cơ hội, vì đây là việc tôi làm vào thời gian riêng của mình.

Vui lòng kiểm tra ngay bây giờ và chia sẻ nó với bất kỳ chuyên viên máy tính nào mà bạn có thể biết. Đề xuất luôn được hoan nghênh để cải thiện loạt.

Ai biết được, có lẽ một khi chúng ta hoàn thành việc này, tôi có thể bắt đầu một loạt khác.

http://www.youtube.com/watch?v=XrZs1rwmOwg&list=PLQnljOFTspQXqYsWJG8o-eJpGlvzww9lE&index=1


Tôi cũng muốn học ArcObject. Nhưng tôi hoàn toàn không quen thuộc với nó. Tôi có cần thêm giấy phép để bắt đầu với ArcObject không? hoặc tôi có cần phải có thành phần ArcObject với ArcGIS 10.4 như một bản lisense bổ sung không?
Shiuli Pervin

2
Có, bạn sẽ cần ArcGIS Desktop License, tuy nhiên bạn có thể nhận ArcGIS Desktop mới nhất từ ​​trang web esri với giấy phép trong 60 ngày. Rất nhiều để giúp bạn bắt đầu.
hnasr

4

Bạn không cần đăng ký EDN để phát triển với ArcObjects, cũng như không truy cập tài liệu SDK.

http://help.arcgis.com/en/sdk/10.0/arcobjects_net/ao_home.html


Nhưng bạn có cần EDN để truy cập SDK không, phải không? Và, hãy trung thực, rút ​​mã ra khỏi phía sau của bạn không chính xác là một lựa chọn cho một người không quan tâm đến nit và sự phát triển như vậy.
Nathanus

2
Không, đó là trên đĩa CD cài đặt.
blah238

Nó xuất xưởng với mọi phiên bản của sản phẩm?
Nathanus

Chỉ cần các bản phát hành chính tôi tin. Các mẫu cũng có trong trợ giúp trực tuyến, mặc dù .NET có vẻ không có danh sách, nhưng Java có: help.arcgis.com/en/sdk/10.0/java_ao_adf/conceptualHelp/engine/, Tuy nhiên, tệp trợ giúp được cài đặt với SDK tiện dụng hơn nhiều.
blah238

4
Nếu bạn có một bản sao ArcGIS Desktop thì bạn không cần đăng ký EDN để phát triển bổ trợ. Đăng ký EDN chỉ đơn giản là một cách để cung cấp cho các nhà phát triển một bản sao về mọi thứ trong ngăn xếp ArcGIS mà không cần đốt giấy phép sản xuất đắt hơn nhiều. EDN cũng tốt cho việc phát triển nếu bạn không sở hữu giấy phép sản xuất nào cả. Bạn không cần EDN để mã hóa và phát triển với API ArcObjects.
JimBarry





0

Không phải là một câu trả lời thực sự như bạn đã nói rằng bạn không muốn trở thành một nhà phát triển.
Tôi đã đăng ở đây cho các lợi thế định dạng trên các ý kiến.
Blog này vừa xuất hiện và khá rộng rãi trong việc đưa ra định hướng cho cộng đồng phát triển liên quan đến máy chủ arcgis.
Nó phác thảo ý định di chuyển khỏi ADF và khuyến khích nắm lấy các dịch vụ web.
Tôi hy vọng nó sẽ giúp một cách nào đó quyết định của bạn.

Blog ESRI - ArcGISServer

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.