This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
Geolocation and mapping using Google Maps servicesIvano Malavolta
Introduction
Geolocation
Google Maps Services
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2014.
http://www.ivanomalavolta.com
This document provides an overview of geolocation and mapping using Google Maps services. It defines geolocation as identifying the real-world location of an object like a mobile phone or computer. Mapping refers to map-making and cartography. The document reviews the navigator.geolocation API for accessing location data, the Google Maps Javascript API for embedding maps, and common overlays like markers and polylines that can be added to maps. It also summarizes services for obtaining directions and distance matrix information between locations.
Introduction
Geolocation
Google Maps Services
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2015.
http://www.ivanomalavolta.com
Geolocation and Mapping in PhoneGap applicationsIvano Malavolta
Geolocation and Mapping in PhoneGap applications
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2013.
http://www.ivanomalavolta.com
Core Location and Map Kit: Bringing Your Own Maps [Voices That Matter: iPhone...Chris Adamson
The iPhone SDK provides a nearly-complete toolkit for navigation and travel applications. Its Core Location framework uses a variety of technologies to pinpoint your location, direction, and orientation, while Map Kit easily serves up map images to show where you are. But there's a missing piece: what's nearby and how to get to it. This middle step, which Apple refers to as "bringing your own maps", is what your app needs in order to provide local search and turn-by-turn directions. In this presentation, we'll look at how iPhone apps can use third-party mapping APIs like MapQuest, Google Maps, NAVTEQ, and Bing, and how to connect between Core Location, geodata, and Map Kit.
Integration of Google-map in Rails ApplicationSwati Jadhav
This document discusses how to integrate Google Maps into a Rails application using the Gmap4rails gem. It covers adding maps and markers to models and controllers, configuring map options like zoom level and clustering, and addressing issues like full zoom-out for single pins or displaying multiple locations. The gem provides features like markers, circles, polygons, clustering, and customizing marker windows. Models need latitude, longitude, and an address method, and controllers generate JSON for markers.
This document discusses geolocation and provides a brief history. It explains that geolocation is the identification of a real-world geographic location. It then provides a brief history of geolocation techniques from ancient times using smoke signals and celestial navigation to modern GPS systems. The document also discusses geolocation applications and APIs as well as geocoding locations and using the geocoder gem.
Getting Oriented with MapKit: Everything you need to get started with the new...John Wilker
New in 3.0 Map Kit works with the Google Mobile Maps Service and features panning and zooming, custom annotations, current location and geocoding. This new framework opens up many new possibilities programs not previously possible. Come learn everything you need to know to get started as well as some tips and tricks to speed your programming along.
Geolocation and mapping using Google Maps servicesIvano Malavolta
Introduction
Geolocation
Google Maps Services
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2014.
http://www.ivanomalavolta.com
This document provides an overview of geolocation and mapping using Google Maps services. It defines geolocation as identifying the real-world location of an object like a mobile phone or computer. Mapping refers to map-making and cartography. The document reviews the navigator.geolocation API for accessing location data, the Google Maps Javascript API for embedding maps, and common overlays like markers and polylines that can be added to maps. It also summarizes services for obtaining directions and distance matrix information between locations.
Introduction
Geolocation
Google Maps Services
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2015.
http://www.ivanomalavolta.com
Geolocation and Mapping in PhoneGap applicationsIvano Malavolta
Geolocation and Mapping in PhoneGap applications
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2013.
http://www.ivanomalavolta.com
Core Location and Map Kit: Bringing Your Own Maps [Voices That Matter: iPhone...Chris Adamson
The iPhone SDK provides a nearly-complete toolkit for navigation and travel applications. Its Core Location framework uses a variety of technologies to pinpoint your location, direction, and orientation, while Map Kit easily serves up map images to show where you are. But there's a missing piece: what's nearby and how to get to it. This middle step, which Apple refers to as "bringing your own maps", is what your app needs in order to provide local search and turn-by-turn directions. In this presentation, we'll look at how iPhone apps can use third-party mapping APIs like MapQuest, Google Maps, NAVTEQ, and Bing, and how to connect between Core Location, geodata, and Map Kit.
Integration of Google-map in Rails ApplicationSwati Jadhav
This document discusses how to integrate Google Maps into a Rails application using the Gmap4rails gem. It covers adding maps and markers to models and controllers, configuring map options like zoom level and clustering, and addressing issues like full zoom-out for single pins or displaying multiple locations. The gem provides features like markers, circles, polygons, clustering, and customizing marker windows. Models need latitude, longitude, and an address method, and controllers generate JSON for markers.
This document discusses geolocation and provides a brief history. It explains that geolocation is the identification of a real-world geographic location. It then provides a brief history of geolocation techniques from ancient times using smoke signals and celestial navigation to modern GPS systems. The document also discusses geolocation applications and APIs as well as geocoding locations and using the geocoder gem.
Getting Oriented with MapKit: Everything you need to get started with the new...John Wilker
New in 3.0 Map Kit works with the Google Mobile Maps Service and features panning and zooming, custom annotations, current location and geocoding. This new framework opens up many new possibilities programs not previously possible. Come learn everything you need to know to get started as well as some tips and tricks to speed your programming along.
Boldly Go Where No Man Has Gone Before. Explore Geo on iPhone & AndroidBess Ho
A Star Trek fan developer will tell her story how she learn Objective-C, Cocoa-Touch Framework, MVC model, CoreLocation Framework to build her first two Tricorder apps “Sound Tricorder” and “Doctor Tricorder” in Apple App Store. She will explain mapping options in iphone SDK. She will explain how to use 3rd party SDK framework to detect geographic coordinates in both iPhone and Android app. Surely this will be a fun entertaining way to learn Geo in mobile.
This document provides an overview of mapping tools and techniques for sustainability projects. It discusses using Google Maps, Google Earth, and KML to map points, lines, polygons, images and other data types. It also covers embedding maps, working with large datasets, and examples of sustainability mapping projects.
Developing Applications with Microsoft Virtual Earthgoodfriday
This document discusses Microsoft's Virtual Earth mapping services. It provides an overview of the different Virtual Earth applications and APIs, including the AJAX API, MapPoint Web Service, and Live Search Maps. It also describes some key features of the Virtual Earth services like maps, geocoding, routing, and 3D environments. The document includes code samples for creating basic maps using the JavaScript API and adding shapes like polygons to the map. It also provides information on licensing and accessing the Virtual Earth APIs and services.
This presentation shares experiences using ArcGIS Server 9.3.1 and 10 to build cached basemap services. As ArcIMS reaches the end of its lifecycle, all WDNR web
mapping will be ported to the new development environment. Initially, four types of cached services are being
rolled out: terrain services (NED hillshades), imagery services (Landsat ETM+, NAIP 2008); feature basemap
services (ESRI Streetmap, DNR, and others); and a public lands layers service (WDNR, PADUS CBI, ESRI). This presentaion covers: guiding concepts, technical design issues, map rendering and labeling, caching
considerations and tips, and integration within an overall applications framework.
The document discusses setting up geolocation databases in a Ruby on Rails application using data from the GeoNames database. It describes researching different geolocation databases and choosing GeoNames for its large amount of data. It then details the process of importing the GeoNames data, adjusting the database schema and data to optimize size and performance, and setting up a rake task to import the cleaned data for use in a Rails app.
Python is a popular open source programming language that can be used with ArcGIS. It allows users to automate tasks, create custom tools and geoprocessing scripts, and customize their ArcGIS workflow. Python's simplicity, large library of packages, and integration with ArcGIS make it a powerful option for tasks like data analysis, geoprocessing, and managing ArcGIS services and databases. Resources for learning Python and ArcPy include online help, books, tutorials, forums like GeoNet, and training courses from ESRI. Presentations at ESRI Developer Summits have shown examples of using Python for scientific computing and raster analysis tasks.
Keeping Track of Moving Things: MapKit and CoreLocation in DepthGeoffrey Goetz
Adding a Map to an App and recording a User’s location as they use the App has become a common must have feature in may of todays popular applications. This presentation will go over the APIs for accomplishing such tasks including map annotations, dragging and dropping custom pins as well as delve into some of the finer aspects of the required location based calculations one needs to consider to find the center of the map or the distance between two points. Additionally the presentation will go over techniques to update a MapView with a moving object as well as positioning the image for the object properly along its heading. This will be a straight forward hands on development presentation with plenty of code examples.
The document discusses methods for obtaining accurate topographic maps and data in the field using portable devices like laser rangefinders and differential GPS. It describes using a laser rangefinder combined with a DGPS to quickly measure elevation and coordinate points in the field. The data can then be processed and interpolated using kriging to generate high-resolution digital elevation models and contour maps. Case studies are presented where this method was used to map sites in Turkey and Switzerland with sub-meter accuracy compared to RTK GPS, providing an inexpensive way to obtain detailed topographic data for field surveys and mapping.
Introduction to Game Programming TutorialRichard Jones
The slides to accompany the Introduction to Game Programming tutorial I ran at LCA 2010. The tutorial ran over 90 minutes with the participants following along.
How Quick Can We Be? Data Visualization Techniques for Engineers. Avni Khatri
The document discusses various data visualization techniques for engineers, including OpenHeatMap, Google Fusion Tables, Google Charts, Socrata, and the Google Maps API. It provides code examples for plotting data on maps using the Google Maps API, including adding markers to indicate locations and values, and drawing circles to represent other metrics. The goals are to visualize the number of people and percentage of women at different locations and to clearly show gender disparities over time.
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
Introduction to the course
Hybrid mobile development frameworks
Mobile thinking
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
This document discusses user-centered design (UCD) and key design principles. It defines UCD as a design philosophy and process that gives extensive attention to user needs, wants and limitations at each stage. The document outlines the typical UCD process, including analysis and planning, concept development, design, implementation, evaluation and launch. It also discusses four main design principles - axis, symmetry, hierarchy and rhythm - and provides examples of how they are applied in apps.
The Cordova framework
Recurrent app architecture
Cordova CLI
Debugging Cordova applications
My development environment
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
JavaScript basics
JavaScript event loop
Ajax and promises
DOM interaction
JavaScript object orientation
Web Workers
Useful Microframeworks
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
The road ahead for architectural languages [ACVI 2016]Ivano Malavolta
5th of April 2016. My presentation done at the 3rd Architecture Centric Virtual Integration Workshop (ACVI) workshop, co-located with WICSA and Comparch 2016, Venice, Italy.
Accompanying paper: http://www.ivanomalavolta.com/files/papers/IEEESoftware_2015.pdf
[2015/2016] Local data storage for web-based mobile appsIvano Malavolta
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
Boldly Go Where No Man Has Gone Before. Explore Geo on iPhone & AndroidBess Ho
A Star Trek fan developer will tell her story how she learn Objective-C, Cocoa-Touch Framework, MVC model, CoreLocation Framework to build her first two Tricorder apps “Sound Tricorder” and “Doctor Tricorder” in Apple App Store. She will explain mapping options in iphone SDK. She will explain how to use 3rd party SDK framework to detect geographic coordinates in both iPhone and Android app. Surely this will be a fun entertaining way to learn Geo in mobile.
This document provides an overview of mapping tools and techniques for sustainability projects. It discusses using Google Maps, Google Earth, and KML to map points, lines, polygons, images and other data types. It also covers embedding maps, working with large datasets, and examples of sustainability mapping projects.
Developing Applications with Microsoft Virtual Earthgoodfriday
This document discusses Microsoft's Virtual Earth mapping services. It provides an overview of the different Virtual Earth applications and APIs, including the AJAX API, MapPoint Web Service, and Live Search Maps. It also describes some key features of the Virtual Earth services like maps, geocoding, routing, and 3D environments. The document includes code samples for creating basic maps using the JavaScript API and adding shapes like polygons to the map. It also provides information on licensing and accessing the Virtual Earth APIs and services.
This presentation shares experiences using ArcGIS Server 9.3.1 and 10 to build cached basemap services. As ArcIMS reaches the end of its lifecycle, all WDNR web
mapping will be ported to the new development environment. Initially, four types of cached services are being
rolled out: terrain services (NED hillshades), imagery services (Landsat ETM+, NAIP 2008); feature basemap
services (ESRI Streetmap, DNR, and others); and a public lands layers service (WDNR, PADUS CBI, ESRI). This presentaion covers: guiding concepts, technical design issues, map rendering and labeling, caching
considerations and tips, and integration within an overall applications framework.
The document discusses setting up geolocation databases in a Ruby on Rails application using data from the GeoNames database. It describes researching different geolocation databases and choosing GeoNames for its large amount of data. It then details the process of importing the GeoNames data, adjusting the database schema and data to optimize size and performance, and setting up a rake task to import the cleaned data for use in a Rails app.
Python is a popular open source programming language that can be used with ArcGIS. It allows users to automate tasks, create custom tools and geoprocessing scripts, and customize their ArcGIS workflow. Python's simplicity, large library of packages, and integration with ArcGIS make it a powerful option for tasks like data analysis, geoprocessing, and managing ArcGIS services and databases. Resources for learning Python and ArcPy include online help, books, tutorials, forums like GeoNet, and training courses from ESRI. Presentations at ESRI Developer Summits have shown examples of using Python for scientific computing and raster analysis tasks.
Keeping Track of Moving Things: MapKit and CoreLocation in DepthGeoffrey Goetz
Adding a Map to an App and recording a User’s location as they use the App has become a common must have feature in may of todays popular applications. This presentation will go over the APIs for accomplishing such tasks including map annotations, dragging and dropping custom pins as well as delve into some of the finer aspects of the required location based calculations one needs to consider to find the center of the map or the distance between two points. Additionally the presentation will go over techniques to update a MapView with a moving object as well as positioning the image for the object properly along its heading. This will be a straight forward hands on development presentation with plenty of code examples.
The document discusses methods for obtaining accurate topographic maps and data in the field using portable devices like laser rangefinders and differential GPS. It describes using a laser rangefinder combined with a DGPS to quickly measure elevation and coordinate points in the field. The data can then be processed and interpolated using kriging to generate high-resolution digital elevation models and contour maps. Case studies are presented where this method was used to map sites in Turkey and Switzerland with sub-meter accuracy compared to RTK GPS, providing an inexpensive way to obtain detailed topographic data for field surveys and mapping.
Introduction to Game Programming TutorialRichard Jones
The slides to accompany the Introduction to Game Programming tutorial I ran at LCA 2010. The tutorial ran over 90 minutes with the participants following along.
How Quick Can We Be? Data Visualization Techniques for Engineers. Avni Khatri
The document discusses various data visualization techniques for engineers, including OpenHeatMap, Google Fusion Tables, Google Charts, Socrata, and the Google Maps API. It provides code examples for plotting data on maps using the Google Maps API, including adding markers to indicate locations and values, and drawing circles to represent other metrics. The goals are to visualize the number of people and percentage of women at different locations and to clearly show gender disparities over time.
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
Introduction to the course
Hybrid mobile development frameworks
Mobile thinking
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
This document discusses user-centered design (UCD) and key design principles. It defines UCD as a design philosophy and process that gives extensive attention to user needs, wants and limitations at each stage. The document outlines the typical UCD process, including analysis and planning, concept development, design, implementation, evaluation and launch. It also discusses four main design principles - axis, symmetry, hierarchy and rhythm - and provides examples of how they are applied in apps.
The Cordova framework
Recurrent app architecture
Cordova CLI
Debugging Cordova applications
My development environment
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
JavaScript basics
JavaScript event loop
Ajax and promises
DOM interaction
JavaScript object orientation
Web Workers
Useful Microframeworks
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
The road ahead for architectural languages [ACVI 2016]Ivano Malavolta
5th of April 2016. My presentation done at the 3rd Architecture Centric Virtual Integration Workshop (ACVI) workshop, co-located with WICSA and Comparch 2016, Venice, Italy.
Accompanying paper: http://www.ivanomalavolta.com/files/papers/IEEESoftware_2015.pdf
[2015/2016] Local data storage for web-based mobile appsIvano Malavolta
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
[2015/2016] AADL (Architecture Analysis and Design Language)Ivano Malavolta
This document introduces the Architecture Analysis and Design Language (AADL) and uses a radar system as an example to demonstrate AADL modeling concepts. It breaks down the radar system into hardware and software components, showing how to model processes, threads, devices, and connections between them. It also models the deployment of software processes onto hardware processors and memories. The example illustrates key AADL concepts like components, features, connections, bindings, and properties.
[2015/2016] Introduction to software architectureIvano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
Anatomy of a web app
HTML5
CSS3
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
Leveraging Web Analytics for Automatically Generating Mobile Navigation Model...Ivano Malavolta
29th of June 2016. My presentation done at the 5th IEEE International Conference on Mobile Services (MS 2016).
Accompanying paper: http://www.ivanomalavolta.com/files/papers/MS_2016.pdf
[2015/2016] User experience design of mobil appsIvano Malavolta
The Elements of User Experience
Navigation Model
Wireframes
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
This document outlines various mobile app design patterns for navigation, forms, search/filtering, tools, onboarding, feedback/affordance, and anti-patterns. It describes navigation patterns like springboards, lists, tabs, galleries; form patterns like sign in, registration, comments; search patterns like auto-complete and dynamic search; tool patterns like toolbars and contextual actions; onboarding patterns like tips and tours; and anti-patterns to avoid like novel notions and oceans of buttons. The document provides guidance on when and how to implement these common mobile design patterns.
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
Beyond Native Apps: Web Technologies to the Rescue! [SPLASH 2016 - Mobile! k...Ivano Malavolta
Slides of my keynote at the Mobile! 2016 workshop, co-located with SPLASH 2016 , Amsterdam.
This keynote talk provides a state-of-the-art overview of the development strategies and technologies for developing mobile apps, each of them with its own advantages and drawbacks. In this context, the use of web technologies is discussed as a promising investment for moving forward one of the most intriguing challenges in the world of mobile apps: its fragmentation with respect to mobile platforms (e.g., Android, Apple iOS, Windows Phone). A discussion of research challenges, and thus opportunities, close the talk.
This document discusses geospatial analytics and spatial capabilities on big data systems. It covers analyzing movement data through techniques like trajectory analysis and discretization. It discusses operational requirements for analyzing telematics data at large scales. It proposes using Apache Spark and geospatial libraries on Hadoop for distributed processing and storage. Key analytical challenges discussed include snap-to-road matching, trajectory clustering, and traffic event detection. Machine learning techniques like kernel methods and sequence analysis are proposed for solving these challenges.
This document introduces PostGIS, an extension to PostgreSQL that adds support for geographic objects allowing location queries to be run in SQL. It discusses geospatial data types and functions in PostGIS for working with spatial features like points, lines, polygons, and rasters. PostGIS allows importing and exporting geospatial data, integration with GIS software, and access to open mapping data sources. It also covers spatial queries and analysis in PostGIS using functions for distance, containment, intersections and more. Additional topics mentioned include pgRouting for routing/navigation, generating maps/images from PostGIS data, and real-world use cases.
The document discusses the Google Maps API which provides over 150 features for adding maps and mapping capabilities to web and mobile applications. It covers core map components like controls, overlays, and layers as well as services for geocoding, directions, elevation, street view and places. It also discusses customizing maps with styles, icons and tilt/heading controls as well as using the API across different languages and platforms. The document provides examples of common API tasks like placing markers, handling user input and clustering large datasets.
In this session, I will explain in depth how the iPhone gets your location and which APIs are available in the latest version of iOS.
Do you know that the iPhone combines three different radio signals to obtain your location?
Do you know how to track the location even when your app is not running?
Do you want to get an alert when the user arrives to one specific location?
Even if your app is killed or is not active?
Do you know how to debug your location code with the iOS simulator?
Come to the session and you’ll get the answers.
This session will be a presentation with some slides and some short demos with Xcode. No prior knowledge is necessary. Everyone is welcomed.
Ioannis Doxaras on GIS and Gmaps at 1st GTUG meetup Greece CoLab Athens
Google provides mapping and geospatial APIs and services like Maps API, Fusion Tables, and Latitude that allow developers to display base maps, overlay data, and build location-aware applications. These services can be used to organize web information geographically, access Google mapping data and services, and allow users to interact with maps. Google is focusing on improving these APIs and services to support new features, better performance on mobile, and new data management and analytics capabilities.
Data input and editing in GIS involves collecting, digitizing, and correcting geospatial data to build a GIS database. There are two main types of data sources: digital data which may require processing or conversion, and non-digital hardcopy data which must be digitized. Common digitizing methods include on-screen digitizing, scanning, and geocoding of hardcopy maps and plans. Data editing aims to correct locational, topological, and attribute errors introduced during data input. Thorough planning is required to determine the best data collection and input methods based on factors like data format, source, accuracy needs, and project requirements.
Second part of the Course "Java Open Source GIS Development - From the building blocks to extending an existing GIS application." held at the University of Potsdam in August 2011
Drone Surveying in Civil Engineering pptxsurekha1287
Drone surveying involves using drones equipped with cameras and sensors to conduct aerial surveys and create maps, models, and measurements. It is faster than traditional surveying methods, allowing high-accuracy data collection without needing surveyors on the ground. Drone data is processed using software to generate outputs like orthomosaic maps, elevation models, and contour maps. Common surveying techniques are photogrammetry using images and LiDAR using light pulses. Ground control points or real-time kinematic systems are used for precise positioning information. Drone surveying is useful for applications like construction monitoring, land development, and slope monitoring.
Where the %$#^ Is Everybody? Geospatial Solutions For Oracle APEXJim Czuprynski
This document discusses geospatial solutions for Oracle APEX, including:
- Using mapping plugins like Jeff Kemp's JK64 Google Maps plugin and Oracle's GeoSpatial (OGS) plugin to display locations on maps from longitude/latitude pairs or SDO_GEOMETRY columns.
- Capabilities of the plugins like geocoding, points of interest searches, and routing/directions (JK64) or geocoding and basic mapping (OGS).
- Considerations for using Google Maps APIs versus Oracle's native geospatial services, including potential cost differences.
- Examples of using the plugins to search for closest points of interest and display routes.
- Approaches for bulk geocoding using REST APIs
This document provides an introduction to Geographic Information Systems (GIS). It defines GIS as a computer system capable of assembling, sorting, manipulating, analyzing and displaying geographically referenced information. The document outlines the basic concepts of GIS including linking location to attribute data to visualize patterns and relationships. It describes some common uses of GIS in emergency services, environmental monitoring, business, industry, government and education. The document also provides an overview of ArcGIS, describing the ArcCatalog interface for organizing data, shapefiles for vector data, coordinate systems, attributes, the ArcMap interface for displaying data and performing analysis, and exporting maps. It concludes with instructions for hands-on exercises to become more familiar with GIS concepts and software.
The 2016 Remote Sensing Field camp will take the form of two projects.
A low tech, low cost aerial photography project using visible spectrum UAV/Ultralight Aircraft mounted cameras as the sensor to demonstrate that relatively low tech, low cost solutions can achieve surprisingly good results when compared to more commercial systems.
A more high tech, high cost terrestrial LiDAR collect of a building or structure of historical or architectural significance.
The scope of a project will influence all other aspects of the project, including its cost, timing, quality and risk.
Geographical Information Systems discusses GIS components, data modelling, and input/preprocessing of spatial data. GIS is an information system designed to work with geographically referenced data. It has four main components - hardware, software, data, and personnel. Data can be represented through vector or raster models and attributes are added to give meaning. Primary data is obtained directly while secondary data requires preprocessing. Data quality and coordinate systems must be considered for integration.
Infinum Android Talks #04 - Google Maps Android API utility libraryDenis_infinum
Android maps utils is an open-source library, which provides advanced features for our maps. We'll demonstrate the most important set of features on live examples, like heatmaps, marker clustering and spherical geometry algorithms.
Infinum Android Talks #04 - Google Maps Android API utility libraryInfinum
Android maps utils is an open-source library, which provides advanced features for our maps. We'll demonstrate the most important set of features on live examples, like heatmaps, marker clustering and spherical geometry algorithms.
Developing Windows Phone Apps with Maps and Location ServicesNick Landry
This session will not teach you why we are on Earth, but it will teach you how to find out where we are on it. Looking for the user? Find the phone. Thanks to standard built-in Location Services and hybrid positioning hardware, every Windows Phone knows where it is. In this session, ActiveNick shows you how to build a truly “smart” phone application by adding Location Intelligence Services (LIS) to it. Using Microsoft Visual Studio, the Windows Phones SDK and other geospatial APIs from Nokia, Google and Bing Maps, you will learn how to locate the device in the world using the phone GPS and other Location Services, display maps and manipulate them with touch gestures, geocode addresses into lat/long pairs, and display the results on a map using pushpins, UI elements and more. We’ll discuss the various mapping technologies, SDKs and APIs in the GIS world and explore how Windows Phone apps can participate in geospatial circles. Location Intelligence is a natural extension of mobility: Come learn how it’s done.
This document provides an introduction to Geographic Information Systems (GIS). It defines GIS as a system designed to store, manipulate, analyze and display spatially referenced data. The key components of a GIS are hardware, software and data. Common GIS software includes desktop programs like ArcGIS and open-source options like QGIS. GIS can incorporate different types of spatial data like raster, vector and remote sensing data along with associated attribute tables. Example applications discussed are in hydrology, including watershed analysis and flood modeling.
Spatial station, also known as ground-based sensing, is an instrument that captures and combines scanning, imaging, and surveying capabilities into a single solution. It has several advantages over a total station, including automatic acquisition of control points, less time consumption, integration of high-resolution digital images with 3D data, and lower probability of error. Spatial stations are preferred for surveying as they have all the functions of a total station while allowing for faster and more accurate data acquisition and enabling new applications through complementary technologies.
This document discusses 3D visualization capabilities in ArcGIS Pro. It introduces 3D concepts like scenes, surfaces, and data types that can be used in scenes. Scenes can have additional symbology options compared to 2D maps, including 3D models, extruded polygons, and animated water fills. Scenes also support lighting, shadows, and environmental effects. Scenes can be published and shared as web scenes. The document also discusses using time and range sliders to explore data through time or numeric ranges, and how to author and share geographic stories from Pro as videos using animation.
Similar to [2015/2016] Geolocation and mapping (20)
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Ivano Malavolta
The document discusses conducting experiments on the software architecture of robotic systems. It describes three experiments:
1) Identifying and evaluating "green" architectural tactics for energy-efficient robotics software by mining the ROS ecosystem.
2) Empirically exploring the performance and energy trade-offs of computation offloading for ground robots communicating over WiFi.
3) Analyzing how different 2D SLAM algorithms impact resource utilization in ROS-based systems, including metrics like energy consumption, CPU usage, memory usage, and map quality.
The slides of a short presentation I gave about my experience about working in the context of EU grants. It contains tips and tricks for the before/during/after phases of a EU project.
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)Ivano Malavolta
The Green Lab allows students to measure real software products for industry-driven experiments focusing on energy efficiency, performance, and other areas. It provides infrastructure for experimenting on software, including a master course, platform, and collaboration platform. The lab contains a green computing cluster managed by Proxmox virtualization software, which hosts various virtual machines for running experiments. Hardware in the cluster includes servers, workstations, and a smartphone test farm for controlling Android devices remotely. Students use tools like Android Runner and wattsup meters to automate experiments measuring aspects like energy consumption of mobile apps. The Green Lab also serves as a learning environment where students conduct experiments for class projects and contribute to open source tools like Android Runner.
This document discusses software sustainability from Ivano Malavolta, an assistant professor. It discusses how ICT is unsustainable due to the large amounts of energy consumed by platforms like YouTube. It also discusses research on improving the energy efficiency of software, including a case study on the KPMG software platform. Additionally, it discusses experiments on the energy impact of progressive web apps and service workers. Finally, it proposes using design decision maps to help frame sustainability concerns when planning software projects.
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Ivano Malavolta
Slides of my presentation at the NIER track of the 41th International Conference on Software Engineering (ICSE 2019).
The paper is available here: http://www.ivanomalavolta.com/files/papers/ICSE_2019_NAPPA.pdf
How Maintainability Issues of Android Apps Evolve [ICSME 2018]Ivano Malavolta
Slides of my presentation at the Research track of the 34th International Conference on Software Maintenance and Evolution (ICSME 2018).
The full paper is available here: http://www.ivanomalavolta.com/files/papers/ICSME_2018.pdf
Collaborative Model-Driven Software Engineering: a Classification Framework a...Ivano Malavolta
Slides of my presentation at the Journal first track of the 40th International Conference on Software Engineering (ICSE 2018).
The accompanying extended abstract is available here: http://www.ivanomalavolta.com/files/papers/ICSE_2018_JournalFirst.pdf
The original TSE paper is available here: http://www.ivanomalavolta.com/files/papers/TSE_2017.pdf
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Modeling behaviour via UML state machines [Software Design] [Computer Science...Ivano Malavolta
This document provides an introduction to modeling behavior using UML state machines. It discusses key concepts like states, transitions, events, and state types. States represent when an object is active and can execute activities. Transitions change the object's state in response to events and can include actions. Event types include signals, operation calls, time-based and change events. The document also covers state machine notation including initial/final states, decisions nodes, parallel/orthogonal states, history states, and entry/exit points. An example state machine is provided and questions are asked to help understand state machine execution order and values.
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Modeling and abstraction, software development process [Software Design] [Com...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
[2017/2018] AADL - Architecture Analysis and Design LanguageIvano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
[2017/2018] Introduction to Software ArchitectureIvano Malavolta
This document provides an introduction to software architecture concepts. It defines software architecture as the selection of structural elements and their interactions within a system. Common architectural styles are described, including Model-View-Controller (MVC), publish-subscribe, layered, shared data, peer-to-peer, and pipes and filters. Tactics are introduced as design decisions that refine styles to control quality attributes. The document emphasizes that architectural styles solve recurring problems and promote desired qualities like performance, security, and maintainability.
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.it/.
http://www.ivanomalavolta.com
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/how-axelera-ai-uses-digital-compute-in-memory-to-deliver-fast-and-energy-efficient-computer-vision-a-presentation-from-axelera-ai/
Bram Verhoef, Head of Machine Learning at Axelera AI, presents the “How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-efficient Computer Vision” tutorial at the May 2024 Embedded Vision Summit.
As artificial intelligence inference transitions from cloud environments to edge locations, computer vision applications achieve heightened responsiveness, reliability and privacy. This migration, however, introduces the challenge of operating within the stringent confines of resource constraints typical at the edge, including small form factors, low energy budgets and diminished memory and computational capacities. Axelera AI addresses these challenges through an innovative approach of performing digital computations within memory itself. This technique facilitates the realization of high-performance, energy-efficient and cost-effective computer vision capabilities at the thin and thick edge, extending the frontier of what is achievable with current technologies.
In this presentation, Verhoef unveils his company’s pioneering chip technology and demonstrates its capacity to deliver exceptional frames-per-second performance across a range of standard computer vision networks typical of applications in security, surveillance and the industrial sector. This shows that advanced computer vision can be accessible and efficient, even at the very edge of our technological ecosystem.
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
How information systems are built or acquired puts information, which is what they should be about, in a secondary place. Our language adapted accordingly, and we no longer talk about information systems but applications. Applications evolved in a way to break data into diverse fragments, tightly coupled with applications and expensive to integrate. The result is technical debt, which is re-paid by taking even bigger "loans", resulting in an ever-increasing technical debt. Software engineering and procurement practices work in sync with market forces to maintain this trend. This talk demonstrates how natural this situation is. The question is: can something be done to reverse the trend?
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
Conversational agents, or chatbots, are increasingly used to access all sorts of services using natural language. While open-domain chatbots - like ChatGPT - can converse on any topic, task-oriented chatbots - the focus of this paper - are designed for specific tasks, like booking a flight, obtaining customer support, or setting an appointment. Like any other software, task-oriented chatbots need to be properly tested, usually by defining and executing test scenarios (i.e., sequences of user-chatbot interactions). However, there is currently a lack of methods to quantify the completeness and strength of such test scenarios, which can lead to low-quality tests, and hence to buggy chatbots.
To fill this gap, we propose adapting mutation testing (MuT) for task-oriented chatbots. To this end, we introduce a set of mutation operators that emulate faults in chatbot designs, an architecture that enables MuT on chatbots built using heterogeneous technologies, and a practical realisation as an Eclipse plugin. Moreover, we evaluate the applicability, effectiveness and efficiency of our approach on open-source chatbots, with promising results.
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
Discover top-tier mobile app development services, offering innovative solutions for iOS and Android. Enhance your business with custom, user-friendly mobile applications.
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
"Choosing proper type of scaling", Olena SyrotaFwdays
Imagine an IoT processing system that is already quite mature and production-ready and for which client coverage is growing and scaling and performance aspects are life and death questions. The system has Redis, MongoDB, and stream processing based on ksqldb. In this talk, firstly, we will analyze scaling approaches and then select the proper ones for our system.
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
AppSec PNW: Android and iOS Application Security with MobSFAjin Abraham
Mobile Security Framework - MobSF is a free and open source automated mobile application security testing environment designed to help security engineers, researchers, developers, and penetration testers to identify security vulnerabilities, malicious behaviours and privacy concerns in mobile applications using static and dynamic analysis. It supports all the popular mobile application binaries and source code formats built for Android and iOS devices. In addition to automated security assessment, it also offers an interactive testing environment to build and execute scenario based test/fuzz cases against the application.
This talk covers:
Using MobSF for static analysis of mobile applications.
Interactive dynamic security assessment of Android and iOS applications.
Solving Mobile app CTF challenges.
Reverse engineering and runtime analysis of Mobile malware.
How to shift left and integrate MobSF/mobsfscan SAST and DAST in your build pipeline.
2. Roadmap
Introduction
Geolocation
Google Maps Services*
* In this lecture we refer to Google Maps Services only because of space limitations.
Other services, like Yahoo!Place Finder, Open Street Maps, etc. can be used as valid
alternatives
3. Geolocation
Geolocationis the identificationofthe real-worldgeographic
locationof an object, like:
• mobile phone
• Internet-connected computerterminal
Geolocationmay refer to the practiceof assessing the location,
or to the actualassessed location
4. Mapping
Mapping usually refers to map-making and often used instead
of cartography
In Cordovayou can use anyJS libraryfor maps:
GMaps, Leaflet,Bing Maps,
Cordovaplugins for nativemaps
5. Geolocation VS Mapping
Geolocationrefers to geospatial
data collectionand manipulation
ex. LatLon calculations,geocoding, etc.
Mapping refers to the activityof
creatinga map through some
cartographicworks
ex. maps, layers,markers, routes, etc.
6. Roadmap
Introduction
Geolocation
Google Maps Services*
* In this lecture we refer to Google Maps Services only because of space limitations.
Other services, like Yahoo!Place Finder, Open Street Maps, etc. can be used as valid
alternatives
8. Geolocation
The API itself is agnostic of the underlying locationinformation
sources
Common sources of locationinformationinclude
• Global Positioning System (GPS)
• locationinfo from IP address, RFID, WiFi,GSMcell IDs, etc.
No guarantee is given thatthe API returns the device's actual
location
This API is based on the W3C Geolocation API Specification,
and only executes on devices thatdon't alreadyprovide an
implementation
10. getCurrentPosition
It returns the device's currentposition
getCurrentPosition(win, [fail], [options]);
win
callbackfunction witha Position parameter
fail
errorcallback
options
geolocation options
11. watchPosition
It gets the device's position when a change in position has been
detected
var watchID = watchPosition(win, [fail], [options]);
win
callbackfunction witha Position parameter
fail
errorcallback
options
geolocation options
12. clearWatch
Stop watching the Geolocation referenced by the watch ID
parameter
clearWatch(watchID);
watchID
ID returned by geolocation.watchPosition
13. Options
• enableHighAccuracy (Boolean)
– receive the best possible results (e.g., GPS)
– by default Cordovauses network-based methods
• timeout (Number)
– the maximum length of time (msec) thatis allowed to pass from
the call until the corresponding callback is invoked, otherwise the
error callback is called
• maximumAge (Number)
– accept a cached position whose age is not greater thanthe
specified time in milliseconds
14. The Position object
Contains the data createdby the geolocation API
It is passed as argument to the success callbacksof
getCurrentPosition and watchPosition
Properties:
• coords
– the geographic Coordinates
• timestamp
– creation timestampin milliseconds
15. The Coordinates object
Properties:
• latitude (Number)
– Latitude in decimal degrees
• longitude (Number)
– Longitude in decimal degrees
• accuracy (Number)
– Accuracy level of the latitude and longitude
coordinates in meters
http://bit.ly/Ln6AtM
16. The Coordinates object
• altitude (Number)
– Height of the position in meters above the ellipsoid
• altitudeAccuracy (Number)
– Accuracy level of the altitudecoordinatein meters
http://bit.ly/Ln7V3H
notsupported in Android
17. The Coordinates object
• heading (Number)
– Direction of travel, specified in degrees counting clockwiserelativeto
the true north
• speed (Number)
– Current ground speed of the device, specified in meters per second
http://bit.ly/LnanXV
The Compass API in Cordova is
exclusively dedicated to the heading
property
18. Position Error
Encapsulates the error code resulting from a failed position
captureoperation
It contains a pre-defined errorcode
PositionError.PERMISSION_DENIED
PositionError.POSITION_UNAVAILABLE
PositionError.TIMEOUT
19. Example
var options = {
maximumAge: 3000,
timeout: 5000,
enableHighAccuracy: true
};
navigator.geolocation.watchPosition(win, fail, options);
function win(pos) {
var el = ‘<div>Latitude: ‘ + pos.coords.latitude + '</div>’;
el += ‘<div>Longitude: ‘ + pos.coords.longitude + '</div>’;
el += ‘<div>timestamp: ‘ + pos.timestamp + '</div>’;
$(‘#block’).html(el);
}
function fail(err) {
console.log(err.code);
}
22. watchHeading
var watchID = watchHeading(win, fail, [options]);
It gets the device's heading at a regular interval
win
callbackfunction withan Heading parameter
fail
errorcallback
options
compass options
23. Options
• frequency (Number)
– How often to retrieve the compass heading in milliseconds
• filter(Number)
– in iOS the success callback of a watchHeading call can also be
called once the sensed heading values are greater than a given
filter
– the filter optionrepresents the change in degrees
required to initiatea watchHeading success callback
– when this value is set, frequency is ignored
iOS only
25. The CompassHeading object
Properties
• magneticHeading (Number)
– the heading in degrees from 0-359.99 ata singlemoment in time
• trueHeading (Number)
– The headingrelativeto the geographic North Pole
• headingAccuracy (Number)
– the deviation in degrees between the reported headingand the true
heading
• timestamp (Number)
– The time atwhich this headingwas determined in milliseconds
26. The CompassError object
Encapsulates the error code resulting from a failed heading
captureoperation
It contains a pre-defined errorcode
– CompassError.COMPASS_INTERNAL_ERR
– CompassError.COMPASS_NOT_SUPPORTED
27. Compass example
var options = { frequency: 2000 };
navigator.compass.watchHeading(win, fail, options);
function win(compass) {
console.log(compass.magneticHeading);
}
function fail(err) {
console.log(err.code);
}
28. Roadmap
Introduction
Geolocation
Google Maps Services*
* In this lecture we refer to Google Maps Services only because of space limitations.
Other services, like Yahoo!Place Finder, Open Street Maps, etc. can be used as valid
alternatives
29. Google Maps API
The Google Maps JavascriptAPI lets you embed Google Maps in
your app
The latest version (v3) of this API
is especially designed to be faster
and more applicableto mobile
devices
http://www.cibando.com
30. Google Maps API
The API provides a number of utilitiesfor manipulatingmaps
and adding content to the map through a varietyof services
You can see it like a way to programmaticallymanagemaps on
http://maps.google.com
32. GMaps Basics
Here is its constructor:
google.maps.Map(htmlElement, options);
• htmlElement
– a reference to a HTML element where you wantthe map to be
inserted
• for example <div id=“map”></div>
• options
– an objectliteral containinga set of properties
33. GMaps Basics
The options parametermay have these properties:
• center (google.maps.LatLng)
– the center of the map
• zoom (Number)
– the initial zoom-level of the map
• mapTypeId (google.maps.MapTypeId)
– whatkind of map type that would initially beused
– The mostcommon typeis google.maps.MapTypeId.ROADMAP
34. GMaps Basics
• draggable (boolean)
– if false, prevents the map from beingdragged
• minZoom (Number)
– the minimum zoom level which will be displayed on themap
• maxZoom (Number)
– the maximum zoom level which will be displayed on the map
• zoomControl(boolean)
– if false, hides the control to zoom in the map
• etc...
35. The LatLng object
It is a point in geographical coordinates:
• latitude
• longitude
ex. new google.maps.LatLng(42.3606,13.3772);
36. The LatLngBounds object
It represents a rectangle in geographicalcoordinates
• south-west
• north-east
var pt = new google.maps.LatLngBounds(
new google.maps.LatLng(57.8, 14.0),
new google.maps.LatLng(57.8, 14.0)
);
contains(pt), intersect(bounds), getCenter(),
union(bounds), etc.
37. Map Types
You must specificallyset an initialmap type atthis time as well
mapTypeId: google.maps.MapTypeId.ROADMAP
Supportedtypes:
• ROADMAP
• SATELLITE
• HYBRID
• TERRAIN
38. Example
// in your JS file
var options = {
center: new google.maps.LatLng(-34.397, 150.644),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new
google.maps.Map(document.getElementById(“map”),
options);
// somewhere in your HTML templates
<div id=“map”></div>
39. GMaps Events
There are 2 types of events:
• User events
– are propagated from the DOM to the GoogleMaps API
– for example touchend
• MVC state change notifications
– reflect changes in Maps API objects and arenamed usinga
property_changedconvention
– for example the API will fire a zoom_changed event on a map when the
map's zoom level changes
40. Map Event Listeners
You register for event notificationsusing the addListener()
event handler
google.maps.event.addListener(obj, eventname, callback)
• obj: the object on which the eventcan occur
– ex. the wholemap, a marker, etc.
• eventname: an event to listen for
– ex. “click”, “center_changed”, “zoom_changed”, etc.
– every objects can respond to different types of events
• callback:functionto call when the specified event occurs
41. Example
var opt = {…};
var map = new
google.maps.Map(document.getElementById(‘map’), opt);
google.maps.event.addListener(map, 'click',
function(event) {
var marker = new google.maps.Marker({
position: event.latLng,
map: map
});
map.setCenter(marker.getPosition());
}
);
42. GMaps Overlays
Overlaysare objects thatyou “add” on the map, like
• points,
• lines,
• areas,
• collectionof other objects
They are tied to latitude/longitudecoordinates
à so they move when you drag or zoom the map
http://bit.ly/Lztdac
43. Types of Overlays in GMaps
• Marker
– represent single locations on the map
– can be represented also by an icon
• Polyline
– an ordered sequence of locations
– represent lines on the map
In this lecture we will focus on
markers & polylines only
http://bit.ly/LztJoV
44. Types of Overlays in GMaps
• Polygon
– an ordered sequence of locations
– define a region on the map
• Map Types
– represent map layers
– can replacebase map tiles
– can be displayed on top of
basemap tiles
http://bit.ly/LztFoV
http://www.mapofthedead.com/
45. Types of Overlays in GMaps
• Info Window
– displays contentwithin a popup
balloon on top of a map
– linked to a specific location
• Custom Overlay
– any DOM element thatbe
positioned on the map
http://bit.ly/LztFoV
46. Markers
Markers identifylocations on the map
Markers are designed to be interactive
à you can attachevent listeners to them
ex.
marker = new google.maps.Marker({
// options
});
google.maps.event.addListener(marker, 'click', callback);
47. Marker Options
The google.maps.Marker constructortakes a single object literal
specifying the initialpropertiesof the marker
• position
– LatLng identifyingthe initial location ofthe marker
• map
– the Map object on which to placethe marker
– You can add the marker later by callingsetMap() method
– You can removea marker by callingsetMap()with null
48. Marker Options
• animation
– google.maps.Animation.DROP
– google.maps.Animation.BOUNCE
You may initiatean animation on an existing marker by calling
setAnimation() on the marker object
• draggable
– makes the marker draggable on the map
• icon
– used to set a custom icon for the marker
– it defines the URLof an image to be used as icon
– The Google Maps API will size the icon automatically
49. Polylines
A Polyline object consists of an arrayof LatLngs
It creates a series of line segments thatconnect those locations in
an ordered sequence
SimilarlytoMarker, the constructorof Polyline takes an
object literalcontainingthe options
Also Polyline can react to user events
50. Polylines Options
• path[]
– array of LatLng, onefor each pointof the polyline
• strokeColor
– color of the lines in CSS syntax
• strokeOpacity
– opacity of the lines as a decimal number between 0 and 1
• strokeWeight
– the weight of the line's stroke in pixels
• editable
– boolean, specifies whether users can modify it or not
51. Example
var map; // the map object (initialization omitted here)
var coords = [
new google.maps.LatLng(37.772323, -122.214897),
new google.maps.LatLng(21.291982, -157.821856),
new google.maps.LatLng(-18.142599, 178.431),
new google.maps.LatLng(-27.46758, 153.027892)
];
var polyline = new google.maps.Polyline({
path: coords,
strokeColor: "#00FF00",
strokeOpacity: 1.0,
strokeWeight: 1
});
polyline.setMap(map);
52. GMaps Services
3 are the main services provided by GMaps:
• Directions
• Distance Matrix
• Geocoding
53. Directions
You can calculatedirections (using a varietyof methods of
transportation)byusing the object
google.maps.DirectionsService
This object communicates with Google Maps which receives
directionrequests and returns computed results
You can
1. manage these directions results directly
2. use the DirectionsRenderer object to render them
54. Direction Requests
1. create an object of type DirectionsService
2. create a DirectionsRequest object literalcontainingthe
input terms
3. call DirectionsService.route()to initiatea request to
the Directions service
4. manage the results via a callbackfunction manageRoute
var dirService = new google.maps.DirectionsService();
var request = {
origin: ”…”,
destination: “…”,
travelMode: google.maps.TravelMode.DRIVING
};
dirService.route(request, manageRoute);
56. Directions Results
When sending a directions request to the DirectionsService,
you receive a response consisting of
1. a DirectionsResult object
– contains an array of DirectionsRoute object, each of them
representing a route from the origin to destination
2. a status code
– OK, NOT_FOUND, ZERO_RESULTS, INVALID_REQUEST, etc.
58. Routes
It is an object literalwith the following fields:
• legs[]: arrayof DirectionsLeg objects
• waypoint_order[]:indicates the order of waypoints
• overview_path[]:arrayof LatLngs approximatingthe path of
the resulting directions
• bounds: LatLngBounds containingthe route
• copyrights:text
• warnings: text
59. Legs
It is an object literalwith the following fields:
• steps[]: arrayof DirectionsStep objects
• distance: totaldistance covered by this leg
• duration:totalduration of the leg
• start_location:theorigin of the leg as LatLng
• end_location: the destination of the leg as LatLng
• start_address: the origin of the leg as text
• end_address: the destination of the leg as text
60. Steps
It is an object literalwith the following fields:
• instructions:instructionsfor this step withinas text
• distance: totaldistance covered by this step
• duration:totalduration of the step
• start_location:theorigin of the leg as LatLng
• end_location: the destination of the leg as LatLng
62. Distance Matrix
It is a service to compute
1. traveldistance
2. journey duration
between multipleorigins and destinations
This service does not returndetailed route information
à you need the Directions Servicefor these
65. Distance Responses
A successful call to the Distance Matrixservice returns:
• a DistanceMatrixResponse object
• a DistanceMatrixStatus object
These are passed to the callbackfunction you specified in the
request
66. DistanceMatrixResponse
It is an object containing the followingproperties:
• originAddresses
– array containingthe locations passed in the origins field
• destinationAddresses
– array containingthe locations passed in the destinations field
• rows
– array of DistanceMatrixResponseRow objects, with each row
correspondingto an origin
• elements
– are children of rows, and correspond to a pairingof the row's origin
with each destination
– They contain status, distance, and duration information for each
origin/destination pair
67. Example
var origin = “L’Aquila, Italy";
var destination = “London, England";
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix({
origins: [origin],
destinations: [destination],
travelMode: google.maps.TravelMode.DRIVING,
avoidHighways: false,
avoidTolls: false
}, callback);
function callback(response, status) {
if (status == google.maps.DistanceMatrixStatus.OK) {
var t = response.rows[0].elements[0].distance.text;
alert(t);
}
}
http://jsfiddle.net/bryan_weaver/snYJ2/
68. Geocoding
It is the process of convertingaddresses into geographical
coordinates
ex.
“via Vetoio 1, L’Aquila” à 42.362319,13.368514
A geocoder may returnmore thana result
You can also performthe inverse conversion
à reverse geocoding
69. Geocoding Requests
var geocoder = google.maps.Geocoder();
geocoder.geocode(options, callback);
where
• options (object literal)
– address (String) à geocoding
– latLng (LatLng) à reversegeocoding
– bounds (LatLngBounds)
– region (String)
• see http://www.iana.org/assignments/language-subtag-registry
• callback
– the function executed upon response
71. Example
geocoder = new google.maps.Geocoder();
var address = “via Vetoio 1, L’Aquila”;
geocoder.geocode( { 'address': address}, callback);
function callback(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
for(result in results) {
console.log(result.geometry.location);
}
} else {
console.log(status);
}
}
http://jsfiddle.net/Shreerang/F4Sd2/1/light/
72. What’s more?
• Google services
– directions, distance matrix, geocoding
• Controls
– UI elements to allow user interaction with the map
– zoom, Street View, scale, map type
• Layers
– GeoRSS, KML, Fusion Tables, etc.
• Map Types & Styles (see http://bit.ly/JEA6Nu)
– custom styles, image overlays, etc.
• StreetViewServices
• Drawing Library
– drawingtools, geometry, etc.
73. Open source implementations
Geocoding and reverse geocoding
http://wiki.openstreetmap.org/wiki/Nominatim
Mapping
http://leafletjs.com + Open Street Map tiles
Operations on maps
check Leaflet plugins
For a more “nativefeeling”, Cordova plugins:
http://plugins.cordova.io/#/package/com.phonegap.plugins.mapkit
http://plugins.cordova.io/#/package/com.risingj.cordova.maplauncher
75. LAB
Extend the app of the previous labs so that users can:
1. see on a map the exact position of a specific producer
2. put on the same map also a different marker showing the
current position of the user
3. see on a map all the producers;
4. draw a polyline linking the user to a specific producer, and
show the distance of the user from the producer
5. when viewing the list of products, order it based on how
much close they are to the current position of the user