Ⅰ arcgis js api 如何獲取地圖中心點坐標
arcgis js api 根據屏幕輸入的經緯度坐標定位 從而獲取地圖中心點坐標。
Ⅱ 誰會arcgis前端開發給我點資料
http://www.iarcgis.com/?cat=9
Ⅲ 我是做前端開發的,項目中要用到地圖,請問我該如果學習arcgis
不用太深入,arcgis官網及有很多常用例子,如果不是很深入的話,應該是夠用的。
https://developers.arcgis.com/javascript/3/
Ⅳ GIS建庫平台都有哪些
用的最多的是ESRI系,整個流程大致如下:數據有arcsde坐中間件支持存放在關系系資料庫中,sde做數據引擎,前端主要是arcinfo,arcgis engine等桌面系列來支持和顯示,服務端當然就是arcgis server了……,這是當前gis最成熟的解決方案了,有很多成功案例和資料供你參考
再有就是oracle spatial(oracle的空間信息管理產品),也可以實現空間數據的管理,主要有,oracle spatial(後台資料庫),mapbuilder(類似於arcgis的desktop,arcmap),mapvierver(地圖引擎),這個平台也很強大,且不需要授權,但是在效率和前端開發上不如esri系,成功解決方案和資料不多……
當然sde支持各資料庫平台,選擇很多,但是需要授權,且費用不低
國內的個平台不好說,還不是很成熟……
Ⅳ ArcGIS MapObjects
MapObjects是一組基於COM技術的地圖應用組件,它由一個稱為Map的ActiveX控制項(OCX)和約45個自動化對象組成,在標準的Windows編程環境下,能夠與其他圖形、多媒體、資料庫開發技術組成完全獨立的綜合性應用軟體,是基於前端應用業務的良好的地圖開發環境。
MapObjects是全球最大的GIS軟體供應商ESRI公司在業界最早推出的GIS軟體組件,它起點高、功能強、結構優雅。ESRI在推出其每一個版本時,都採取了非常嚴謹慎重的態度。從1.0版本算起,MapObjects正式問世已經5年,才發展到2.1版本,可見每個版本質量控制之嚴格。事實上,MapOb-jects是全球范圍內使用最廣的GIS組件,也是潛在錯誤被最充分暴露並得以糾正的軟體組件,其穩定可靠性無可置疑。有經驗的程序員都知道,在軟體開發過程中,穩定性壓倒一切,而這正是MapOb-jects能被成功應用的重要前提和保證。
作為ESRI公司GIS軟體族的重要成員,憑借ESRI公司在GIS領域的領先技術和市場地位,MapObjects操作的數據資源與ESRI的旗艦產品ArcGIS完全兼容,從結構簡練的桌面數據格式(Shape文件)到以拓撲關系為基礎的經典ArcInfo Coverage,以至基於資料庫(DBMS)和ArcSDE基礎之上的Geodatabase,都能夠被MapObjects讀取。除了矢量數據以外,MapObjects還能夠讀取多種格式的柵格數據,如BMP、TIF、JPEG、ArcInfo Grid、Erdas Image等。MapObjects本身也能夠生成Shape文件格式的GIS數據,該格式已經成為GIS業界事實上的基於桌面應用的標准。採用MapObjects,能夠最大限度地與主流GIS技術融合,保護用戶在數據生產、功能開發,以及人員培訓上所做的一切投資。
MapObjects可以說得上是最優雅簡潔的GIS軟體組件。我們這么說,是因為它以最少的介面提供了常用的GIS功能,甚至GPS的動態特性,同時做到了結構合理,簡單明了,容易理解和擴展。與之相比,其他的GIS組件,要不是由於提供的功能過多而破壞了其內在的結構美並影響了用戶擴展的靈活性,就是結構過於簡單而使功能大大弱化。可以說,MapObjects在功能和結構兩者之間,取得了完美平衡,體現出了軟體的藝術性,給人帶來愉悅的感受。
1.數據結構
從MapObjects對地圖數據的組織方式來看,概念清晰,易於理解。它認為一個綜合性的地圖由多個圖層構成,圖層數據來源廣泛,既可以是GIS矢量圖層,也可以是CAD圖層,甚至影像數據。對於GIS和CAD的矢量圖層,其內部統一用記錄集(recordset)來表達,這樣就抹平了各種不同格式數據之間在內存中的表達鴻溝,簡化了程序員的數據觀點。記錄集正像關系資料庫中的二維表,行表示每個要素、列表示每個屬性。如果含有名稱為「Shape」的列,則該記錄集表示的是地圖要素,否則表示的是普通的資料庫表格。這樣,在數據結構內部就消除了GIS和MIS數據之間的差異,使程序員開發GMIS綜合應用系統易如反掌。
Shape欄位以面向對象的技術封裝了要素的圖形部分。它把圖形劃分為3 種類型,即點、線、面。這些幾何類型既簡單又復雜,說它簡單,是因為很容易理解,所有的圖形歸根到底都是由點、線、面構成的;說它復雜,是因為這些點、線、面並不是簡單的點、線、面,實際上它引入了一個部件(part)的概念,由點構成部件,部件由復合點構成、線和面則由部件構成。
中亞地區高光譜遙感地物蝕變信息識別與提取
如果只有一個部件,則它是簡單的線或面,如果有兩個以上的部件,則構成復合線或面。例如夏威夷群島,由很多小島嶼構成,但它是一個整體,其中的每個小島都可以用Part來表示,多個Part構成的多邊形放到一個Shape欄位中。
中亞地區高光譜遙感地物蝕變信息識別與提取
至於注記,則被描述為屬性欄位的自動標注。標注的位置由Shape欄位中的圖形要素決定,它可以是點、線或面,通常是線。標注的內容由普通屬性表示,既可以是字元型,也可以是整型或浮點型,通常是字元型。這樣,一切要素既可以按圖形表示,也可以按其屬性內容標注顯示,甚至可以兩者同時顯示,地圖顯示和制圖的方式是極為靈活的。
2.功能介面
再從MapObjects所提供的功能介面來看,常用的地圖應用基本上都能實現,例如:
∗ 創建新的Shape文件。
∗ 更新屬性或圖形數據。
∗ 繪制點、線、橢圓、矩形和多邊形等圖形要素。
∗ 繪制描述性的文本注記。
∗ 地圖簡單點取查詢、空間查詢、相對位置查詢、SQL邏輯條件查詢等。
∗ 空間統計。
∗ 地圖縮放和漫遊。
∗ 豐富的繪圖方式,如按值潤色、分類顯示、繪制密度圖、產生含各類圖表的專題圖等。
∗ 屬性自動標注。
∗ 顯示航空和衛星遙感影像。
∗ 動態顯示實時或順時數據,如GPS動態監測。
∗ 地址匹配。
∗ 投影變換。
∗ Buffer、Union、Intersect等空間分析運算元。
通過調用這些介面,能夠開發從簡單的電子地圖應用,至復雜的基於GIS/GPS/RS的3 S應用。利用空間分析運算元,甚至可以構造出具有一定復雜度的空間分析模型。由於提供了數據更新介面,用戶能夠擴展出自己的編輯工具。
Ⅵ 求問做一個webgis的基本流程
首先說明一下,如果題主想成為一名webgis開發者,可以參考這個鏈接小白如何成為webgis初級開發工程師
其次我們來說一下webgis的開發流程:
一般我們的開發採用兩條路線:esri方案和開源方案
esri方案舉個例子:
ArcgisServer+SqlServer+IIS+Arcgis js Api+前端基礎框架
開源方案舉個例子:
GeoServer+PostgresSql+Tomcat+OpenLayers+前端基礎框架
Webgis開發的大概流程是:
我們的矢量文件或者柵格文件,需要展示在網頁上的話,必須先通過GeoServver或者ArcgisServer發布成服務,然後這些地理伺服器就會提供出可供訪問的鏈接,然後用Openlayers或者Arcgis js api訪問就行。當然了我們Webgis系統不可能只有gis數據,還需要一些普通數據,這些就要在SqlServer或者PostgreSql里建表,然後我們的後台程序(C#或者Java)會連接這些資料庫,取到數據,仍然返回給前端,只不過此時數據的接收者就變成了前端那幾大框架,比如JQuery、Vue、Angular、React等等。
總結一下:
那麼開發一個Webgis到底需要些什麼呢?
GIS伺服器+基礎資料庫+網站部署環境+GIS Api框架+前端基礎框架
一個完整的Webgis系統,上面的東西都會有,歡迎補充和提問。
Ⅶ 有哪些GIS+JavaScript的開發經驗值得分享
python之於GIS與python之於IT類似 GISer採用python的原因也在於「人生苦短,我用python」 python在gis中的應用非常之廣 1. desktop GIS: ArcGIS從版本10開始不再支持原來的VBA,而改用python QGIS本身大部分的代碼特別是插件部分可以採用python進行開發 2. 地圖引擎 mapnik—基於C++引擎的頂級地圖引擎庫,和python結合比較緊密 mapfish—支持部分專題地圖在線製作 3. webgis python+geodjango 是最常用也最龐大的後台框架 GISer使用python一定要充分發揮python語言的特性 如ArcGIS集成phthon是利用了python的腳本語言特性 後台webgis等服務,可以發揮python作為語言黏合劑的特性,充分利用已有的GIS演算法庫
Ⅷ arcgis js調用影像圖操作
<!DOCTYPEhtml>
<html>
<head>
<metacharset="utf-8">
<metaname="viewport"content="initial-scale=1,maximum-scale=1,user-scalable=no">
<title>ImageryLayer-clientsidepixelfilter-4.6</title>
<linkrel="stylesheet"href="https://js.arcgis.com/4.6/esri/css/main.css">
<scriptsrc="https://js.arcgis.com/4.6/"></script>
<style>
html,
body,
#viewDiv{
padding:0;
margin:0;
height:100%;
width:100%;
}
</style>
<script>
require([
"esri/Map",
"esri/views/MapView",
"esri/layers/ImageryLayer",
"esri/layers/support/RasterFunction",
"esri/layers/support/DimensionalDefinition",
"esri/layers/support/MosaicRule",
"esri/core/watchUtils",
"dojo/domReady!"
],function(
Map,MapView,ImageryLayer,
RasterFunction,DimensionalDefinition,MosaicRule,watchUtils
){
//
varurl=
"https://sampleserver6.arcgisonline.com/arcgis/rest/services/ScientificData/SeaTemperature/ImageServer";
varmap=newMap({
basemap:"dark-gray"
});
varview=newMapView({
container:"viewDiv",
map:map,
zoom:3,
center:[-32,28],
popup:{
actions:[]
},
});
/**********************************************************************************************
*Variablewater_,.
*Thissnippetsetswater_
*.
**********************************************************************************************/
vardimInfo=[];//
///multiDimensionalInfo
//DEPTH:
dimInfo.push(newDimensionalDefinition({
dimensionName:"StdZ",//Waterdepth
values:[0],//Seasurfaceor0ft
isSlice:true
}));
//TIME:,2014
dimInfo.push(newDimensionalDefinition({
dimensionName:"StdTime",//timetempwasrecorded
values:[1396828800000],//WeekofApril7,2014
isSlice:true
}));
varmr=newMosaicRule({
multidimensionalDefinition:dimInfo
});
/******************************************
*Settherenderingruletothe
*"None"rasterfunction.Thiswillallow
*
*valueassignedtoeachpixel
*****************************************/
varrf=newRasterFunction({
functionName:"None"
});
/**********************************************************
*ThePixelFilter.Thisfunctionisusedtocolorthe
*pixels.Bydefault,eachpixelhasonebandcontaining
*atemperaturevalue.WithoutthepixelFilter
*.Wewill
*-red,
*green,andbluetogivecolortothelayer.This
*.See
*thegetTemp()
*.
*********************************************************/
functioncolorize(pixelData){
varpixelBlock,factor,minValue,maxValue;
if(pixelData===null||pixelData.pixelBlock===null||
pixelData.pixelBlock.pixels===null){
return;
}
//
pixelBlock=pixelData.pixelBlock;
//
minValue=pixelBlock.statistics[0].minValue;
maxValue=pixelBlock.statistics[0].maxValue;
//Thepixelsvisibleintheview
varpixels=pixelBlock.pixels;
//
varnumPixels=pixelBlock.width*pixelBlock.height;
//
//
factor=255.0/(maxValue-minValue);
//
vartempBand=pixels[0];
//
varrBand=[];
vargBand=[];
varbBand=[];
//
for(i=0;i<numPixels;i++){
//Getthepixelvalue(thetemperature)recordedatthepixellocation
vartempValue=tempBand[i];
//
varred=(tempValue-minValue)*factor;
//Setsacolorbetweenblue(coldest)andred(warmest)ineachband
rBand[i]=red;
gBand[i]=0;
bBand[i]=255-red;
}
//
pixelData.pixelBlock.pixels=[rBand,gBand,bBand];
pixelData.pixelBlock.pixelType="U8";//U8isusedforcolor
}
varlayer=newImageryLayer({
url:url,
renderingRule:rf,
pixelFilter:colorize,
mosaicRule:mr,
//
popupTemplate:{//autocastsasnewPopupTemplate()
title:"SeaSurfaceTemperature",
content:"{Raster.ServicePixelValue}°Celsius"
}
});
//
map.add(layer);
//
view.whenLayerView(layer).then(function(layerView){
watchUtils.whenFalseOnce(layerView,"updating",function(newVal){
view.popup.open({
title:"SeaSurfaceTemperature",
content:".",
location:view.center
});
});
});
});
</script>
</head>
<body>
<divid="viewDiv"></div>
</body>
</html>
Ⅸ 大神用什麼前端軟體開發arcgis
web前端開發是個非常新的職業,對一些規范和最佳實踐的研究都處於探索階段。總有新的靈感和技術不時閃現出來,新的技術也給網頁增加了許多新的活力
瀏覽器大戰也越來越白熱化,跨瀏覽器兼容方案依然是五花八門。為了滿足「高可維護性」的需要,我們需要更深入,更系統地去掌握前端知識.看你是側重在哪裡吧。
簡單點的,用個編輯器notepad++可以都包了,但是沒環境,只能把做完的文件擴展名變html進行查看。
如果你是主攻CSS,html的,IntelliJ IDEA,Dreamweaver什麼的比較老牌。
如果你是需要開發JS的。。。沒特別好的js糾錯的開發環境,大多數人還是notepad++將就一下,結合chrome瀏覽器的開發者環境(點F12)來查看錯誤什麼的。