用ArcGIS API for JavaScript在地圖上繪製圓多邊形
阿新 • • 發佈:2019-01-01
問題描述:
藉助Arcgis的Api在地圖上繪製圓與多邊形,檢視Api的兩個類Circle和Polygon
Api地址:https://developers.arcgis.com/javascript/jsapi/
解決程式碼:
//畫圓畫多邊形 ArcGIS API for JavaScript require([ "esri/geometry/Circle", "esri/geometry/Polygon", "esri/Map", "esri/layers/GraphicsLayer", "esri/Graphic" ],function(Circle,Polygon,GraphicsLayer,Map){ var map = new Map("map",{ center:[-81.3765, 28.54175)], slider:false, maxZoom: 6, fadeOnZoom: true }); var graLayer = new GraphicsLayer(); //畫圓 Circle類 //定義要畫的圖形的線條顏色 var symbol = new SimpleFillSymbol().setColor(null).outline.setColor("red"); // lon 經度 lat緯度(圓的中心點) radius 半徑 function setCircle(lon,lat,radius){ var pt = new Point(lon,lat,map.spatialReference); var radius = radius; var circle = new Circle({ crenter: pt, geodesic: true, radius: radius }); var graphic = new Graphic(circle,symbol); graLayer.add(graphic); } //畫多邊形 Polygon function setPolygon(){ var polygon = new Polygon(new SpatialReference({wkid:4326})); //新增多邊形的各個角的頂點座標,注意:首尾要連結,也就是說,第一個點和最後一個點要一致 polygon.addRing([[-180,-90],[-180,90],[180,90],[180,-90],[-180,-90]]); var graphic = new Graphic(circle,symbol); graLayer.add(graphic); } //建立地圖服務圖層 var tiledMapServiceLayer = new ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/NGS_Topo_US_2D/MapServer"); map.addLayer(tiledMapServiceLayer); map.addLayer(graLayer); //開啟地圖 map.centerAndZoom(new Point(-81.3765, 28.54175)),6); });
遇到一個問題:就是地圖上畫出的圓不是一個圓,是一個橢圓,沒找到原因,遇到的朋友交流一個解決辦法,謝謝。(猜想是我圖層的問題)