導航:首頁 > 文件教程 > sharpmap中文教程

sharpmap中文教程

發布時間:2023-03-03 10:13:07

js map.entrys 怎麼用

給個實例,代碼如下:
Array.prototype.remove = function(s) {
for (var i = 0; i < this.length; i++) {
if (s == this[i])
this.splice(i, 1);
}
}

/**
* Simple Map
*
*
* var m = new Map();
* m.put('key','value');
* ...
* var s = "";
* m.each(function(key,value,index){
* s += index+":"+ key+"="+value+"/n";
* });
* alert(s);
*
* @author dewitt
* @date 2008-05-24
*/
function Map() {
/** 存放鍵的數組(遍歷用到) */
this.keys = new Array();
/** 存放數據 */
this.data = new Object();

/**
* 放入一個鍵值對
* @param {String} key
* @param {Object} value
*/
this.put = function(key, value) {
if(this.data[key] == null){
this.keys.push(key);
}
this.data[key] = value;
};

/**
* 獲取某鍵對應的值
* @param {String} key
* @return {Object} value
*/
this.get = function(key) {
return this.data[key];
};

/**
* 刪除一個鍵值對
* @param {String} key
*/
this.remove = function(key) {
this.keys.remove(key);
this.data[key] = null;
};

/**
* 遍歷Map,執行處理函數
*
* @param {Function} 回調函數 function(key,value,index){..}
*/
this.each = function(fn){
if(typeof fn != 'function'){
return;
}
var len = this.keys.length;
for(var i=0;i<len;i++){
var k = this.keys[i];
fn(k,this.data[k],i);
}
};

/**
* 獲取鍵值數組(類似java的entrySet())
* @return 鍵值對象{key,value}的數組
*/
this.entrys = function() {
var len = this.keys.length;
var entrys = new Array(len);
for (var i = 0; i < len; i++) {
entrys[i] = {
key : this.keys[i],
value : this.data[i]
};
}
return entrys;
};

/**
* 判斷Map是否為空
*/
this.isEmpty = function() {
return this.keys.length == 0;
};

/**
* 獲取鍵值對數量
*/
this.size = function(){
return this.keys.length;
};

/**
* 重寫toString
*/
this.toString = function(){
var s = "{";
for(var i=0;i<this.keys.length;i++,s+=','){
var k = this.keys[i];
s += k+"="+this.data[k];
}
s+="}";
return s;
};
}

function testMap(){
var m = new Map();
m.put('key1','Comtop');
m.put('key2','南方電網');
m.put('key3','景新花園');
alert("init:"+m);

m.put('key1','康拓普');
alert("set key1:"+m);

m.remove("key2");
alert("remove key2: "+m);

var s ="";
m.each(function(key,value,index){
s += index+":"+ key+"="+value+"/n";
});
alert(s);
}

html代碼:

[c-sharp] view plain
<html>
<head>
<title>Test Map</title>
<mce:script language="javascript" src="map.js" mce_src="map.js"><!--

// --></mce:script>
</head>
<body>
<input type="button" value="test" onclick="testMap()">
</body>
</html>

Ⅱ 怎麼學好webgis開發

看到這個問題的前兩天,我正好看到一個大牛(GIS520社區站長)寫的經驗介紹。
貼下原文:
本文主要介紹小白如何成為初級WebGIS開發工程師,只適合對應人員參考(WebGIS前端的技能要求和互聯網前端要求有些差距的)。後續會有中、高級WebGIS開發工程師相關文章。
程序員的職業崗位,一般的公司會根據技術能力情況區分等級。每個等級有對應的薪資范圍。
如果不區分級別的,可能這個公司就不是以技術驅動的公司,研發團隊管理也不夠專業。一些大公司可能會像阿里那種級別劃分,p1~p10,騰訊網路也類似。小公司可能就簡單的劃分為初級開發工程師、中級開發工程師、高級開發工程師、技術經理、專家/技術總監。
小白一開始的目標就應該定位為初級開發工程師,然後通過努力,成長為中級到高級。那麼下面我介紹一下需要具備什麼樣的技能才能成為一名合格的WebGIS開發工程師。

技術基本要求
1. JavaScript、CSS/HTML掌握;
2. 至少掌握ArcGIS API for javascript 或者 openlayers一種;
3. 懂mysql或oracle或postgresql一種;
4. 掌握Arcgis server或者geoserver發布地圖服務並展示;
5. 懂得Java後端語言加分(不強制)。

