QGIS Plugins Creating custom spatial functions within the QGIS application framework using Python Z-Pulley Inc.

Slides:



Advertisements
Similar presentations
Wordpress Workshop 101 Presented by Will Hardison.
Advertisements

TISEC OPEN SOURCE, WEB-BASED, SPATIAL DECISION SUPPORT TOOL FOR TIDAL POWER SITING IN WASHINGTON STATE Z-Pulley Inc.
Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.
Programming with Android: SDK install and initial setup Luca Bedogni Marco Di Felice Dipartimento di Scienze dellInformazione Università di Bologna.
June, 2007 Petr Hamernik Extending Instant JChem 2.0 Architecture & API.
WordPress Themes.
@beckyddesign Beckydavisdesign.com Take Control of Your Site with WordPress.
(c) 2000 Internet Access Methods, Inc1 Peer-To-Peer Shared Components Gerry Seidman IAM Consulting
ECF 3.3 Release | © 2010 by EclipseSource and others, made available under the EPL v1.0 1 ECF 3.3/Helios Project Lead: Scott Lewis
1 Pulsar The Eclipse Mobile Industry Working Group & Sequoyah Nov 6, 2010 Mailing listMailing list:
AJDT and AspectJ Release Review | © 2007 by SpringSource, made available under the EPL v1.0 1 Release Review: AJDT and AspectJ
© 2007 by Neil Hauge; made available under the EPL v1.0 | Neil Hauge Project Lead Oracle Dali JPA Tools Project – Graduation Review Draft.
Slicer3 for developers – Sonia Pujol, Ph.D. -1- National Alliance for Medical Image Computing Programming into Slicer3 Sonia Pujol, Ph.D. Surgical Planning.
© damaka, inc1 a connection revolution TM … Peer-to-Peer SIP.
Extending Eclipse Kai-Uwe Mätzel IBM OTI Labs Zurich
Skid Steer Safe Operation E Light Electric Services, INC Safety Training Module 2/3/2012E Light Electric Services, INC1.
CTS2 DEVELOPMENT FRAMEWORK CTS2 Overview. Schedule What is it? Why a framework? What does this do for me? Plugins Implementations available now CTS2 Compliance.
Warwick Bailey, Director Icodeon Ltd Cambridge, UK.
The Free Software Desktop Project By: Joshua Anglero
Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
DataNaut, LLC 1 Building Cross-Platform Accessible Applications Using Qt Technical Overview September 2012.
SYDJS July What is HaXe? Multi-platform language Open source ( Community driven Version 2.07 (around since 2005) Single syntax for.
Icinga – Open Source Monitoring Bernd Erk – NETWAYS CeBIT Hannover.
Developing in CAS. Why? As distributed you edit CAS 3 with Eclipse and build with Maven 2 – Best Practice for Release Engineering – Difficult edit-debug.
Kit Chan ATS Lua Plugin Kit Chan Hi, My name is kit.
A Blackboard Building Block™ Crash Course for Web Developers
Lecture 4: Embedded Application Framework Qt Tutorial Cheng-Liang (Paul) Hsieh ECE 424 Embedded Systems Design.
E4 July 2010 Move | © 2010 Eclipse Contributors, made available under the EPL v1.0E4 July 2010 Move | © 2010 Eclipse Contributors, made available under.
QGIS Workflows QGIS and Python… like peanut butter and jelly.
Mobile App Development Using: Presented by Tyler Richey Images from
Programming with Android: SDK install and initial setup Luca Bedogni Marco Di Felice Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna.
Web Applications Development Using Coldbox Platform Eddie Johnston.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
ITouch/iPhone SDK A study using Cognitive Dimensions.
INTERNET DATABASE. Internet and E-commerce Internet – a worldwide collection of interconnected computer network Internet – a worldwide collection of interconnected.
QT Intro. 김기형
DR. MOHAMMAD IQBAL THANKS TO ADITYA SENGUPTA Comparing Web Frameworks.
An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying.
How to make it work? Doncho Minkov Telerik Academy academy.telerik.com Technical Trainer
EPICS Qt Update Paul Martin 1. Australian Synchrotron 3GeV, 216m circumference synchrotron 8 Beamlines 12 Software Engineers IMBL – Worlds Widest Beam.
® Page 1 Intel Compiler Lab – Intel Array Visualizer HDF Workshop VIII October 27, 2004 John Readey
Lightning Talk Fred Rodriguez Nguyen Do CPSC 473 May 6, 2012.
Bacon A Penetration and Auditing Framework Hernan Gips
Java Mobile Apps with GWT & PhoneGap Josh Marinacci, webOS Developer Advocate.
Dessy, 17 september 2007 Tango Meeting Development of Tango Client Applications in Python Tiago Coutinho and Josep Ribas.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
HTML5 for Mobile Andrew Kinai. HTML vs HTML5 HTML:A language that describes documents' formatting and content, which is basically composed of static text.
Android for Java Developers Denver Java Users Group Jan 11, Mike
Google Web Toolkit An Overview By Shauvik Roy Choudhary.
Open Source Geospatial: Exploring the cross-roads of community organization, product integration, and acceptance in the real world Presented at NOAA on.
Introduction to Web AppBuilder for ArcGIS: JavaScript Apps Made Easy
Open Source Geospatial Tools: Enabling Decision Makers Exploring Open Source tools available for EBM Presented at Coastal Zone 2007 by Aaron Racicot –
Creating a Qt Widget Based Application From Qt Creator Manual.
REAL WORLD AJAX MARCH TIBCO USER CONFERENCE / 2004 Enterprise Rich Internet Applications with AJAX Real World Case Studies with TIBCO General Interface™
OCR GCSE Computing © Hodder Education 2013 Slide 1 OCR GCSE Computing Python programming 1: Introduction.
WORDPRESS IS IT EASY FOR ME ?. WHY should I use WordPress ?
 Installation of Android Development Environment  Creating the App with OpenGL ES API  Running the App on Emulator Android App Development.
QT Programming QT Programming Ruku Roychowdhury. Background QT is a cross platform application framework. Widely used to develop GUI applications. Originally.
. The ideas behind Qt and a live demo Qt in Education.
GUIs Basic Concepts. GUI GUI : Graphical User Interface Window/Frame : a window on the screen Controls/Widgets : GUI components.
April 27, 2006 The New GANGA GUI 26th LHCb Software Week C L Tan
LECTURE 17 GUI Programming. GUI PROGRAMMING Today, we’re going to begin looking at how we can create GUIs (Graphical User Interfaces) in Python. So far,
NativeScript – Open source platform to build Native iOS/Android Apps.
Google Web Toolkit for Mobile Applications Development INGENUITY AT ITS BEST……………….
Akademy 2007, KJSEmbed and QtScript KJSEmbed and QtScript ●What is application scripting? ●What is KJSEmbed? ●What is QtScript? ●How do KJSEmbed and QtScript.
Android.
QT graphical user interface framework
Web Application Development Using PHP
Presentation transcript:

QGIS Plugins Creating custom spatial functions within the QGIS application framework using Python Z-Pulley Inc

Plugin? Extends the functionality of QGIS Written in C++ or Python QGIS provides access to UI and Core Models the QT structure QGIS widgets are just QT widgets PyQt is cool… almost fun! Z-Pulley Inc Z-Pulley Inc

Why Open Source? Cost Freedom Community Get Good Karma Opportunity to innovate Very Fast Development Cycle Very Low Barrier To Dev Community Entry Z-Pulley Inc Z-Pulley Inc

PyQGIS PyQT Z-Pulley Inc Z-Pulley Inc

Why QT and PyQt? QT is Open Source and well supported (Nokia) QT is cross platform with support for multiple compilers (msvc, ming) QGIS was developed on top of QT PyQt is a reference implementation of Python bindings to C++ applications using SIP QGIS has been extended to provide PyQGIS Z-Pulley Inc Z-Pulley Inc

Z-Pulley Inc Z-Pulley Inc

# PyQt4 includes for python bindings to QT from PyQt4.QtCore import * from PyQt4.QtGui import * # QGIS bindings for mapping functions from qgis.core import * from qgis.gui import * Z-Pulley Inc Z-Pulley Inc

That wasn’t so hard… Z-Pulley Inc Z-Pulley Inc

Python Inside QGIS… Z-Pulley Inc Z-Pulley Inc

Installing Plugins Z-Pulley Inc Z-Pulley Inc

Repo’s Z-Pulley Inc Z-Pulley Inc

Repo’s… just some XML Z-Pulley Inc Z-Pulley Inc

Plugin Building Create from scratch… don’t recommend Copy existing… great place to start Plugin Builder… ah, that’s to easy Z-Pulley Inc Z-Pulley Inc

Plugin Builder http://pyqgis.org/builder/plugin_builder.py Z-Pulley Inc Z-Pulley Inc

%working_dir%\.qgis\python\plugins Where do they live? %working_dir%\.qgis\python\plugins SECRET: That is where the plugin installer puts them! Z-Pulley Inc Z-Pulley Inc

Designer Let’s you add GUI elements via graphical interface Focuses on Widgets and Layouts Generates UI files Natively consumed in QT Must be compiled in PyQT http://www.riverbankcomputing.co.uk/software/pyqt/download OSGEO4W does not contain designer… download separately Z-Pulley Inc Z-Pulley Inc

Lets build one… Run through the Plugin Builder Unzip into .qgis\python\plugins Test Open .ui file in Designer and modify Compile .ui -> .py Hook into a SIGNAL from the UI in plugin Z-Pulley Inc Z-Pulley Inc

QtCore. QObject. connect(iface. mapCanvas, QtCore QtCore.QObject.connect(iface.mapCanvas, QtCore.SIGNAL("xyCoordinates(QgsPoint&)"), self.updateCoords) Def updateCoords(self,p): capture = QtCore.QString(str(p.x()) + " , " + str(p.y())) self.lineEdit.setText(capture) Z-Pulley Inc Z-Pulley Inc

Cool List fTools ManageR PostGIS Manager WaURISA Test Plugin  Z-Pulley Inc Z-Pulley Inc

References PyQGIS Bindings - http://wiki.qgis.org/qgiswiki/PythonBindings API - http://doc.qgis.org/head/classes.html QT API - http://doc.trolltech.com/4.5/index.html PyQT Docs - http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/pyqt4ref.html SIP Docs - http://www.riverbankcomputing.co.uk/static/Docs/sip4/sipref.html Official Plugin Repo - http://pyqgis.org/ Plugin Builder - http://pyqgis.org/builder/plugin_builder.py Z-Pulley Inc Z-Pulley Inc

Help #qgis on freenode IRC http://www.qgis.org/community/mailing-lists.html http://www.qgis.org/index.php http://blog.qgis.org/ http://forum.qgis.org/ https://trac.osgeo.org/qgis/ Z-Pulley Inc Z-Pulley Inc

Z-Pulley Inc