ArcMap Python 脚本编写入门索引

本文主要是Python脚本批量处理ArcMap数据的入门资料索引.

如果是简单的批量处理数据, 可以直接使用ArcMap内置的Python窗口处理.而对于稍复杂或经常重复的操作就可以考虑用插件来完成.

ArcMap中的Python窗口:

ArcMap中的Python插件

ArcMap中的python插件有两种形式, 一种是Toolbox里直接运行的py脚本, 添加时需要设置字段. 比如下图里的 Add Geometry Attributes 就属于此类.

另一种是作为esriaddin插件形式的,可以添加菜单、工具条;单文件形式存在,方便安装和传播,不过似乎不方便调试。

开始吧,皮卡丘

  1. 首先python要有入门水平, 推荐廖雪峰的 Python教程, 看一两遍差不多入门.
  2. Programming ArcGIS 10.1 with Python Cookbook, 这本书不错, 难度一般,例数据比较全.
  3. 什么是 Python 加载项?
  4. gis.stackexchange.com 基本上ArcPy相关的问题都可以查到.

Android Studio 导入项目依赖(Gradle) 以 ArcGIS Android SDK 为例

之前一直使用的 ADT + Intellij, 用起来也算安逸,导入导出依赖配置和 Eclipse 没什么区别。但是在多人协作开发时依赖的配置很麻烦。多次尝试切换到 Gradle 都出错告终。

大部分依赖提供jcenter 别名, 只要 在 build.gradledependencies 中添加
compile 'com.jakewharton:butterknife:6.0.0'

但是一些没有推送到 jcenter 的项目按照之前的 Import Module 导入时总会导致原先的项目混乱。

参考 StackOverflow 上的一篇问答 “Import Module” changes structure of existing library

  1. Copied library’s directory under the root directory of my project.
  2. Referenced that library in settings.gradle by adding include ‘:libraryA’.
  3. Added dependency to my project’s build.gradle: compile project(‘:libraryA’).

ADT 模式下 Intellij 导入 ArcGIS Android SDK 的方式可以参考官方博客ArcGIS Android development with IntelliJ IDEA

Gradle 方式官方在 GitHub 上有介绍 ArcGIS Android API Lib Module,但是说明版本太旧,按照说明无法导入。

下面是测试可行的导入方式

Read More

Vim中的正则与多文件搜索、批量替换

最近需要处理一些 html 文件,目的说起来很简单:去掉其中的几个特定的 div。
对于 Windows 用户,多文件搜索推荐 FileLocator Pro,正则处理推荐 RegexBuddy
两个软件相对于 Vim 更加人性化。
脱离 Win 之后没有了趁手的工具,只能捡起 Vim 这个宰牛刀……

vim中的正则与常用的正则有些出入:

  • \. 匹配任意字符(不包含换行)
  • \_. 匹配任意字符(包含换行)
  • \{-} 表示懒惰模式
    具体 :h regexp

以替换多行注释为例 <!-- 多行注释 -->

  1. 定位到指定目录
    :cd /target/folder

  2. 打开单个文件
    e: target.html

  3. 测试匹配
    /<!--\_.\{-}--> 多行注释
    /<!--.\{-}--> 单行注释

  4. 多文件搜索
    :vimgrep /test/ **/*.html 当前目录和子目录
    :vimgrep /test/ *.html 当前目录
    :vimgrep /test/ subfolder/* 子目录
    vimgrep 之后可以 :copen 打开 quickfix 查看匹配的列表

  5. 批量替换

  • 添加文件 :args **/*.html
  • 批量替换 :argdo %s/cha1/cha2/ | update

Read More

ArcGIS 制作 tpk

官方博客在12年曾经介绍过 3种方法快速制作tpk文件 ,当时的 ArcMap 版本为 10.1,本文在 ArcMap10.2.1 下仅做补充。

1.制作指定坐标系的tpk

  • 如果直接 File – Share As – Tile Package, 只需要在 TileFormat 中指定 tiling >Scheme File
  • 如果是使用GP工具,则在设置页面不勾选 Package for ArcGIS…然后在Service 选择对应xml

  • 制作 Tiling Scheme file
    Search – tiling – Generate Tile Cache Tiling Scheme

Read More