以上要求,是基於我個人經驗以及對一些GIS公司工作的理解。如果你都能滿足,可以隨意找webgis的開發崗位了。具體什麼薪資,每個公司會有點區別,並且要看個人技術的總體情況。
注意我對技術的描述關鍵詞都是「掌握」,並沒有說是「熟練」,如果是熟練的話,那應該至少是中級開發工程師了。下面我在仔細的說明這些技能如何學習和對應初級WebGIS開發工程師的掌握程度。

1. JavaScript、CSS/HTML掌握
這里邊最重要的是html和JavaScript兩個,其次是css。對webgis公司來說,系統頁面和美觀效果和互聯網的網站相比,有些差距,所以css這邊要求不高;解釋一下js為什麼是最重要的,因為js是用的最多的,所有的web頁面邏輯都是用js來實現,一般你的js能力的大小可能決定你工作的效率和所能承擔的任務難度大小。
js、css、html三者綜合起來佔WebGIS崗位技術比為70%(就是滿分100分,這里佔了70分,看你能拿多少了)。
對於小白,我建議就是先學習html,然後了解一下css,最後好好學習js。學習難度上,html最好學,其次到js入門容易,最後到css,css入門和學好都比較花時間的,需要慢慢來,多練習。而js入門沒啥難度,但是學好,熟練,精通就難了。
這里推薦三本書:
《JavaScript權威指南》第六版
《JavaScript高級程序設計》第三版
《CSS權威指南》第三版

初學者不宜看過多類似的書,只需要一種讀好,讀懂一本就夠了,推薦的都是最好的之一。如果在一開始看不到,可以藉助一些網站,比如問w3cschool網站手冊,或者慕課網的一些視頻教程。循序漸進,基礎語法掌握後,嘗試多做練習。如果不知道做什麼,我幫你出題。

2. 至少掌握ArcGIS API for javascript 或者 openlayers一種
作為一名合格的WebGIS開發工程師,這個技能是不可少的。但是不管是arcgis還是openlayers地圖框架,都是一個api 庫。
這里解釋一下什麼是API,因為完全小白的人可能不了解。API 可以簡單的理解為一個工具箱,里邊有錘子、釘子、螺釘、螺母等工具或零件,你做一樣東西或者修一樣東西需要什麼工具,就找到這個工具箱,然後要用錘子就找到錘子使用就行了。這個是最簡單的比喻,實際上是有點區別,如果不懂得話,暫且可以這么理解。
要掌握ArcGIS API for javascript 或者 openlayers一種的前提是編程語言JavaScript過關。越熟悉越好。如果你熟悉使用JavaScript,對於ArcGIS API for javascript 或者 openlayers一種就可以做到,邊看文檔邊操作一樣的效果了。學習的話就到對應的官網看文檔就夠了,官方demo也比較詳細,沒有哪本書做得比官方文檔好。這里不推薦書籍。

3. 懂mysql或oracle或postgresql一種
工作上,我們可能會經常做一些業務功能,業務簡單的可以理解為增刪改查,而這些數據的操作都是基於資料庫的。資料庫,程序員是必須要掌握熟悉的技能,基本的sql要會寫。不管什麼資料庫,sql語言都很相似,一開始只需要選擇一種去學習就夠了。首選mysql或oracle。

4. 掌握Arcgis server或者geoserver 發布地圖服務並展示
這個是軟體層面的使用,真正工作上,可能發布地圖服務的工作是技術支持人員操作的,但是,說道學習上,開發人員也是必須要掌握的。
一方面,自己可以安裝軟體,然後通過學習發布地圖服務,有了地圖服務,自己可以在程序中調用地圖服務,可以做自己的webgis系統,編程練習等;
另一方面,只有了解了地圖服務這一層面的知識原理,你才能更好的理解到WebGIS是什麼,WebGIS地圖是如何展示和工作的。

5. 懂得Java後端語言加分(不強制)
一些小公司可能會把WebGIS開發工程師叫做GIS開發工程師,如果你懂得Java,可能會接觸到一些後端開發的工作,介面的書寫等。
懂得一門後端編程語言,我個人覺得是比較重要的,對日後學習的理解,前後端工作流程的理解都相當的重要。而且,你可以自己搭後端,自己寫前端頁面,這樣就可以獨自一人完成一個網站。
當你有能力一個人完成一個網站的時候,從資料庫表結構設計、後端框架搭建、介面設計編碼實現,到前端框架搭建、前端編碼頁面實現,整個過程你會學到很多東西。如果你懂後端了,不知道怎麼開發網站,你可以來找我,我指導你去設計,去實現。
當然,小白建議忽略這個技能要求,因為學習前面的技能要花費很多時間,日後你往更深的技術層次追求時,再考慮進去。

