_____หลังจากที่กลับมาจากงาน TUC 2009 เมื่อวานนี้ มีแต่คนถามผมว่าเป็นยังไงบ้าง ได้อะไรกลับมาบ้าง ได้แต่ตอบกลับไปว่าได้มาเยอะแยะเลย แรงบันดาลใจ เล่นเอางงกันไปเลยขี้เกียจอธิบายต่อ จริงๆแล้วจะดูเป็นรูปธรรมมากกว่านี้ถ้าได้ flash drive หรืออะไรที่มันจับต้องได้มาอวดพี่ๆน้องๆ แต่ไม่เป็นไรปีนี้ไม่ได้ปีหน้าเอาใหม่ แต่ที่ว่าได้แรงบันดาลใจนะได้จริงๆนะเพราะว่าเหมือนกับเราได้ไปเห็นว่ามีเทคนิคหรือเทคโนโลยีอะไรใหม่ๆที่ใช้ในการพัฒนา application ด้านนี้บ้าง ในความคิดผมก็ดูเหมือนว่า arcgis server น่าจะเป็นพระเอกมากตัวหนึ่งในเทคโนโลยีของ ESRI ตามมาได้สักพัก เพิ่งจะได้มาดูของจริงก็วันงานนี้เอง เวลาผมเดินดูงานตามบูตต่างๆ ผมชอบดูตัวอย่างการนำไปประยุกต์ใช้งานในด้านต่างๆ จริงๆแล้วหลีกเลี่ยงที่จะถามคำถามที่ลงลึกทางเทคนิคเกินไป สงสารคนตอบดูเหมือนว่าจะเหนื่อยเพราะงานนี้คนเยอะจริงๆ ยิ่งถามมากก็จะไปเพิ่มงานให้เค้าเปล่า

_____ช่วงบ่ายแวะเข้าไปฟัง Arcgis Server ในห้องบรรยายมาน่าสนใจมาก คนบรรยายก็น่ารักได้ใจจริงๆเลย กลับมาเลยมาซ้อมมือซะหน่อย อยากลองเล่นเลยแวะไปใช้ service ของ sample server ที่ http://sampleserver1.arcgisonline.com/arcgis/rest/services เสียดายจริงๆที่ไม่มี server ในไทย เพราะว่า sample server ผมว่าช้าได้ใจจริงๆ ผมลอง Arcgis Server ที่เป็น JavaScript API จริงๆแล้วมี Flex และ Silver light ด้วยครับ พอใช้  JavaScript API เลยหนีไม่พ้นที่ต้องเปิดตำราดู API ของ DOJO ด้วย สำหรับ ARCGIS Server รองรับทั้ง 3 หมวดงานใหญ่ๆคือ

  • Maps – แสดงผลแผนที่
  • Graphics – รองรับ Event handle บนฟีเจอร์
  • Tasks – รองรับ API ที่ติดต่อกับ class ต่างๆบน Arcgis Core เช่น
    • Querying
    • Finding addresses
    • Finding attributes
    • Identifying features
    • Geoprocessing
