本文整理汇总了Python中qgis.core.QgsCoordinateReferenceSystem.createFromProj4方法的典型用法代码示例。如果您正苦于以下问题:Python QgsCoordinateReferenceSystem.createFromProj4方法的具体用法?Python QgsCoordinateReferenceSystem.createFromProj4怎么用?Python QgsCoordinateReferenceSystem.createFromProj4使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.core.QgsCoordinateReferenceSystem
的用法示例。
在下文中一共展示了QgsCoordinateReferenceSystem.createFromProj4方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: calculateSquare
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import createFromProj4 [as 别名]
def calculateSquare(self, point):
'''
point in layer coordinates(QgsPoint)
'''
mapCrs = self.canvas.mapSettings().destinationCrs()
utmCrs = QgsCoordinateReferenceSystem()
utmCrs.createFromProj4(self.proj4Utm(point))
ctFwd = QgsCoordinateTransform(mapCrs, utmCrs)
ctBwd = QgsCoordinateTransform(utmCrs, mapCrs)
pointGeom = QgsGeometry.fromPoint(point)
pointGeom.transform(ctFwd)
pointUtm = QgsPoint(pointGeom.asPoint())
# calculate d
d = self.diagonal/(2*(2**0.5))
l = pointUtm.x() - d
b = pointUtm.y() - d
r = pointUtm.x() + d
t = pointUtm.y() + d
p1 = QgsGeometry.fromPoint(QgsPoint(l, b))
p2 = QgsGeometry.fromPoint(QgsPoint(r, b))
p3 = QgsGeometry.fromPoint(QgsPoint(r, t))
p4 = QgsGeometry.fromPoint(QgsPoint(l, t))
p1.transform(ctBwd)
p2.transform(ctBwd)
p3.transform(ctBwd)
p4.transform(ctBwd)
mapPol = [p1.asPoint(), p2.asPoint(), p3.asPoint(), p4.asPoint(), p1.asPoint()]
return mapPol
示例2: __init__
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import createFromProj4 [as 别名]
def __init__(self, plugin, layerDef, creditVisibility=1):
QgsPluginLayer.__init__(self, TileLayer.LAYER_TYPE, layerDef.title)
self.plugin = plugin
self.iface = plugin.iface
self.layerDef = layerDef
self.creditVisibility = 1 if creditVisibility else 0
# set custom properties
self.setCustomProperty("title", layerDef.title)
self.setCustomProperty("credit", layerDef.credit) # TODO: need to remove
self.setCustomProperty("serviceUrl", layerDef.serviceUrl)
self.setCustomProperty("yOriginTop", layerDef.yOriginTop)
self.setCustomProperty("zmin", layerDef.zmin)
self.setCustomProperty("zmax", layerDef.zmax)
if layerDef.bbox:
self.setCustomProperty("bbox", layerDef.bbox.toString())
self.setCustomProperty("creditVisibility", self.creditVisibility)
# create a QgsCoordinateReferenceSystem instance if plugin has no instance yet
if layerDef.proj is not None:
customcrs = QgsCoordinateReferenceSystem()
customcrs.createFromProj4(layerDef.proj)
else:
customcrs = QgsCoordinateReferenceSystem(layerDef.crs)
self.setCrs(customcrs)
if layerDef.bbox:
self.setExtent(BoundingBox.degreesToMercatorMeters(layerDef.bbox).toQgsRectangle())
else:
self.setExtent(QgsRectangle(-layerDef.TSIZE1, -layerDef.TSIZE1, layerDef.TSIZE1, layerDef.TSIZE1))
self.setValid(True)
self.tiles = None
self.useLastZoomForPrint = False
self.canvasLastZoom = 0
self.setTransparency(LayerDefaultSettings.TRANSPARENCY)
self.setBlendModeByName(LayerDefaultSettings.BLEND_MODE)
self.setSmoothRender(LayerDefaultSettings.SMOOTH_RENDER)
# downloader
self.downloader = Downloader(self)
self.downloader.userAgent = QGISSettings.get_default_user_agent()
self.downloader.default_cache_expiration = QGISSettings.get_default_tile_expiry()
self.downloader.max_connection = PluginSettings.default_tile_layer_conn_count() #TODO: Move to INI files
QObject.connect(self.downloader, SIGNAL("replyFinished(QString, int, int)"), self.networkReplyFinished)
#network
self.downloadTimeout = QGISSettings.get_default_network_timeout()
# multi-thread rendering
self.eventLoop = None
QObject.connect(self, SIGNAL("fetchRequest(QStringList)"), self.fetchRequest)
if self.iface:
QObject.connect(self, SIGNAL("showMessage(QString, int)"), self.showStatusMessageSlot)
QObject.connect(self, SIGNAL("showBarMessage(QString, QString, int, int)"), self.showBarMessageSlot)
示例3: testCrsConversion
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import createFromProj4 [as 别名]
def testCrsConversion(self):
self.assertFalse(GdalUtils.gdal_crs_string(QgsCoordinateReferenceSystem()))
self.assertEqual(GdalUtils.gdal_crs_string(QgsCoordinateReferenceSystem('EPSG:3111')), 'EPSG:3111')
self.assertEqual(GdalUtils.gdal_crs_string(QgsCoordinateReferenceSystem('POSTGIS:3111')), 'EPSG:3111')
self.assertEqual(GdalUtils.gdal_crs_string(QgsCoordinateReferenceSystem(
'proj4: +proj=utm +zone=36 +south +a=6378249.145 +b=6356514.966398753 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs')),
'EPSG:20936')
crs = QgsCoordinateReferenceSystem()
crs.createFromProj4(
'+proj=utm +zone=36 +south +a=600000 +b=70000 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs')
self.assertTrue(crs.isValid())
self.assertEqual(GdalUtils.gdal_crs_string(crs),
'+proj=utm +zone=36 +south +a=600000 +b=70000 +towgs84=-143,-90,-294,0,0,0,0 +units=m +no_defs')
示例4: coordRefSys
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import createFromProj4 [as 别名]
def coordRefSys(self, mapCoordSys):
epsg = self.epsgList[0]
coordRefSys = QgsCoordinateReferenceSystem()
if QGis.QGIS_VERSION_INT >= 10900:
idEpsgRSGoogle = "EPSG:%d" % epsg
createCrs = coordRefSys.createFromOgcWmsCrs(idEpsgRSGoogle)
else:
idEpsgRSGoogle = epsg
createCrs = coordRefSys.createFromEpsg(idEpsgRSGoogle)
if not createCrs:
google_proj_def = "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 "
google_proj_def += "+units=m [email protected] +wktext +no_defs"
isOk = coordRefSys.createFromProj4(google_proj_def)
if not isOk:
return None
return coordRefSys
示例5: coordRefSys
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import createFromProj4 [as 别名]
def coordRefSys(self, mapCoordSys):
epsg = self.epsgList[0]
coordRefSys = QgsCoordinateReferenceSystem()
if QGis.QGIS_VERSION_INT >= 10900:
idEpsgRSGoogle = "EPSG:%d" % epsg
createCrs = coordRefSys.createFromOgcWmsCrs(idEpsgRSGoogle)
else:
idEpsgRSGoogle = epsg
createCrs = coordRefSys.createFromEpsg(idEpsgRSGoogle)
if not createCrs:
proj_def = "+proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=1000000 +y_0=2000000 +ellps=GRS80 "
proj_def += "+towgs84=0,0,0,0,0,0,0 +units=m +no_defs"
isOk = coordRefSys.createFromProj4(proj_def)
if not isOk:
return None
return coordRefSys
示例6: spQgsVectorLayer
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import createFromProj4 [as 别名]
def spQgsVectorLayer(name):
spatial = robjects.r.get(name)
type = spType(spatial)
layer = QgsVectorLayer(type, unicode(name), "memory")
crs = QgsCoordinateReferenceSystem()
proj = spatial.do_slot('proj4string').do_slot('projargs')[0]
if crs.createFromProj4(proj):
layer.setCrs(crs)
else:
print "Error: unable to parse proj4string: using QGIS default"
provider = layer.dataProvider()
fields = spFields(spatial)
provider.addAttributes(fields)
feats = spData(spatial)
features = [spFeature(*feat) for feat in feats]
provider.addFeatures(features)
layer.updateExtents()
return layer
示例7: makeCoordinateReferenceSystem
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import createFromProj4 [as 别名]
def makeCoordinateReferenceSystem(latitude, utmZone):
"""
Creates a coordinate reference system, for instance for converting to this system.
Args:
param1: The WGS84 latitude.
param2: The UTM zone number.
Returns:
A valid QgsCoordinateReferenceSystem or None
>>> makeCoordinateReferenceSystem(13.41250188, 48) #doctest: +ELLIPSIS
<qgis._core.QgsCoordinateReferenceSystem object at 0x...>
>>> makeCoordinateReferenceSystem(13.41250188, 21442) is None
True
"""
crs = QgsCoordinateReferenceSystem()
proj4String = "+proj=utm +ellps=WGS84 +datum=WGS84 +units=m +zone=%s" % utmZone
if latitude < 0:
proj4String += " +south"
result = crs.createFromProj4(proj4String)
return crs if result and crs.isValid() else None
示例8: __init__
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import createFromProj4 [as 别名]
def __init__(self, plugin, layerDef, creditVisibility=1):
QgsPluginLayer.__init__(self, TileLayer.LAYER_TYPE, layerDef.title)
self.plugin = plugin
self.iface = plugin.iface
self.layerDef = layerDef
self.creditVisibility = 1 if creditVisibility else 0
# set custom properties
self.setCustomProperty("title", layerDef.title)
self.setCustomProperty("credit", layerDef.credit) # TODO: need to remove
self.setCustomProperty("serviceUrl", layerDef.serviceUrl)
self.setCustomProperty("yOriginTop", layerDef.yOriginTop)
self.setCustomProperty("zmin", layerDef.zmin)
self.setCustomProperty("zmax", layerDef.zmax)
if layerDef.bbox:
self.setCustomProperty("bbox", layerDef.bbox.toString())
self.setCustomProperty("creditVisibility", self.creditVisibility)
# set standard/custom crs
self.setCrs(self.CRS_3857)
try:
crs = None
if layerDef.epsg_crs_id is not None:
crs = QgsCoordinateReferenceSystem(layerDef.epsg_crs_id, QgsCoordinateReferenceSystem.EpsgCrsId)
if layerDef.postgis_crs_id is not None:
crs = QgsCoordinateReferenceSystem(layerDef.postgis_crs_id, QgsCoordinateReferenceSystem.PostgisCrsId)
if layerDef.custom_proj is not None:
# create form proj4 str
custom_crs = QgsCoordinateReferenceSystem()
custom_crs.createFromProj4(layerDef.custom_proj)
# try to search in db
searched = custom_crs.findMatchingProj()
if searched:
crs = QgsCoordinateReferenceSystem(searched, QgsCoordinateReferenceSystem.InternalCrsId)
else:
# create custom and use it
custom_crs.saveAsUserCRS('quickmapservices %s' % layerDef.title)
searched = custom_crs.findMatchingProj()
if searched:
crs = QgsCoordinateReferenceSystem(searched, QgsCoordinateReferenceSystem.InternalCrsId)
else:
crs = custom_crs
if crs:
self.setCrs(crs)
except:
msg = self.tr("Custom crs can't be set for layer {0}!").format(layerDef.title)
self.showBarMessage(msg, QgsMessageBar.WARNING, 4)
if layerDef.bbox:
self.setExtent(BoundingBox.degreesToMercatorMeters(layerDef.bbox).toQgsRectangle())
else:
self.setExtent(QgsRectangle(-layerDef.TSIZE1, -layerDef.TSIZE1, layerDef.TSIZE1, layerDef.TSIZE1))
self.setValid(True)
self.tiles = None
self.useLastZoomForPrint = False
self.canvasLastZoom = 0
self.setTransparency(LayerDefaultSettings.TRANSPARENCY)
self.setBlendModeByName(LayerDefaultSettings.BLEND_MODE)
self.setSmoothRender(LayerDefaultSettings.SMOOTH_RENDER)
self.setGrayscaleRender(LayerDefaultSettings.GRAYSCALE_RENDER)
self.setBrigthness(LayerDefaultSettings.BRIGTNESS)
self.setContrast(LayerDefaultSettings.CONTRAST)
# downloader
self.downloader = Downloader(self)
self.downloader.userAgent = QGISSettings.get_default_user_agent()
self.downloader.default_cache_expiration = QGISSettings.get_default_tile_expiry()
self.downloader.max_connection = PluginSettings.default_tile_layer_conn_count() #TODO: Move to INI files
QObject.connect(self.downloader, SIGNAL("replyFinished(QString, int, int)"), self.networkReplyFinished)
#network
self.downloadTimeout = QGISSettings.get_default_network_timeout()
# multi-thread rendering
self.eventLoop = None
QObject.connect(self, SIGNAL("fetchRequest(QStringList)"), self.fetchRequest)
if self.iface:
QObject.connect(self, SIGNAL("showMessage(QString, int)"), self.showStatusMessageSlot)
QObject.connect(self, SIGNAL("showBarMessage(QString, QString, int, int)"), self.showBarMessageSlot)
示例9: importuj
# 需要导入模块: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
# 或者: from qgis.core.QgsCoordinateReferenceSystem import createFromProj4 [as 别名]
def importuj(self):
#ponizsze troche z lenistwa - pozostalosc po starym kodzie, nie chce mi sie szukac zmiennych i dopisywac
#self przed kazda
swde_file = self.swde_file
tableListString = self.tableListString
srid = self.srid
pyproj4strFrom = self.pyproj4strFrom
pyproj4strTo = self.pyproj4strTo
rodz_importu = self.rodz_importu
pgserver = self.pgserver
pgbase = self.pgbase
pguser = self.pguser
pguserpswd = self.pguserpswd
txtcodec = self.txtcodec
id_zd = self.id_zd
crs_source = QgsCoordinateReferenceSystem()
crs_source.createFromProj4(str(pyproj4strFrom))
crs_dest = QgsCoordinateReferenceSystem()
crs_dest.createFromProj4(str(pyproj4strTo))
xform = QgsCoordinateTransform(crs_source, crs_dest)
tableList = [] #tabela nazw tabel w bazie
tableList = tableListString.split(',')
import_testowy = False
if rodz_importu == 'testowyJEW' or rodz_importu == 'testowyOBR' or rodz_importu == 'testowyDZE':
import_testowy = True
for tabName in tableList:
if tabName <> 'NONE':
print tabName
print srid
print pyproj4strFrom
print pyproj4strTo
print "identyfikator jednostki rejestrowej:", self.id_jed_rej
print "ilość linii", self.ilosc_linii
print "rodzaj importu", rodz_importu
print pgserver, pgbase, pguser, pguserpswd
uni = lambda s: s if type(s) == unicode else unicode(s,'utf-8','replace')
try:
f = open(swde_file, "r")
if f == 0 or f.closed:
print u"Przed rozpoczęciem importu musisz wczytać plik"
else:
if id_zd == 'NONE': #parametr wybierany przez uzytkownika, jesli jest inny niz NONE
self.id_jed_rej = str(self.id_jed_rej).rstrip() #zostanie uzyty jako wymuszenie nazwy zbioru danych
else: #w innym przypadku uzyta zostanie nazwa jednostki rej wyłuskana przez program
self.id_jed_rej = id_zd
#lista column tablicowych - do innej obróbki niż pozostałe
arrayCols = ['G5RADR', 'G5RPWL', 'G5RPWD', 'G5RKRG', 'G5RSKD', 'G5RDOK', 'G5RDZE', 'G5ROBJ']
#słownik kolumn do zmiany nazwy - zmieniamy polskie znaki w nazwie kolumn bo trochę to broi przy pytaniach SQL
plcharCols = {u'G5RŻONA':'G5RZONA', u'G5RMĄŻ':'G5RMAZ', u'G5RPWŁ':'G5RPWL', u'G5RWŁ':'G5RWL', u'G5RWŁS':'G5RWLS', u'G5RWŁD':'G5RWLD'}
g5Cols = {} #słownik zbudowany: {'nazwa_tabeli':Tablica_Column[]} - posluzy do inicjacji tabel - obiektow robdbtable
#inicjalizacja bazy danych
rdbase = RobDBBase(pgserver, pgbase, pguser, pguserpswd,1)
rdg5Table = {} #słownik zawiera następującą strukturę: {'nazwa_tabeli': Obiekt_rdbtable}
#okreslenie rodzaju importu
if rodz_importu == 'zwykly' or rodz_importu == 'aktualizacja':
Cols = ['G5IDJ', 'G5PEW', 'G5NAZ', 'G5DTW', 'G5DTU','G5RKRG']#g5jew
g5Cols['G5JEW'] = Cols
Cols = [ 'G5IDD', 'GEOM', 'NR', 'G5IDR', 'G5NOS', 'G5WRT', 'G5DWR', 'G5PEW', 'G5RZN', 'G5DWW', 'G5RADR', 'G5RPWL', 'G5RPWD', 'G5RKRG', 'G5RJDR', 'G5DTW', 'G5DTU'] #g5dze
g5Cols['G5DZE'] = Cols
Cols = [ 'G5NRO', 'G5PEW', 'G5NAZ', 'G5DTW', 'G5DTU', 'G5RKRG', 'G5RJEW', 'IDJEW'] #g5obr
g5Cols['G5OBR'] = Cols
Cols = ['G5PLC', 'G5PSL', 'G5NIP', 'G5NZW', 'G5PIM', 'G5DIM', 'G5OIM', 'G5MIM', 'G5OBL', 'G5DOS', 'G5RADR', 'G5STI', 'G5DTW', 'G5DTU'] #g5osf
g5Cols['G5OSF'] = Cols
Cols = [ 'G5STI', 'G5NPE', 'G5NSK', 'G5RGN', 'G5NIP', 'G5NZR', 'G5NRR', 'G5NSR', 'G5RADR', 'G5DTW', 'G5DTU'] #g5ins
g5Cols['G5INS'] = Cols
Cols = ['G5RZONA', 'G5RMAZ', 'G5DTW', 'G5DTU'] #g5mlz
g5Cols['G5MLZ'] = Cols
Cols = [ 'G5STI', 'G5NPE', 'G5NSK', 'G5RGN', 'G5NIP', 'G5RSKD', 'G5RADR', 'G5DTW', 'G5DTU'] #g5osz
g5Cols['G5OSZ'] = Cols
Cols = ['G5TJR', 'G5IJR', 'G5RGN', 'G5RWL', 'G5RWLS', 'G5RWLD', 'G5ROBR', 'G5DTW', 'G5DTU' ] #g5jdr
g5Cols['G5JDR'] = Cols
Cols = [ 'G5UD', 'G5RWLS', 'G5RPOD', 'G5DTW', 'G5DTU'] #g5udz
g5Cols['G5UDZ'] = Cols
Cols = [ 'G5RWD', 'G5UD', 'G5RWLD', 'G5RPOD', 'G5DTW', 'G5DTU'] #g5udw
g5Cols['G5UDW'] = Cols
Cols = [ 'G5OFU', 'G5OZU', 'G5OZK', 'G5PEW', 'G5RDZE', 'G5DTW', 'G5DTU'] #g5klu
g5Cols['G5KLU'] = Cols
Cols = [ 'G5IDT', 'G5OZU','G5OFU', 'G5PEW', 'G5RKRG', 'G5ROBR', 'G5DTW', 'G5DTU'] #g5uzg
g5Cols['G5UZG'] = Cols
Cols = ['G5KDK', 'G5DTD', 'G5DTP', 'G5SYG', 'G5NSR', 'G5OPD', 'G5RDOK', 'G5DTW', 'G5DTU'] #g5dok
g5Cols['G5DOK'] = Cols
Cols = ['G5TAR', 'G5NAZ', 'G5KRJ', 'G5WJD', 'G5PWJ', 'G5GMN', 'G5ULC', 'G5NRA', 'G5NRL', 'G5MSC', 'G5KOD', 'G5PCZ', 'G5DTW', 'G5DTU']#g5adr
g5Cols['G5ADR'] = Cols
Cols = ['G5IDB', 'G5FUZ', 'G5WRT', 'G5DWR', 'G5RBB', 'G5PEW', 'G5PEU', 'G5RZN', 'G5SCN', 'G5RADR', 'G5RPWL', 'G5RPWD', 'G5RKRG', 'G5RJDR','G5RDZE', 'G5DTU', 'G5DTW']#g5bud
#.........这里部分代码省略.........