寫在最後
上邊的技能要求,針對的是小白或入門級的,如果你不是這個群體,可以忽略;如果你已經是初級或者中級開發工程師了,但是發現自己有些不足,那你就好好對自己的技術成長路線規劃一下。對於未知的技術學習建議:

1. 首先,掌握熟悉你所在公司所使用和涉及的技能
好處:幫助自己更好更快完成工作任務,這樣可以減少加班;領導發現你能力不錯,對自己也有好處。當然,如果你覺得公司使用的技術比較low,你在混,那建議你盡快離職,不要浪費自己的時間;如果你到哪都是混,那建議你還是轉行算了。

2. 不要滿足於現狀,不管是技術上,還是其他
技術無止境,一個公司的技術棧在長時間內不會變化的,這個時間可能是3年、5年或者10年。
當然,不變化的可能是傳統軟體公司,或者是小公司。不要覺得你工作幾年出去有經驗就吃得香了。要有危機感,跟進最新技術發展情況,觀察大公司流行使用什麼框架技術,自己嘗試去學習了解。
也不要找借口說沒時間學習,如果把自己玩游戲或看電視劇的時間用在學習上,會是什麼樣子呢?

Ⅲ GIS二次開發分哪些方向,分別使用哪些編程語言好

主要就是C/S B/S兩種結構的吧,通俗點說就是單機的系統和網頁的。二次開發主要藉助一些商業軟體提供的庫,比較著名的比如ESRI的ArcEngine,國內的比如超圖和武大吉奧和中地都有,當然如果不願意用商業的庫,網上還有很多開源的庫,OPENGL,SharpMap等等。個人感覺現在二次開發C/S的C#用的多一點,比較底層的話就是C++,B/S的大部分都是JAVA吧。個人感覺做二次開發編程語言無非就是自己用著順手就行,用什麼其實還真無所謂,反正都是人家的庫,用人家的介面。

Ⅳ 如何用sharpmap創建新的shp文件

在ArcGIS下,地形圖經過配准之後,就需要創建一些shp文件,進行矢量化的工作了。本節探討一下shp文件的創建過程。
(1)啟動ArcCatalog。
可以通過點擊ArcMap工具欄上像衣櫃的黃顏色的按鈕;也可以通過: 開始-〉程序-〉ArcGIS-〉ArcCatalog。
(2)在ArcCatalog中的目錄樹中,點擊要將shp存放的目錄,點擊右鍵,彈出快捷菜單-〉new-〉shp。
在Create new shapefile對話框中,輸入Name,即shp文件的文件名。
Feature Type:要建立的shp的類型(點、線或者面)。
Spatial Reference:空間參考。比如我們要矢量化的是1w的地形圖(如果是西安80),則點擊 Edit按鈕。
在空間參考屬性對話框中,點擊Select按鈕,選擇Projected Coordinate Systems->Gauss Kruger->Xian 1980。然後在xian1980目錄下選擇對應的投影參數。
至此shp創建了一半。
(3)在shp文件上右鍵,彈出快捷菜單,選擇屬性。在屬性對話框中點擊 fields,就可以創建屬性欄位了。
這樣shp文件就創建完成了,你就可以將shp文件裝在在ArcMap中就行矢量化的工作了。

閱讀全文

與sharpmap中文教程相關的資料

熱點內容
maya粒子表達式教程 瀏覽:84
抖音小視頻如何掛app 瀏覽:283
cad怎麼設置替補文件 瀏覽:790
win10啟動文件是空的 瀏覽:397
jk網站有哪些 瀏覽:134
學編程和3d哪個更好 瀏覽:932
win10移動硬碟文件無法打開 瀏覽:385
文件名是亂碼還刪不掉 瀏覽:643
蘋果鍵盤怎麼打開任務管理器 瀏覽:437
手機桌面文件名字大全 瀏覽:334
tplink默認無線密碼是多少 瀏覽:33
ipaddgm文件 瀏覽:99
lua語言編程用哪個平台 瀏覽:272
政采雲如何導出pdf投標文件 瀏覽:529
php獲取postjson數據 瀏覽:551
javatimetask 瀏覽:16
編程的話要什麼證件 瀏覽:94
錢脈通微信多開 瀏覽:878
中學生學編程哪個培訓機構好 瀏覽:852
榮耀路由TV設置文件共享錯誤 瀏覽:525

友情鏈接