Skip to content

Commit

Permalink
added imageformats
Browse files Browse the repository at this point in the history
  • Loading branch information
rduivenvoorde committed Nov 8, 2013
1 parent 1976c3d commit 2e21f14
Show file tree
Hide file tree
Showing 8 changed files with 125 additions and 145 deletions.
13 changes: 3 additions & 10 deletions infotab.html
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,6 @@ <h1>QGIS plugin voor PDOK services</h1>
De code van deze plugin is te vinden op <a href="https://github.com/rduivenvoorde/pdokservicesplugin">Github</a>.
Bugs kunt u daar melden.
</p>
<!--<p>
Niet werkende lagen? Vraagt u misschien een 'GESLOTEN' pdok-laag op?
Niet alle lagen zijn namelijk openbaar voor het publiek. Enkele lagen zijn
alleen voor overheden en PDOK-partners te gebruiken. Bekijk op
<a href="http://ontwikkel.loket.pdok.nl/nl/voor-wie">deze pagina</a> de
uitleg hierover.
</p>-->

<p><img src="pdok.png"/></p>
<p>
Expand All @@ -50,9 +43,9 @@ <h1>QGIS plugin voor PDOK services</h1>
Service url's voor alle in de plugin aanwezige lagen zijn afkomstig van deze pagina:<br/>
<a href="https://www.pdok.nl/nl/producten/pdok-services/overzicht-urls">https://www.pdok.nl/nl/producten/pdok-services/overzicht-urls</a>.
</p>

<h2>OpenGeoGroep. Anders denken, Anders doen...</h2>

<p><img src="ogg.gif" align="left"/>De <a href="http://www.opengeogroep.nl">OpenGeoGroep</a> is een commerciele ICT-dienstverlener die diensten en oplossingen biedt voor geo-informatie vraagstukken. Al onze diensten zijn leveranciersonafhankelijk. De OpenGeoGroep onderscheidt zich door het aanbieden van diensten en innovatieve oplossingen gebaseerd op professionele Open Source Software en op basis van Open Standaarden.</p>
<h2>OpenGeoGroep. Anders denken, Anders doen...</h2>

<p><img src="ogg.gif" align="left"/>De <a href="http://www.opengeogroep.nl">OpenGeoGroep</a> is een commerciele ICT-dienstverlener die diensten en oplossingen biedt voor geo-informatie vraagstukken. Al onze diensten zijn leveranciersonafhankelijk. De OpenGeoGroep onderscheidt zich door het aanbieden van diensten en innovatieve oplossingen gebaseerd op professionele Open Source Software en op basis van Open Standaarden.</p>
</body>
</html>
2 changes: 1 addition & 1 deletion pdok.json

Large diffs are not rendered by default.

31 changes: 12 additions & 19 deletions pdok2json.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,11 +137,6 @@ def handleWMTS(wmtscapsurl):
layername = childNodeValue(layer, 'ows:Identifier')
imgformats = childNodeValue(layer, 'Format')
tilematrixsets = childNodeValue(layer, 'TileMatrixSet')
#print '\n'
#print title
#print layername
#print imgformats
#print tilematrixsets
# wmts does not have some kind of abstract or description :-(
abstract = ''
# {"naam":"WMTS Agrarisch Areaal Nederland","url":"http://geodata.nationaalgeoregister.nl/tiles/service/wmts/aan","layers":["aan"],"type":"wmts","pngformaat":"image/png"},
Expand Down Expand Up @@ -170,6 +165,7 @@ def handleWMS(wmscapsurl):
cap = dom.getElementsByTagName('Capability')
getmap = cap[0].getElementsByTagName('GetMap');
url = getmap[0].getElementsByTagName('OnlineResource')[0].getAttribute('xlink:href')
imgformats = childNodeValue(getmap[0], 'Format')
servicetitle = childNodeValue(dom.getElementsByTagName('Service')[0], 'Title')
global firstOne
root = dom.getElementsByTagName('Layer')[0]
Expand All @@ -189,7 +185,7 @@ def handleWMS(wmscapsurl):
if not firstOne:
comma = ','
# some extract have strange chars, we decode to utf8
s = unicode('%s{"type":"wms","title":"%s","abstract":"%s","url":"%s","layers":"%s","minscale":"%s","maxscale":"%s","servicetitle":"%s"}' % (comma, title, abstract, url, layername, minscale, maxscale, servicetitle)).encode('utf8')
s = unicode('%s{"type":"wms","title":"%s","abstract":"%s","url":"%s","layers":"%s","minscale":"%s","maxscale":"%s","servicetitle":"%s","imgformats":"%s"}' % (comma, title, abstract, url, layername, minscale, maxscale, servicetitle, imgformats)).encode('utf8')
# the comma behind the print makes print NOT add a \n newline behind it
# from: http://stackoverflow.com/questions/3249524/print-in-one-line-dynamically-python
print s,
Expand Down Expand Up @@ -326,18 +322,14 @@ def handleWMS(wmscapsurl):
#services = [ ('wcs', 'ff', 'ff') ]