_____นอกจากนี้ก็ยังมี Tile Service ที่รองรับการทำงานสำหรับ Google Map และ Virtual Earth ด้วย รายละเอียดอ่านได้ที่ http://resources.esri.com/arcgisserver/ สำหรับ Arcgis Server ที่ Sample Server มีให้ลองทั้ง Rest และ Soap ผมเลือก Rest หน้าตาของ Rest ก็เป็นแบบนี้ครับ
{
  "serviceDescription" : "This service contains population density polygons, country boundaries, and city locations for the world. The map is color coded based on the number of persons per square mile (per every 1.609 kilometers square). Population data sources included national population censuses, the United Nations demographic yearbooks, and others. In general, data currency ranged from 1981 to 1994.",
  "mapName" : "Layers",
  "description" : "This service contains population density polygons, country boundaries, and city locations for the world. The map is color coded based on the number of persons per square mile (per every 1.609 kilometers square). Population data sources included national population censuses, the United Nations demographic yearbooks, and others. In general, data currency ranged from 1981 to 1994.\n",
  "copyrightText" : "(c) ESRI and its data partners",
  "layers" : [
    {
      "id" : 0,
      "name" : "CEISEN Population",
      "parentLayerId" : -1,
      "defaultVisibility" : true,
      "subLayerIds" : null
    }
  ],
  "spatialReference" : {
    "wkid" : 4326
  },
  "singleFusedMapCache" : false,
  "initialExtent" : {
    "xmin" : -187.354832172645,
    "ymin" : -205.437772593979,
    "xmax" : 184.404362321765,
    "ymax" : 229.041531401022,
    "spatialReference" : {
      "wkid" : 4326
    }
  },
  "fullExtent" : {
    "xmin" : -180,
    "ymin" : -90,
    "xmax" : 180,
    "ymax" : 90,
    "spatialReference" : {
      "wkid" : 4326
    }
  },
  "units" : "esriDecimalDegrees",
  "documentInfo" : {
    "Title" : "GlobalPopulation",
    "Author" : "serverxadmin",
    "Comments" : "",
    "Subject" : "",
    "Category" : "",
    "Keywords" : ""
  }
}
___STEP การเขียนโปรแกรม คล้ายๆกับ Mush Up api ทั่วไปครับ คือไม่ยาก สั้นๆไม่กี่บรรทัด ตัวอย่างง่ายๆจะเอา Arcgis Server มาทำงานกับ Google Map API
1. ใส่ Google Map API Key ลงไป
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAA7_kD1t_m22HBF9feCaDPZxQqVU-Nu5zxWx1DXHBbCVSjdvSgHBRp_uleGkEg3oCH1fHjexeV2lXfgA" type="text/javascript"></script>
2. initial ตัว Arcgis Server API ลงใน javascript ผ่าน dojo
<<script type="text/javascript">
dojo.require("esri.map"); var map; function init() { map = new esri.Map("mapDiv"); dojo.connect(map, "onLoad", addGeocodedPoint);
var mytile = new esri.layers.ArcGISTiledMapServiceLayer ("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Portland/Portland_ESRI_LandBase_AGO/MapServer");
map.addLayer(mytiled);
}
script type="text/javascript">
dojo.require("esri.map");
var map;
3. Add point marker จาก google map geocode
function addGeocodedPoint() {

	var theX;
        var theY;
	var addr = "Portland";
	geocoder = new GClientGeocoder();
	geocoder.getLatLng(addr,function(point) {
	      theX = point.lng();
	      theY = point.lat();
	      var msr = map.spatialReference;
	      var pointESRI = new esri.geometry.Point(Number(theX), Number(theY), msr);
	      var markerSymbol = new esri.symbol.SimpleMarkerSymbol();
	      markerSymbol.setStyle(esri.symbol.SimpleMarkerSymbol.STYLE_CIRCLE);
	      markerSymbol.setSize(12);
	      markerSymbol.setColor(new dojo.Color([255,0,0,0.5]));
	      var pointGraphic = new esri.Graphic(pointESRI, markerSymbol);
	      map.graphics.add(pointGraphic);
	 }
4. กำหนด init ให้กับ event onload ของ body
dojo.addOnLoad(init);
___สำหรับโค้ดตัวอย่างผมแกะมาจาก
 https://s3.amazonaws.com/GMaps/google_geocode_graphic.html
ตัวอย่างอื่นๆดูได้จาก
-http://resources.esri.com/arcgisserver/apis/javascript/gmaps/index.cfm?fa=home
-http://geochalkboard.wordpress.com/2009/01/20/enhancing-your-google-maps-applications-with-markermanager-and-progressbarcontrol/
- http://blogs.esri.com/Dev/blogs/arcgisserver/
http://mandown.co.nz/esri/arcgis-api-for-javascript-1-4-now-available/