![Page 1: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/1.jpg)
Best Practices for Designing Effective Map Services
Tanu Hoque
![Page 2: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/2.jpg)
What’s in this session
• Planning and design strategies • Publishing using ArcMap • Consuming the services in a web map or application • Performance tips
Mashup
Mapping
Please! Turn OFF cell phones
![Page 3: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/3.jpg)
Demo #1 The first attempt
![Page 4: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/4.jpg)
Demo recap - Publishing wizard and analyzer
![Page 5: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/5.jpg)
Organize data into logical groupings
Basemaps Geographic frame of reference Contain static vector
and raster data Reusable in multiple applications
Operational Layers Show a focused item of interest Support functionality
of the application Displayed on top of base map
![Page 6: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/6.jpg)
Three options for displaying map services
Logical groups in WebMap Options to display map service
Basemap layers As tiled/cached map service - Pre-drawn map tiles - Industry standard for basemaps (e.g. ArcGIS Online,
Google, Yahoo, Bing Map etc.)
Operation layers As dynamic map service - Server retrieves data, draws an image, sends image to
client As Feature Layer (aka client side graphics) - Drawn on the client side - Server sends features with geometries and attributes
![Page 7: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/7.jpg)
What should you cache? Pre-draw map tiles and serve them to clients
• Benefits - Best performance and scalability - Map image tiles leverage fast browser retrieval - Use complex cartography without extra overhead
• Ideals: - To serve large volume of traffic - For dataset that don’t get updated often
• Disadvantages - Requires additional efforts to
maintain cache as data gets updated
![Page 8: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/8.jpg)
What should you use dynamic map service for? Pre-draw map tiles and serve them to clients
• Benefits - No additional overheads upfront
- and when data gets updated
• Ideals: - For real-time or frequently changing data - To serve medium volume of traffic
• Disadvantages - Additional expense to read data
and generate images for each request
![Page 9: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/9.jpg)
Feature layer / Client side graphics Features drawn in browser
• Benefits - Server off loads works to the client app
• Ideals: - Interactive operational layers for mashups - Query or geoprocessing results - Layers that need to be thematically
symbolized on the fly - Web editing: Feature Services
• Disadvantages - Not suitable for larger dataset
• Source Service types: - Map services - Feature services
![Page 10: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/10.jpg)
Demo #2 Making basemaps
![Page 11: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/11.jpg)
JavaScript API code to draw dynamic images off a TiledMapService
var url = "http://{machine}/arcgis/rest/services/myTiledMapService/MapServer"; //Layer#1 – a tiled map service layer var layer1 = new ArcGISTiledMapServiceLayer (url, { displayLevels: [0, 1, 2, 3]}); //Layer#2 - same tiled map service as a dynamic map service layer var layer2 = new ArcGISDynamicMapServiceLayer(url); layer2.setMinScale(1155581);
![Page 12: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/12.jpg)
Demo recap - Created two basemaps - Dynamic images from titled map service
![Page 13: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/13.jpg)
Demo #3 - Creating map service for operation layer - Thematic mapping and large data visualization
![Page 14: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/14.jpg)
Dynamic layers New at 10.1
• Simple updates to the map service - Remove layers or reorder layers
• Thematic mapping
- Updates to renderers - Change data sources – including joins
• Adding content to the map service
- Add data from registered workspaces - Including query layers
• per-request changes to the map - Server side change - Stateless
• Optional capability of map services
![Page 15: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/15.jpg)
SQL Statement to aggregate and show results per county
SELECT c.objectid, c.shape, a.total FROM mysde.map.COUNTIES AS c INNER JOIN (SELECT FIPS, COUNT(*) AS total FROM mysde.map.TORNADOES GROUP BY cf) AS a ON c.FIPS = a.FIPS
![Page 16: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/16.jpg)
Demo recap - Create map service for operation layers - Fixed more analyzer warning
- Migrated to Enterprise Geodatabase - Converted XY Event layer to a table with spatial column
- Query Layer - Thematic mapping (aka DynamicLayer capability) - Static Layer/Table ID
![Page 17: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/17.jpg)
Demo #4 Put map services in use in a web application
![Page 18: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/18.jpg)
Demo recap - Use the map service in a web application
- Thematic mapping - Update the table with new records - Added new layers - Perform analysis using map server query
capabilities
![Page 19: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/19.jpg)
Performance Tips Mapping
• Cache
• Prefer Annotation over dynamic labeling
• Avoid on-the-fly projection
• Scale dependent layer visibility
![Page 20: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/20.jpg)
Performance Tips Geodatabase
• Use File Geodatabase over Enterprise Geodatabase - Use local copy on GIS server over network share
• For joins
- Keep both target and destination tables in the same database
• Enterprise Geodatabase tips
- Tune e.g. update statistics - Use direct connection
![Page 21: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/21.jpg)
Index
• Update Spatial Index
• Have indexes on Field(s)
- Used in attribute query - Used as ‘primary’ or ‘foreign’ fields in a join
• Note:
- Indexes are ignored when a field is used in a SQL methods etc. - e.g. WhereClause is “month(date) = 10”
![Page 22: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/22.jpg)
Query tips
• Avoid requesting all attributes unless you have to
![Page 23: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/23.jpg)
Feature and layer level security
• Use Server Object Interceptor (SOI)
• Can be used for other purposes e.g. watermarking etc.
![Page 24: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/24.jpg)
Automating publishing map services with Python
• Automate publish, start, stop map services - http://tinyurl.com/nnz4obq - http://tinyurl.com/opp2glg - http://tinyurl.com/nqj5h43
• The Server Admin Toolkit
- http://tinyurl.com/78hg32c
![Page 25: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/25.jpg)
Review
• Analyzed the map document
• Split map into multiple maps for basemap and operation layers
• Replaced XY Event layer with Enterprise Geodatabase
- ... and update data taking advantages of database triggers
• Strategies to show large data efficiently
- Use Hex Bins or County polygons to show aggregated data at smaller scale
![Page 26: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/26.jpg)
Review
• Used dynamicLayers capability for - Thematic mapping and - Adding new layers
• MapServer query supports
- Page thru results (and get the top features) - Summary statistics
![Page 27: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/27.jpg)
Thank you…
• Please fill out the session survey in your mobile app • Select “Best Practices for Designing Effective Map
Services” in the Mobile App - Use the Search Feature to quickly find this title
• Click “Technical Workshop Survey” • Answer a few short questions and enter any comments
![Page 28: Select “Best Practices for Designing Effective Map Services”](https://reader038.vdocuments.us/reader038/viewer/2022110221/58a2f0b91a28ab2e3b8bea54/html5/thumbnails/28.jpg)