ESRI ArcGIS Server Flex API 1.3 Version is released

November 10, 2009 by iamlaksh1

All:

Good to see the ESRI ArcGIS Server Flex 1.3 release. This release has update of nice features.  Especially JSON conversion and styles for infowindow certainly helps a lot.

  • The Short Summary:
    • Support for Flex SDK 3.4. The older 3.0 thru 3.3 are still supported.
    • More styling options for InfoContainer (used by InfoWindow and InfoSymbol).
    • Well-known ID 102100 (WGS_1984_Web_Mercator_Auxiliary_Sphere) is now a supported projection for Web Mercator-based overlays (including Bing Maps). It is also used in WebMercatorUtil for projecting coordinates between geographic and Web Mercator.
    • Miscellaneous API improvements and bug fixes.
  • Changes:
    • The parameters when creating a PictureFillSymbol have changed.
    • Outline is now the default property of the PictureFillSymbol.
    • The MapImage property on the GeoprocessorEvent has been removed since it was never used.
    • The Extent.intersects() method now accepts any geometry as argument (not just another extent).
    • The TRUE_SHAPE_WITH_MEASURE constant on the NAOutputLine has been removed since it is not supported on the server.
    • For line symbols, non-solid styles are now faster than before (though solid lines are still faster than non-solid).
    • It’s now possible to pan and use rubberband zoom even while draw toolbar is active.
    • The Web Mercator WKID has changed from 102113 (WGS_1984_Web_Mercator) to 102100 “WGS_1984_Web_Mercator_Auxiliary_Sphere” for VETiledLayer and WebMercatorUtil.
  • New event class:
  • New methods:
    • convertToJSON in FeatureSet to convert a FeatureSet into JSON.
    • convertFromJSON in FeatureSet to create a FeatureSet from JSON.
    • update in MapPoint.
    • getPoint and setPoint in Multipoint.
    • contains, insertPoint, removePoint and setPoint in Polygon.
    • insertPoint, removePoint and setPoint in Polyline.
  • New properties:
    • minScale, maxScale and isInScaleRange on Layer.
    • panDuration and zoomDuration on Map. The default has been changed from 500 to 300 milliseconds for faster panning and zooming.
    • infoWindowContent on Map allows you to specify the info window content inline.
    • xscale and yscale on PictureFillSymbol.
  • New styles:
    • borderAlpha, borderColor, borderThickness, infoPlacementMode, shadowAlpha, shadowAngle, shadowColor and shadowDistance on InfoContainer.
  • New and updated samples:
  • Bug fixes:
    • RouteTask now sends correct accumulateAttributes, impedanceAttribute, restrictionAttributes and directionsTimeAttribute values.
    • ArcIMSLayer no longer throws runtime errors for non-existing services.
    • GraphicUtil.getGraphicsExtent() no longer updates the extent of the first graphic with the outputExtent. <!–
    • CR124,639GPFeatureRecordSetLayer now always handles MapImage responses correctly.
    • –>

    • PictureMarkerSymbol now resizes correctly even if width and/or height is set before setting the source.

Generally all versions of ArcGIS API for Flex will work with any version of ArcGIS Server 9.3 and above. However, for certain functionality you need to use specific versions. For example, for routing, use ArcGIS API for Flex 1.2 (or later) and ArcGIS Server 9.3.1 (or later). See the API Reference for more details.

Project Management in GIS – Part II

October 23, 2009 by iamlaksh1

In continuation with Part I ,  let us see what is project management all about.   If we take 10 IT projects , out of ten one or two projects are completed on time, budget with full scope. The success on any IT projects is not an completion of project in time , budget and scope it also involves quality deliverables ranging from documentation to user support.

What is a Project - A project is a temporary endeavor undertaken to create a unique product , service or result.

What is Project Management - Project Management is application of knowledge , Skills , tools and techniques to project activities to meet the project requirement

  • Identifying the requirements – High level at the project intialising stage
  • Establish clear and achievable objectives
  • Balance competing demands for the quality , scope, time and cost
  • Adapt specifications to plans and approaches to stake holder requirements

Major Factors SCOPE, TIME, QUALITY and COST.  If we alter any single parameter and atleast other one variable gets affected.

Project Management Institute (PMI) developed Project Management Body of Knowledge (PMBOK) to codify the project management best practices. These practices applicable to any bigger projects especially for IT projects. This application PMBOK techniques reduces the risk

