Mais

Usando ArcPy para aumentar o zoom para o par de coordenadas Y, X (string) copiado / colado do Google Maps?

Usando ArcPy para aumentar o zoom para o par de coordenadas Y, X (string) copiado / colado do Google Maps?


Eu freqüentemente uso o google maps para encontrar locais e colo as coordenadas na barra de ferramentas "ir para XY" em graus decimais. É um pouco repetitivo colar a latitude em uma caixa e a longitude em outra. Existe uma maneira mais rápida de aumentar o zoom para um local com uma string no formato de coordenadas "google maps", como:

-29.948153, 146.864276

Eu estava pensando que poderia fazer uma ferramenta python, mas só consigo encontrar o código para "zoom para recursos selecionados" (http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00s300000003000000)

Estou usando o ArcGIS Desktop 10.0.


Abaixo está algum código que deve fazer o básico disso.

import arcpy yxCoordString = arcpy.GetParameterAsText (0) yStr, xStr = yxCoordString.split (",") xFloat = float (xStr) yFloat = float (yStr) mxd = arcpy.mapping.MapDocument ("CURRENT") df = arcpy. mapping.ListDataFrames (mxd) [0] newExtent = df.extent newExtent.XMin, newExtent.YMin = xFloat - 0,5, yFloat - 0,5 newExtent.XMax, newExtent.YMax = xFloat + 0,5, yFloat + 0,5 df.extent = newExtent .RefreshActiveView ()

Você só precisa adicionar o script em uma caixa de ferramentas e, em seguida, atribuir um parâmetro como abaixo:

Eu fiz o zoom em uma extensão de 1 x 1 grau subtraindo / adicionando 0,5 às coordenadas inseridas, mas você pode definir como quiser.

Este código não leva em consideração que as coordenadas inseridas são diferentes do sistema de coordenadas do quadro de dados.


Acabei de receber este script para fazer o que você quiser:

def panToExtent (gmapsLonLat): mxd = arcpy.mapping.MapDocument ('CURRENT') dataFrame = arcpy.mapping.ListDataFrames (mxd) [0] lat, lon = gmapsLonLat.split (',') lat = float (lat) lon = float (lon) Extent = arcpy.Extent (lon, lat, lon, lat) dataFrame.panToExtent (Extent) arcpy.RefreshActiveView ()

Salve-o em algum lugar e carregue-o na janela do console do Python (clique com o botão direito do mouse> Carregar).

Em seguida, você pode simplesmente chamar a função:

panToExtent ('49 .616170, 6.140333 ')

Você pediu para inseri-lo como um fragmento, então eu escrevi dessa forma, mas isso também significa que você tem que colar suas coordenadas em uma string, então não se esqueça de adicionar as aspas!

Para torná-lo ainda mais confortável, eu não me incomodaria em adicioná-lo como uma string e talvez usasse o seguinte código:

def panToExtent (lat, lon): mxd = arcpy.mapping.MapDocument ('CURRENT') dataFrame = arcpy.mapping.ListDataFrames (mxd) [0] extend = arcpy.Extent (lon, lat, lon, lat) dataFrame.panToExtent (extensão) arcpy.RefreshActiveView ()

Agora você pode simplesmente copiar do Google Maps e colar tudo em sua função ao chamá-la, como aqui:

panToExtent (50.850342, 4.363153)

Assista o vídeo: Digitizing Google Map Raster for Preparing a Map in ArcGIS - Tutorial 2