本文整理汇总了Python中qgis.core.QgsCoordinateReferenceSystem方法的典型用法代码示例。如果您正苦于以下问题:Python core.QgsCoordinateReferenceSystem方法的具体用法?Python core.QgsCoordinateReferenceSystem怎么用?Python core.QgsCoordinateReferenceSystem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qgis.core
的用法示例。
在下文中一共展示了core.QgsCoordinateReferenceSystem方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from qgis import core [as 别名]
# 或者: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
def __init__(self, iface, settings):
self.canvas = iface.mapCanvas()
QgsMapTool.__init__(self, self.canvas)
self.iface = iface
self.settings = settings
self.reverseGeoCodeDialog = ReverseGeocodeDialog(self, self.iface, self.iface.mainWindow())
self.iface.addDockWidget(Qt.TopDockWidgetArea, self.reverseGeoCodeDialog)
self.reverseGeoCodeDialog.hide()
self.epsg4326 = QgsCoordinateReferenceSystem('EPSG:4326')
self.marker = None
# Set up a polygon/line rubber band
self.rubber = QgsRubberBand(self.canvas)
self.rubber.setColor(QColor(255, 70, 0, 200))
self.rubber.setWidth(5)
self.rubber.setBrushStyle(Qt.NoBrush)
示例2: zoomToLayer
# 需要导入模块: from qgis import core [as 别名]
# 或者: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
def zoomToLayer(self, layer, zoom = None):
box = layer.boundingBoxOfSelected()
if zoom is not None:
box.grow(100-zoom)
# Defining the crs from src and destiny
epsg = self.iface.mapCanvas().mapSettings().destinationCrs().authid()
crsDest = QgsCoordinateReferenceSystem(epsg)
#getting srid from something like 'EPSG:31983'
if not layer:
layer = self.iface.mapCanvas().currentLayer()
srid = layer.crs().authid()
crsSrc = QgsCoordinateReferenceSystem(srid) #here we have to put authid, not srid
# Creating a transformer
coordinateTransformer = QgsCoordinateTransform(crsSrc, crsDest, QgsProject.instance())
newBox = coordinateTransformer.transform(box)
self.iface.mapCanvas().setExtent(newBox)
self.iface.mapCanvas().refresh()
示例3: insertFrame
# 需要导入模块: from qgis import core [as 别名]
# 或者: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
def insertFrame(self, scale, mi, inom, frame):
self.checkAndOpenDb()
srid = self.findEPSG()
geoSrid = QgsCoordinateReferenceSystem(int(srid)).geographicCRSAuthId().split(':')[-1]
ogr.UseExceptions()
outputDS = self.buildOgrDatabase()
outputLayer=outputDS.GetLayerByName('public_aux_moldura_a')
newFeat=ogr.Feature(outputLayer.GetLayerDefn())
auxGeom = ogr.CreateGeometryFromWkb(frame)
#set geographic srid from frame
geoSrs = ogr.osr.SpatialReference()
geoSrs.ImportFromEPSG(int(geoSrid))
auxGeom.AssignSpatialReference(geoSrs)
#reproject geom
outSpatialRef = outputLayer.GetSpatialRef()
coordTrans = osr.CoordinateTransformation(geoSrs, outSpatialRef)
auxGeom.Transform(coordTrans)
newFeat.SetGeometry(auxGeom)
newFeat.SetField('mi', mi)
newFeat.SetField('inom', inom)
newFeat.SetField('escala', str(scale))
out=outputLayer.CreateFeature(newFeat)
outputDS.Destroy()
示例4: __init__
# 需要导入模块: from qgis import core [as 别名]
# 或者: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
def __init__(self):
self.iface = iface
self.srs_wgs84 = QgsCoordinateReferenceSystem(4326)
self.transform_decorator = QgsCoordinateTransform(self.srs_wgs84, self.srs_wgs84)
self.rb = QgsRubberBand(self.iface.mapCanvas(), QGisGeometryType.Point)
self.rb.setColor(QColor('magenta'))
self.rb.setIconSize(12)
self.features_rb = QgsRubberBand(self.iface.mapCanvas(), QGisGeometryType.Point)
magenta_transp = QColor('#3388ff')
magenta_transp.setAlpha(120)
self.features_rb.setColor(magenta_transp)
self.features_rb.setIconSize(12)
self.features_rb.setWidth(2)
示例5: processAlgorithm
# 需要导入模块: from qgis import core [as 别名]
# 或者: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
def processAlgorithm(self, parameters, context, feedback):
source = self.parameterAsSource(parameters, self.PrmInputLayer, context)
mgrsfieldname = self.parameterAsString(parameters, self.PrmMgrsField, context)
if not mgrsfieldname:
msg = 'Select an MGRS field to process'
feedback.reportError(msg)
raise QgsProcessingException(msg)
epsg4326 = QgsCoordinateReferenceSystem("EPSG:4326")
(sink, dest_id) = self.parameterAsSink(
parameters, self.PrmOutputLayer,
context, source.fields(), QgsWkbTypes.Point, epsg4326)
featureCount = source.featureCount()
total = 100.0 / featureCount if featureCount else 0
badFeatures = 0
iterator = source.getFeatures()
for cnt, feature in enumerate(iterator):
if feedback.isCanceled():
break
m = feature[mgrsfieldname]
try:
m = re.sub(r'\s+', '', str(m)) # Remove all white space
lat, lon = mgrs.toWgs(m)
except Exception:
# traceback.print_exc()
badFeatures += 1
continue
f = QgsFeature()
f.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(lon, lat)))
f.setAttributes(feature.attributes())
sink.addFeature(f)
if cnt % 100 == 0:
feedback.setProgress(int(cnt * total))
if badFeatures > 0:
msg = "{} out of {} features contained MGRS coordinates".format(featureCount - badFeatures, featureCount)
feedback.pushInfo(msg)
return {self.PrmOutputLayer: dest_id}
示例6: utmString2Crs
# 需要导入模块: from qgis import core [as 别名]
# 或者: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
def utmString2Crs(utm, crs=epsg4326):
parts = re.split(r'[\s]+', utm.upper())
utmlen = len(parts)
if utmlen == 3:
m = re.findall(r'(\d+)([NS])', parts[0])
if len(m) != 1 or len(m[0]) != 2:
raise ValueError('Invalid UTM Coordinate')
zone = int(m[0][0])
hemisphere = m[0][1]
easting = float(parts[1])
northing = float(parts[2])
elif utmlen == 4:
if parts[1] != 'N' and parts[1] != 'S':
raise ValueError('Invalid UTM Coordinate')
zone = int(parts[0])
easting = float(parts[2])
northing = float(parts[3])
else:
raise ValueError('Invalid UTM Coordinate')
if zone < 1 or zone > 60:
raise ValueError('Invalid UTM Coordinate')
utmcrs = QgsCoordinateReferenceSystem(utm_epsg_codes['{}{}'.format(zone, hemisphere)])
pt = QgsPointXY(easting, northing)
utmtrans = QgsCoordinateTransform(utmcrs, crs, QgsProject.instance())
return(utmtrans.transform(pt))
示例7: latLon2UtmString
# 需要导入模块: from qgis import core [as 别名]
# 或者: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
def latLon2UtmString(lat, lon, precision):
zone = int((lon + 180) / 6) + 1
if lon >= 0:
zonestr = '{}N'.format(zone)
else:
zonestr = '{}S'.format(zone)
try:
utmcrs = QgsCoordinateReferenceSystem(utm_epsg_codes[zonestr])
utmtrans = QgsCoordinateTransform(epsg4326, utmcrs, QgsProject.instance())
pt = QgsPointXY(lon, lat)
utmpt = utmtrans.transform(pt)
msg = '{} {:.{prec}f} {:.{prec}f}'.format(zonestr, utmpt.x(), utmpt.y(), prec=precision)
except Exception:
msg = ''
return(msg)
示例8: crsTriggered
# 需要导入模块: from qgis import core [as 别名]
# 或者: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
def crsTriggered(self, action):
self.crsButton.setDefaultAction(action)
self.inputProjection = action.data()
if self.inputProjection == 3:
selector = QgsProjectionSelectionDialog()
selector.setCrs(QgsCoordinateReferenceSystem(self.inputCustomCRS))
if selector.exec():
self.inputCustomCRS = selector.crs().authid()
else:
self.inputCustomCRS = 'EPSG:4326'
self.saveSettings()
示例9: clickedOnCanvasAction
# 需要导入模块: from qgis import core [as 别名]
# 或者: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
def clickedOnCanvasAction(self,clickedPoint):
self.iface.mapCanvas().setMapTool(self.module.mapSelectionTool)
crsCanvas = self.module.iface.mapCanvas().mapSettings().destinationCrs() # get current crs
crsWGS84 = QgsCoordinateReferenceSystem(4326) # WGS 84
xform = QgsCoordinateTransform(crsCanvas, crsWGS84, QgsProject.instance())
wgs84point = xform.transform(clickedPoint)
self.lon_widget.setText(str(wgs84point.x()))
self.lat_widget.setText(str(wgs84point.y()))
super(mapillaryFilter, self).show()
self.raise_()
示例10: panToAction
# 需要导入模块: from qgis import core [as 别名]
# 或者: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
def panToAction(self):
crsCanvas = self.module.iface.mapCanvas().mapSettings().destinationCrs() # get current crs
crsWGS84 = QgsCoordinateReferenceSystem(4326) # WGS 84
xform = QgsCoordinateTransform(crsWGS84, crsCanvas, QgsProject.instance())
sourcePoint = QgsPointXY(float(self.field_longitude.text()),float(self.field_latitude.text()))
self.module.iface.mapCanvas().setCenter(xform.transform(sourcePoint))
self.module.iface.mapCanvas().refresh()
示例11: setDefaultLayers
# 需要导入模块: from qgis import core [as 别名]
# 或者: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
def setDefaultLayers(self):
defaultContent = '{"type": "FeatureCollection", "features": []}'
for ld in LAYER_LEVELS:
with open(os.path.join(self.cache_dir, 'mapillary_%s.geojson' % ld), 'w') as f:
f.write(defaultContent)
defLyr = QgsVectorLayer(os.path.join(self.cache_dir, 'mapillary_%s.geojson' % ld),"Mapillary "+ld, "ogr")
defLyr.setCrs(QgsCoordinateReferenceSystem(4326))
setattr(self, ld+'Layer', defLyr)
示例12: transformToWGS84
# 需要导入模块: from qgis import core [as 别名]
# 或者: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
def transformToWGS84(self, pPoint):
# transformation from the current SRS to WGS84
crcMappaCorrente = self.iface.mapCanvas().mapSettings().destinationCrs() # get current crs
crsSrc = crcMappaCorrente
crsDest = QgsCoordinateReferenceSystem(4326) # WGS 84
xform = QgsCoordinateTransform(crsSrc, crsDest, QgsProject.instance())
return xform.transform(pPoint) # forward transformation: src -> dest
示例13: centerObject
# 需要导入模块: from qgis import core [as 别名]
# 或者: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
def centerObject(feature, zoom=None):
"""
Centers the map view on a given object.
https://developers.google.com/earth-engine/api_docs#map.centerobject
Uses:
>>> from ee_plugin import Map
>>> Map.centerObject(feature)
"""
feature = ee.Feature(feature)
if not zoom:
# make sure our geometry is in geo
rect = feature.geometry().transform(ee.Projection('EPSG:4326'), 1)
# get coordinates
coords = rect.bounds().getInfo()['coordinates'][0]
xmin = coords[0][0]
ymin = coords[0][1]
xmax = coords[2][0]
ymax = coords[2][1]
# construct QGIS geometry
rect = QgsRectangle(xmin, ymin, xmax, ymax)
# transform rect to a crs used by current project
crs_src = QgsCoordinateReferenceSystem(4326)
crs_dst = QgsCoordinateReferenceSystem(QgsProject.instance().crs())
geo2proj = QgsCoordinateTransform(crs_src, crs_dst, QgsProject.instance())
rect_proj = geo2proj.transform(rect)
# center geometry
iface.mapCanvas().zoomToFeatureExtent(rect_proj)
else:
# set map center to feature centroid at a specified zoom
center = feature.geometry().centroid().coordinates().getInfo()
setCenter(center[0], center[1], zoom)
示例14: setCenter
# 需要导入模块: from qgis import core [as 别名]
# 或者: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
def setCenter(lon, lat, zoom=None):
"""
Centers the map view at the given coordinates with the given zoom level. If no zoom level is provided, it uses the most recent zoom level on the map.
https://developers.google.com/earth-engine/api_docs#map.setcenter
Uses:
>>> from ee_plugin import Map
>>> Map.setCenter(lon, lat, zoom)
"""
### center
center_point_in = QgsPointXY(lon, lat)
# convert coordinates
crsSrc = QgsCoordinateReferenceSystem(4326) # WGS84
crsDest = QgsCoordinateReferenceSystem(QgsProject.instance().crs())
xform = QgsCoordinateTransform(crsSrc, crsDest, QgsProject.instance())
# forward transformation: src -> dest
center_point = xform.transform(center_point_in)
iface.mapCanvas().setCenter(center_point)
### zoom
if zoom is not None:
# transform the zoom level to scale
scale_value = 591657550.5 / 2 ** (zoom - 1)
iface.mapCanvas().zoomScale(scale_value)
示例15: geom_to_geo
# 需要导入模块: from qgis import core [as 别名]
# 或者: from qgis.core import QgsCoordinateReferenceSystem [as 别名]
def geom_to_geo(geom):
crs_src = QgsCoordinateReferenceSystem(QgsProject.instance().crs())
crs_dst = QgsCoordinateReferenceSystem(4326)
proj2geo = QgsCoordinateTransform(crs_src, crs_dst, QgsProject.instance())
if isinstance(geom, QgsPointXY):
return proj2geo.transform(geom)
elif isinstance(geom, QgsRectangle):
return proj2geo.transformBoundingBox(geom)
else:
return geom.transform(proj2geo)