#services = [
## https://www.pdok.nl/nl/producten/pdok-services/overzicht-urls/a
#('wms', 'AAN (WMS | Open)',
#'http://geodata.nationaalgeoregister.nl/aan/wms?request=GetCapabilities')
#,
#('wfs','AAN (WFS | Open)',
#'http://geodata.nationaalgeoregister.nl/aan/wfs?version=1.0.0&request=GetCapabilities')
#,
#('wcs','AHN (WCS | Open)',
#'http://geodata.nationaalgeoregister.nl/ahn25m/wcs?request=getcapabilities')
#,
#('wmts', 'PDOK luchtfoto',
#'http://geodata1.nationaalgeoregister.nl/luchtfoto/wmts/1.0.0/WMTSCapabilities.xml')
# https://www.pdok.nl/nl/producten/pdok-services/overzicht-urls/a
#('wms', 'AAN (WMS | Open)', 'http://geodata.nationaalgeoregister.nl/aan/wms?request=GetCapabilities') ,
#('wfs','AAN (WFS | Open)', 'http://geodata.nationaalgeoregister.nl/aan/wfs?version=1.0.0&request=GetCapabilities') ,
#('wcs','AHN (WCS | Open)', 'http://geodata.nationaalgeoregister.nl/ahn25m/wcs?request=getcapabilities') ,
#('wmts', 'PDOK luchtfoto', 'http://geodata1.nationaalgeoregister.nl/luchtfoto/wmts/1.0.0/WMTSCapabilities.xml'),
#('wms', 'TOP10NL (WMS | Open) ','http://geodata.nationaalgeoregister.nl/top10nl/wms?SERVICE=WMS&request=GetCapabilities'),
#('wms', 'Weggeg (WMS | Open) ','http://geodata.nationaalgeoregister.nl/weggeg/wms?SERVICE=WMS&request=GetCapabilities'),
#('wms', 'Luchtfoto (PDOK-achtergrond) (WMS | Open) ','http://geodata1.nationaalgeoregister.nl/luchtfoto/wms?request=GetCapabilities'),
#]

#services = [
Expand All @@ -354,7 +346,8 @@ def handleWMS(wmscapsurl):
#('wms', 'Luchtfoto Landelijke Voorziening Beeldmateriaal (2013) (WMS | Gesloten) ','https://secure.geodata2.nationaalgeoregister.nl/lv-beeldmateriaal/2013/wms?'),
## OP DIT MOMENT STUK:
#('wms', 'Ruimtelijke plannen (WMS | Open) ','http://geodata.nationaalgeoregister.nl/plu/wms?service=wms&request=getcapabilities'),
#
#('wfs' , 'Ahn25m (WFS | Open)', 'http://geodata.nationaalgeoregister.nl/ahn25m/wfs?version=1.0.0&request=GetCapabilities') ,
#]

firstOne = True
print '{"services":[',
Expand Down
35 changes: 25 additions & 10 deletions pdokservicesplugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,10 @@ def __init__(self, iface):
self.plugin_dir = QFileInfo(QgsApplication.qgisUserDbFilePath()).path() + "/python/plugins/pdokservicesplugin"
# initialize locale
localePath = ""
locale = QSettings().value("locale/userLocale")[0:2]
if isinstance(QSettings().value("locale/userLocale"), QVariant):
locale = QSettings().value("locale/userLocale").toString()[0:2]
else:
locale = QSettings().value("locale/userLocale")[0:2]