The PMBOK Guide is process-based, meaning it describes work as being accomplished by processes. This approach is consistent with other management standards such as ISO 9000 and the Software Engineering Institute’s CMMI.

What is CMMI ? – CMMI stands for Capability Maturity Model Integration.

CMMI is a process improvement approach that provides organizations with the essential elements of effective processes that ultimately improve their performance. CMMI can be used to guide process improvement across a project, a division, or an entire organization.  There different levels of CMMI model.  You can see wiki for more details here .  At outset, level 5 is considered as highest level and if any company certified for level 5 then they are following the process and ensuring standards as described by the Software Engineering Institue (SEI). These are quality parameters for projects health.

The big MNC’s and other middle level companies achive the CMMI status by rigourous auditing process and they have to confirm to standards as prescribed.  Having CMMI status is like branding for the quality.

Project Management in GIS – Part I

October 19, 2009 by iamlaksh1

Its been long time I am writing a post. These days very busy with projects and personal issues too. I’m back now.  There are lot of technical articles in my blog but nothing specific to project management.  Hence, I’m thinking to write about series of posts on Project Management in GIS.

The purpose of this post is how GIS projects are executed in IT company in a nutshell along with the basic tips and guidance on software development life-cyle.  Project refers here is only “Application development” .

I’m planning to cover the below topics -

1. How projects are obtained?

2. Basics of Project Management

3. Software Development Life Cycle in detail

  1. How projects are obtained?

For BIG Projects :-

Every IT company has pre-sales/business team  who exclusively working on getting the business.   When a potential client advertises for their project requirement through RFP (Request For Proposal).  This can be done by  several exclusive web sites where client place their advertisements.  There will be ‘n’ number of conditions laid by the client as part of the request. All the companies who has the met the conditions and competency and having enough experience will respond to the proposal with high level solution,  cost for execution of project (requirements given in advt)  and duration. Internally these RFP’s will be well analysed by technical team for the requirements and financial team and finally submitted .  Client will analyse proposals from all the bidders based on experience , size of company, reputation and previous experience on executing similar projects and other factors . Finally project will be awarded to any specific vendor.

In case of existing client

If the client has already engaged with vendor and they have some requirements/projects then methodology differs slightly. Client will provide set of high level requirements and ask for estimate . Vendor will prepare SOW (Statement of Work) or Work order briefing the scope of the software/product along with time line ,cost , resource and execution model. These estimates are ball-park or p80 estimate. i.e.  requirements are at high level hence projects are estimated are only 80% and remaining 20% may vary.

In general, there are two types of project execution – 1) Time and Material(T&M)  2) Fixed Price Project (FP)

T&M – These type of project is primarily for big projects or the project itself carries over into couple of phases or maintenance project.  Client is billed for actual working hours.

FP- These type of project is suitable for small projects with well defined scope or any tight dead-line projects. Here, client wants product to be delivered in a given time for set of requirements.  If there is any delay, then it attracts suitable penalty. Normally, vendors will be very selective for FP projects being risky when it is not handled properly.

Once the project was awarded, then project will be given to Delivery team.  Let us see how the projects are kicked off in next post.

Note:  Kindly provide your comments on this topic

ArcGIS JavaScript API 1.5 released

October 8, 2009 by iamlaksh1

Version 1.5 of the ArcGIS JavaScript API is now available! To take advantage of the new version, change your script reference to the ArcGIS JavaScript API to use v= 1.5, like this:

<script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.5" />

Version 1.5 adds:

  • Support for Firefox 3.5
  • Support for Dojo 1.3.2
  • Ability to force a mouse cursor style change
  • Optional HTTPS access of the ArcGIS JavaScript API
  • Bug fixes

For more details on these items, take a look at the What’s New in Version 1.5 document.

The ArcGIS JavaScript Extension for the Google Maps API and the ArcGIS JavaScript Extension for Microsoft Virtual Earth (now Bing Maps) were not updated at this release.

ArcGIS Web ADF, JavaScript, and REST

September 25, 2009 by iamlaksh1

Repost from Rex Blog

Currently the Web ADF does not include an ArcGIS Server data source that supports consuming ArcGIS Server services via REST. Instead, the pre-packaged ArcGIS Server Internet data source uses the SOAP API to consume ArcGIS Server services. From a platform perspective, this makes sense because the Web ADF is founded in a rich, server-side ASP.NET development environment where SOAP provides some clear benefits. Let’s look at this topic in more detail…

