2012-10-20 20 views
0

我的任務是完成一個論文項目,我必須擴展ArcGis的功能。我被要求創建一個用Python編寫的模型,可以在ArcGIS 10中運行。此模型將具有一個簡單的用戶界面,用戶可以拖放各種形狀文件並輸入特定變量的值,以便模型有效運行。一旦模型運行完畢,就會創建一個新的shape文件,爲風力渦輪機從A點到B點鋪設最具成本效益的收集器電纜線路。擴展ArcGIS

我想知道這樣的功能/存在於ArcGIS中,所以我不必重新發明輪子。如果沒有,那麼學習如何爲此擴展ArcGIS是最好的編程語言(Python vs Visual basic vs Java)。我的背景是Java,PHP,Jquery和Javascript。還有正確方向的任何指針,例如文檔,資源等將受到極大的讚賞

+2

也許這會是更好的問:http://gis.stackexchange.com/ –

回答

0

您必須明確地瞭解它應該如何工作以及工具應該在何處放置所有輸入和輸出數據集,它們的結構,屬性表字段等等。 只有一個人知道所有這些東西 - 這是你。 它不是「輪子」,但它是一個自定義工具。您可以在內置模型構建器(偉大的東西)中構建模型,然後將該模型導出到Python腳本中。

看看這個視頻http://www.youtube.com/watch?v=mBSXBqEP-7Y

又一次。你必須知道:1)輸入數據集和參數2)你想得到什麼作爲輸出3)它應該如何工作

0

我每天都做這樣的事情,爲我的日常工作定製ArcGIS for utility companies天然氣,水和電。我們爲它們創建按鈕,做類似的事情 - 從房子一側的燃氣表點到最近的燃氣主幹線上的最近點,抽出一條服務氣體管線,在該點拆分主體,插入「T」點功能,並將服務線從「T」連接到儀表。

我們大多使用C#和一些VB.net。您可能想要考慮爲ArcGIS Explorer之類的東西創建Python加載項。或ArcMap的加載項。 資源管理器和ArcMap允許您將shapefile作爲地圖中的圖層添加。通過加載項,您可以輕鬆地在工具欄上添加一個按鈕,以便對地圖上的要素執行操作,例如查詢其屬性,修改其屬性和幾何圖形以在地圖上移動它們,以及創建新功能並填寫屬性並用X,Y或Lat/Long將它們放在地圖上。

因此,您的「計算最佳纜線路線」工具可能是您在工具欄上創建的一個按鈕(ICommand),首先: 1.讓用戶使用內置的選擇工具在地圖上選擇A點和B點在資源管理器/ ArcMap中。 2.讓用戶點擊您的自定義ICommand按鈕。 3.然後,您的ICommand.OnClick()方法將執行所有代碼,以根據地圖上其他要素的幾何形狀嘗試不同的路線,如街道邊緣,構建輪廓線,屬性線等,然後計算總成本,如挖土,瀝青,並獲得許可/權利的情況下,它通過財產線。

看到這裏在ArcGIS的ArcObjects API上手: http://help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/index.html#/ICommand_Interface/00430000001s000000/

+0

這是一個很棒的視頻,演示如何爲ArcGIS Desktop(資源管理器或ArcMap)製作VB.net/C#加載項http:/ /video.esri.com/watch/1888/building-add_dash_ins-for-arcgis-desktop-in-net –

0

創建一個Python加載項可能是最快和最簡單的方法,如果你只想做一些地理處理和部署工具,很多用戶。

但是,只要您需要用戶界面(不僅僅是簡單地選擇GIS數據源),您應該創建一個.Net AddIn(使用C#或VB.net)。

多年來我創建了許多AddIns,它們對包含大量複雜的COM註冊的舊ArcGIS「插件」有了巨大的改進。 AddIns很容易構建和部署。用戶易於安裝和卸載。

.Net具有出色的強大功能,可用於創建具有所需拖放類型的豐富用戶界面。還有很棒的書籍,論壇,樣品可以利用。