if QFileInfo(self.plugin_dir).exists():
localePath = self.plugin_dir + "/i18n/pdokservicesplugin_" + locale + ".qm"
Expand Down Expand Up @@ -108,7 +111,17 @@ def showService(self, selectedIndexes):
self.dlg.servicesView.scrollTo(self.dlg.servicesView.selectedIndexes()[1])
# itemType holds the data (== column 1)
self.currentLayer = self.dlg.servicesView.selectedIndexes()[1].data(Qt.UserRole)
if isinstance(self.currentLayer, QVariant):
self.currentLayer = self.currentLayer.toMap()
# QGIS 1.8: QVariants
currentLayer = {}
for key in self.currentLayer.keys():
val = self.currentLayer[key]
print unicode(val.toString())
currentLayer[unicode(key)]=unicode(val.toString())
self.currentLayer = currentLayer
url = self.currentLayer['url']
print url
title = self.currentLayer['title']
servicetitle = self.currentLayer['servicetitle']
layername = self.currentLayer['layers']
Expand Down Expand Up @@ -136,25 +149,27 @@ def loadService(self):
url +=('?'+urllib.quote_plus(query))
title = self.currentLayer['title']
layers = self.currentLayer['layers']
# mmm, tricky: we take the first one while we can actually want png/gif or jpeg
if servicetype=="wms":
imgformat = self.currentLayer['imgformats'].split(',')[0]
if QGis.QGIS_VERSION_INT < 10900:
# qgis <= 1.8
uri = url
self.iface.addRasterLayer(
uri, # service uri
title, # name for layer (as seen in QGIS)
"wms", # dataprovider key
[layername], # array of layername(s) for provider (id's)
[layers], # array of layername(s) for provider (id's)
[""], # array of stylename(s)
"image/png", # image format string
imgformat, # image format string
"EPSG:28992") # crs code string
else:
# qgis > 1.8
uri = "crs=EPSG:28992&layers="+layers+"&styles=&format=image/png&url="+url;
uri = "crs=EPSG:28992&layers="+layers+"&styles=&format="+imgformat+"&url="+url;
self.iface.addRasterLayer(uri, title, "wms")
elif servicetype=="wmts":
if QGis.QGIS_VERSION_INT < 10900:
QMessageBox.warning(self.iface.mainWindow(), "PDOK plugin", ("Sorry, dit type layer: '"+servicetype.upper()+"' \nkan niet worden geladen in deze versie van QGIS.\nMisschien kunt u de ontwikkelversie van QGIS ernaast installeren (die kan het WEL)?\nOf is de laag niet ook beschikbaar als wms of wfs?"), QMessageBox.Ok, QMessageBox.Ok)
QMessageBox.warning(self.iface.mainWindow(), "PDOK plugin", ("Sorry, dit type layer: '"+servicetype.upper()+"' \nkan niet worden geladen in deze versie van QGIS.\nMisschien kunt u QGIS 2.0 installeren (die kan het WEL)?\nOf is de laag niet ook beschikbaar als wms of wfs?"), QMessageBox.Ok, QMessageBox.Ok)
return
# tilematrixsets and imgformat can be more then one, split on comma and take first one
tilematrixsets = self.currentLayer['tilematrixsets'].split(',')[0]
Expand Down Expand Up @@ -197,7 +212,7 @@ def loadService(self):
def filterLayers(self, string):
# remove selection if one row is selected
self.dlg.servicesView.selectRow(0)
self.currentLayer = None
#self.currentLayer = None
self.proxyModel.setFilterCaseSensitivity(Qt.CaseInsensitive)
self.proxyModel.setFilterFixedString(string)

Expand Down Expand Up @@ -267,10 +282,10 @@ def run(self):
self.sourceModel.horizontalHeaderItem(1).setTextAlignment(Qt.AlignLeft)
self.sourceModel.horizontalHeaderItem(2).setTextAlignment(Qt.AlignLeft)
#self.dlg.servicesView.verticalHeader().hide()
self.dlg.servicesView.resizeColumnToContents(0)
self.dlg.servicesView.resizeColumnToContents(1)
self.dlg.servicesView.resizeColumnToContents(2)

#self.dlg.servicesView.resizeColumnToContents(0)
#self.dlg.servicesView.resizeColumnToContents(1)
#self.dlg.servicesView.resizeColumnToContents(2)
self.dlg.servicesView.resizeColumnsToContents()
# show the dialog
self.dlg.show()
# Run the dialog event loop
Expand Down
2 changes: 1 addition & 1 deletion resources.qrc
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
<qresource prefix="/plugins/pdokservicesplugin">
<file>ogg.gif</file>
<file>pdok.png</file>
<file>infotab.html</file>
<file>help.png</file>
<file>infotab.html</file>
<file>icon.png</file>
</qresource>
</RCC>
Loading

0 comments on commit 2e21f14

Please sign in to comment.