REST is a lightweight, non-standard format which can be used to request data over HTTP. REST is especially attractive to browser developers because it can be leveraged with JavaScript, JSON, and HTML to create an efficient, pure client solution – namely one that uses only browser logic and can initiate cross-domain requests for data. In general, requests contain a manually concatenated string of argument-value pairs and responses consist of standard content types, such as JSON (text) and images. While the benefits of using REST in a browser context with JavaScript are clear, other application environments present some hurdles. Since REST is not founded on a public standard, a developer needs documentation to learn how to interact with a REST service. This may suffice when working with client script, but developers working in an IDE with object-oriented languages like C#, VB.NET and Java often demand more. Why parse strings when you can work with explicit service types, discover parameters using intellisense, and utilize a proxy to manage requests\responses? This is where SOAP comes into the picture. SOAP is a standard W3C procotol which defines the XML message format for requests to and responses from a SOAP service. WSDL, another W3C standard language, provides the contract for how a consumer can interact with a SOAP service. While a SOAP message is an XML formatted string, a developer does not need to construct and parse it manually. Since SOAP is based on standard protocols and languages, toolkits for specific development environments are available to automatically construct native types. More specifically, the WSDL is used to construct a proxy class and a set of supporting types for use in an specific object-oriented environment. The proxy class exposes a set of operations (methods) which initiate Web requests. The supporting types are used to define inputs as value objects (termed ‘value objects’ because they only store values), which the proxy uses to construct a SOAP message. The response from a service can be deserialized by the proxy into one or more value objects. The benefit here is clear; a developer is able to use complex service-specific types native to their development environment to interact with a service.

The key difference between the use of REST and SOAP lies in the WSDL. The WSDL provides a central, language agnostic means for defining how to interact with a SOAP service. Different development environments can use the WSDL to construct the same set of types on-the-fly using a SOAP toolkit. REST does not define a compliment to the WSDL. As a result, documentation must be used to determine request and response content. Technically, you can manually construct a proxy and set of types to interact with a REST service, but without a central definition or standard (provided by a WSDL) the API structure will likely differ between developers.

So where does it make sense to leverage REST services in the Web ADF? REST services should be utilized in the browser, thus integrated with the Web ADF using the ADF JavaScript library. In this capacity, REST services may be used to enhance Web ADF application behavior and performance. One such area involves simply adding non-cached map services using pure client logic, something the Web ADF does not provide out-of-the-box. Currently non-cached map services use the AdfMapHandler class in ADF JavaScript to generate dynamic map images. This class requires Web-tier components; namely a map resource associated with a MapResourceManager and Map server control. It uses the ADF MapHandler to generate dynamic maps. The same applies for the Toc; it still relies heavily on Web-tier manipulation. You can, however, extend the ADF JavaScript DynamicLayer class to work with a non-cached service via REST.

The sample is available here.

There are a few caveats:

1) The layer (i.e. resource) is only available on the client; server components do not know about it. As a result, any requests to the server that work with map resources will not include this layer. In addition, most ADF controls require modification on the server to change their rendered content. This includes the Toc, so if you want the pure client layer to show up in an ADF Toc, you’ll need to customize Toc content using code on the server.

2) Using services secured with token-based authentication requires a proxy. Here’s a link to step on how to set this up: http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/arcgis/help/jshelp_start.htm#jshelp/ags_proxy.htm. Using a proxy is a popular solution for working around cross-site scripting restrictions in a browser. Abe Fettig has researched a number of these solutions and presented them in a blog post. Note, you can use a proxy even if authentication is not required.

In the sample I provided, if a proxy (via the proxyUrl property) is defined when creating a new DynamicRestLayer, the proxy will be used. In this case, a POST request is always generated to guarantee that all the input arguments are passed to the remote site. The response is JSON and contains the properties of the generated map image, including the url and extent. If no proxy is specified for the DynamicRestLayer, a simple GET request for a map image is made via a dynamic image tag. The image tag source is not subject to cross-site scripting restrictions in the browser, so we don’t need a proxy. Both IE7 and FireFox 2+ work great with the no proxy solution. Unfortunately IE6 is somewhat problematic (e.g. triggers erroneous requests). If you need to support IE6, you may want to go the proxy route.

This brings up an interesting point – the ADF JavaScript Map component is designed to render and blend maps using dynamic image tags. The image tag source is not subject to cross-site scripting restrictions. Since a REST map service can return the raw map image, the sample included with this post merely builds on REST capabilities and ADF JavaScript architecture. Another option involves using dynamic script tags whose source references a REST endpoint that generates JSON. The data returned from the REST service is evaluated as a JavaScript object when the tag is loaded or inserted in the page. This could also work with ADF JavaScript, but would require more implementation code. Interestingly, dynamic script tags are leveraged by the ArcGIS JavaScript API.

