1. 程式人生 > >用ArcGIS API for JavaScript在地圖上繪製圓多邊形

用ArcGIS API for JavaScript在地圖上繪製圓多邊形

問題描述:

    藉助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);
});

遇到一個問題:就是地圖上畫出的圓不是一個圓,是一個橢圓,沒找到原因,遇到的朋友交流一個解決辦法,謝謝。(猜想是我圖層的問題)