Note, the sample also shows how to use REST to access tiles in a cached map service with a pure client layer. It may be of interest since the url is standard across sites (e.g. you don’t need to know the virtual cache directory).

Map Cache – Painful Process

September 10, 2009 by iamlaksh1

We are undergoing painful process of caching our data.   Its been tough time and cumbersome job and ESRI Caching process is merely black box for developers.  Let me explain my issue in detail.

I’m caching with single point layer having 3 million records . I do single fused cache with ArcGIS Online scale levels and my machine is 16 GB RAM and dual core Windows Server . I use ArcGIS Server 9.3 ( NO SP1) and using 15 instances.  This caching occurs on a single box where my data is fetched from Orcale DB Server using ArcSDE . Caching is very fast for level 0 to 9. After level 10, caching takes very long time  and its fails in between during our night time. We could not identify the exact reason for the failure. When I searched the log files ( enabled ‘Verbose’) for error related  information I could not able to find single entry with world “Cache or Error” .

I have purposefully unchecked a option ” Close the box when caching is completed”  to ensure that caching is completed and successful. But still caching process is ended abruptfully.  I have following basic questions to understand the process better.

1. How to validate caching is 100% successfully completed?

2. In log files logs , Is there any way to log only caching related information in same or different file?

3. How to calculate , how much % of caching is completed?

4. When caching fails, is there any scripts or way to send out an email or notification by any means?. I using ArcCatalog for starting the caching process.

5.  During caching process when database server is down, what will be impact and error message .
6. In Update mode ‘Recreate Empty Tiles’ options says “Only tiles that are empty (have been deleted on disk), or that are new because the cache extent has changed or because new layers have been added to a multilayer cache, will be created. Old tiles will be left unchanged. ” Is that means “blank images” will be recreated when map extents and data are same.

7. What are reasons for generating ‘blank images’ for entire level

I’m looking for some good help on understanding these above points.

ArcGIS Server on Cloud Computing

August 28, 2009 by iamlaksh1

 

“Traditionally, organizations have managed and maintained computer systems using an on-site hosting model. Cloud computing allows for on-demand, commonly off-site, technology capabilities that are delivered as a service over the Web. With the advent of cloud computing, there are several alternative software deployment methods available that can significantly reduce an organization’s resources of time, money, and IT support. ESRI recognizes the benefits of cloud computing, when used appropriately, for increased cost optimization and to deliver greater customer satisfaction. However, many users are not quite ready to jump into public cloud computing, or are restricted from doing so. In these situations, these deployment tiers are replicated within a private cloud environment, maintained within the parameters of the host organization, but taking advantage of cloud practices, such as virtualization and self-service Web administration, within an on-site enterprise computing environment. Although cloud computing may not be suitable for all solutions, ESRI is working on products to be more cloud compatible. ArcGIS Server is being architected in such a way that services run efficiently and effectively, taking full advantage of the benefits offered by the Cloud on Amazon Elastic Cloud Compute (EC2). For example, ArcGIS Server instances will be able to be added and removed dynamically as expected on EC2 without disruption of service. Administration will be designed for cloud and virtualization environments, consistent with cloud-ready systems. We will provide additional details as we finalize the ArcGIS 9.4 release. In the meantime, ESRI is investing in the cloud computing environment with other solutions, as well. Business Analyst Online and the ArcGIS Server Geoportal Extension are both examples of Software as a Service (SaaS), as on-demand end-user applications. In addition, ArcGIS Online Sharing adds the ability for our customers to share their data as part of a growing online community. For developers interested in application platforms as a service, ESRI offers the ArcGIS Online Sharing REST API and the ArcGIS Web mapping APIs. Finally, to leverage both on-premise software and hosted services (Software + Services), ESRI customers can take advantage of using their ESRI software with ESRI hosted services through the ArcGIS Online Resource Center maps, GIS services, Web applications and Web Mapping APIs.”

 

Source:http://events.esri.com/uc/QandA/index.cfm?fuseaction=Answer&ConferenceID=2A8E2713-1422-2418-7F20BB7C186B5B83&QuestionID=2645

MXD Path update

August 8, 2009 by iamlaksh1

Many times  I have faced same problem as described in this post. During application deployment phase of we may need to change all the data-source path to prod database.  Usually we dont have luxury of having ArcGIS Desktop/Catalog for updating the path or do some modifications on production environment. This is primarily because of additional license is required or production server will be entirely on other network or domain.  Due to security reasons also ESRI ArcGIS is not allowed on prod environment.  This becomes annoying when client wants to change the symbology or change the data source for some reasons.

One way to get rid of this issue is maintaining relative path on the mxd.  If you want all your new maps to be stored with relative paths, go to the File > Document Properties dialog box and click the Data Source Options button. Check the option to make relative paths the default for new map documents. This setting is stored in the registry. If this box is not checked, the default is absolute paths.  This will definitely save your effort.

You can still change the path if you have ESRI .NET assemblies installed and you need to write some scripts to achive the same.

If you are working with ArcEngine Java then you can use this tool .   Here is link for MXD Path editor for Java on linux / Solaris OS.

But issue here is whenever you change the connection properties of SDE i.e. if you want to change password alone. Then it hurts more. Reading .sde file to get connection properties using AO is a not possible. You can get connection properties straight a way.

A simple way to get the connection properties that it contains is to use it to open the SDE workspace. Once the workspace is opened, you’ll be able to access the connection properties. Note, the password will remain encrypted – you won’t be able to see it in plain text. ESRI is NOT providing option to decrypt the password since by design as it as for security reason.

Long back I have faced one issue when I saved some layers for which the datasource is SDE  feature classes. I ‘ve used  an SDE connection without save password option. But still I got SDE Connection prompt when I open a map using IMapDocument interface.  I could not supress this prompt programmetically, am not sure whether this issue is solved now.

You can click below link for read on usage of relative paths on MXD. Save a layers using relative path is optimal solution I would suggest for a developer for hassel free deployment.

How to use relative path

Chennai’s digital map from SOI

August 8, 2009 by iamlaksh1

7 August 2009 CHENNAI, India:

“The Chennai Corporation’s efforts at technology-aided infrastructure development have got a fillip with the Survey of India completing the digitalised mapping of a majority of the city’s area. Survery of India has submitted 146 sq km of digitised maps of the city. The agency’s geo spatial data centre in the city is all set to complete the remaining 26 sq kms by the end of August. The digitial map, on a scale of 1:1000 is part of the GIS enabled services to help government departments to formulate schemes and plan infrastructure development. The utility mapping project of the Union Planning Commission was formulated with an objective to create large-scale digital maps with data like water, sewage, electricity, police and fire superimposed on them with the support of service agencies, like the corporation, Metrowater, Tamil Nadu Electricity Board and the police. The National Remote Sensing Agency (NRSA), Hyderabad had completed aerial photography of Greater Chennai in April 2007. Following clearance from the Defence, NRSA handed over the photos to the Survey of India, for digitising the map with additional attributes through physical survey. About 50 technical staff from various states like Rajasthan and neighbouring Andhra Pradesh prepared field attributes like names of streets and landmarks. Corporation properties like public convenience, ward offices, health posts, schools, community halls and street lights will be added soon. The civic agency has also floated tenders to survey the field attributes for another 50 sq km for which digitised maps are available. At present, the agency has data only on paper maps, which are inaccurate and difficult to manage.”

This is really good news for GIS researchers/professionals.  If this data has been used properly by the govt agencies like CMDA and Utilities Dept there can be lot of improvement in present system can be achieved.  I would appreciate, if this data has continuously updated and maintained by Govt dept will be valuable asset in all aspects of decision making. During my college days,  I have digitized entire chennai map and used them for my thesis.  I wish govt agency should share the data to researchers /educationalist

Yahoo Map in Adobe Flex

June 27, 2009 by iamlaksh1

You may be surprised on seeing this post if you are continuing following my blog posts and me.  I’m ESRI supporter and die hard of fan of  all their products.  But, I always extend my support to other good products in the industry. As ESRI taking path of Microsoft VE against Google Maps is an known issue.  If you don’t have MS VE or Google, still you can build mapping application using Yahoo Maps.!

Yahoo! Maps AS3 Component . This provides nice features equivalent MS/Google API. I dont have cost based comparison of all the three but am certain that Yahoo Maps will be equal to them.

The Yahoo! Maps API is a free service for any application that is free of charge and does not exceed the rate limit of 50,000 requests a day. Please see the information on rate limiting, API licensing and the maps API usage policy for more information about building your application with Yahoo! or requesting an exception to the rate limits.

I will come up with features comparison in near future as am making my hands dirty in learning the Yahoo Maps.