巡回

綺麗でユーザビリティーのあるナビゲーションメニュー50選
「Google Docs」のオフライン機能、日本語版も対応開始
UMLプラグイン日本語版ほかNetBeans対応、7.0日本語版公開
FreeBSD Daily Topics 2008年2月5日 2008Q4FreeBSD情報報告,KDE 4.2テスター募集,Tokyo Dystopia登場,Tcl/Tk 8.6登場,Google Earth最新版(火星+海洋データ),ReiserFSマウント方法
ドメインの語呂合わせを探してくれる「DomainTyper」
馴染み深い2つのキーワードからパスワードを生成
フリーハンド文字をTruetypeフォント化「YourFonts」
現在位置をGoogleマップに表示して公開「Google Latitude」
ケータイや情報端末にも!ここまで来たAdobe AIR
『GNOME Do』 + 「Docky」 = 無敵のアプリ起動バッテリー
MacでもWindowsでも「Syncplicity」でファイル同期
今だけ! 『Acronis True Image 10』が無料でダウンロードできます!
無料版『LogMeIn』でも、フリーアプリで有償版と同等に使える
[CSS][HTML][30分プログラム]BlueprintCSSでクールなフォームを作ろう
友達と位置情報を共有する新サービス『Google Latitude』の使い方。
quickPost: Ubuntu再インストールをスピードアップ
あれ?今保存したファイルはどこいったを防ぐ「Last Changed Files」
リンクやブックマークをその他2つのブラウザで開くことができるFirefoxアドオン「Browser View Plus」
Bフレッツ向け固定IP最安値 - livedoor ビジネスインターネット・ライトで固定IPが月額1500円
HelpDesk Pilot Web Based Support Ticketing System
Free PSD Files for Web Designers
PhotoshopでWebデザインを0から作るチュートリアル
アイ・オー・データ、ストラップ付きの可愛いmicroSD/SDHCリーダーを発売
Free JavaScript Charts Library: JS Charts
ユーザーフレンドリーな優れたナビゲーション集
html コードやPHPコードなどを登録して、サイトに埋め込める「Snipt」
コマンドラインで使える超絶便利なワンライナーを投稿・共有できる『Command-line-fu』

巡回

jQueryで実現するアニメーションTips13選「13 Excellent jQuery Animation Techniques」
[jQuery]Simpletip
15 jQuery Plugins to Fix and Beautify Browser Issues
* Web/JS(あまくち) part.7 - jQuery セレクタクイズ
[JavaScript][jQuery]re:jQueryとSafariとか | 眠る開発屋blog
jQuery:リンクのクリック領域をブロック全体にする方法
[JS]HTMLを汚さないで実装できる、シンプルでクールなツールチップのスクリプト -Simpletip

巡回

なぞって単語の意味を調べられるようになった ポケット青空文庫 - SkyBook
いま「Time Machine」が何事もなかったかのように、また動き始めた。
次世代iPhoneは、カメラ機能が大幅パワーアップ! ビデオ会議や動画撮影もOKに
iPhoneをコマ撮りカメラにするアプリ「TimeLapse」
iPhoneって赤外線通信できね〜じゃん!な奴に朗報なメアド交換アプリ「メールしてね」

巡回

[Python]Filename Filter
Pylons 0.9.7 rc4での変更点のメモ書き その2
juno a lightweight and simple python web framework
pythonでディレクトリの中にあるディレクトリのリストを取る
Roll your own DVR with Python and PyAVC
Python: Use the pydoc.py module for documentation
Python Logging: Use the logging module to generate debug information
Full qualified domain name and Whois lookup using Python
get_size.py ついにやりました!内容を理解し、コメントで説明を♪バージョン
Pythonで開発開始、名前はまだない

巡回

Django Snippets:

Unit Tests That Write Fixtures
Temporary admin messages (MOTD)


Blog:

[ubuntu][django][python]Ubuntu 8.10にPython、Djangoの開発環境を構築する
【モデル作成】Django 初心者がコミュニティサイト的な何かにチャレンジしてみる
Alter tables to replace Byteflow
Custom Django Settings and Default Values
Setting up Python and Django Web Framework under Windows
Python, Django Framework: Easily add your models to the django admin interface
Python, Django: invalid literal for int with base 10
django-memcached 0.1.2
Django User Message Error Codes
Django, Python and the sorry state of web services SOAP
Django: Кэширование 画像はわかりやすい
Ordering in Django 1.0
A Custom form for Django's Automatic Admin.
Custom Real Estate Website - Premier Real Estate Websites Djangoで出来てます
Bazaar branches of django-geotagging これは参考になる!
Use Django ORM as standalone
Readernaut: Signup Djangoで出来てます
Scrapy.org. an open source web scraping framework in Python Djangoで出来てます 便利そう!


Google App Engine:

GoogleAppEngine再入門(4) -RSS Readerを作る-

GeoDjango For Windows チュートリアル編その4

GeoDjango For Windows チュートリアル編その3の続き


前提

  • 自分の環境ではIPythonがインストールされています。便利なのでインストールしてみてはいかがでしょうか。
  • Python: C:\Python25
  • GeoDjango: C:\Program Files\GeoDjango
  • Project: C:\geodjango

とします。


専門用語等説明で怪しい部分があるので間違えている部分がありましたらご指摘下さい。


LayerMappingを使って空間データインポート

PgAdmin3で"world_worldborders"の中身を確認してみましょう。
PostgreSQLtable01
posted by (C)常山
当然ですが何もデータは入っていません。
以下を"world"アプリケーションの直下に"load.py"というファイル名で配置します。

import os
from django.contrib.gis.utils import LayerMapping
from models import WorldBorders

world_mapping = {
    'fips': 'FIPS',
    'iso2': 'ISO2',
    'iso3': 'ISO3',
    'un': 'UN',
    'name': 'NAME',
    'area': 'AREA',
    'pop2005': 'POP2005',
    'region': 'REGION',
    'subregion': 'SUBREGION',
    'lon': 'LON',
    'lat': 'LAT',
    'mpoly': 'MULTIPOLYGON',
}

world_shp = os.path.abspath(os.path.join(os.path.dirname(__file__), 'data/TM_WORLD_BORDERS-0.3.shp'))

def run(verbose=True):
    lm = LayerMapping(WorldBorders, world_shp, world_mapping, transform=False, encoding='iso-8859-1')
    lm.save(strict=True, verbose=verbose)

次にshellモードで立ち上げます。

C:\geodjango>manage.py shell

実行してみましょう。

In [1]: from world import load
In [2]: load.run()
…
Saved: Bolivia
Saved: Burma
Saved: Benin
Saved: Solomon Islands
Saved: Brazil
Saved: Bulgaria
Saved: Brunei Darussalam
…
Saved: Italy
Saved: Cote d'Ivoire
Saved: Iraq
Saved: Japan
Saved: Jamaica
Saved: Jordan
Saved: Kenya
Saved: Kyrgyzstan

Saved: San Marino
Saved: Turks and Caicos Islands
Saved: Western Sahara
Saved: Serbia
Saved: Holy See (Vatican City)
Saved: Svalbard
Saved: Saint Martin
Saved: Saint Barthelemy
Saved: Guernsey
Saved: Jersey
Saved: South Georgia South Sandwich Islands
Saved: Taiwan

PgAdmin3で確認してみると
PostgreSQLtable03
posted by (C)常山
このようにデータがインポートされます。


ogrinspect

まずは"world"アプリケーションの"models.py"をバックアップしてください。
次にogrinspectを実行します。

C:\geodjango>manage.py ogrinspect world/data/TM_WORLD_BORDERS-0.3.shp WorldBorders --srid=4326 --mapping --multi

"models.py"を基に最適化したモデルを生成します。

# -*- encoding:utf-8 -*-
# This is an auto-generated Django model module created by ogrinspect.
from django.contrib.gis.db import models

class WorldBorders(models.Model):
    fips = models.CharField(max_length=2)
    iso2 = models.CharField(max_length=2)
    iso3 = models.CharField(max_length=3)
    un = models.IntegerField()
    name = models.CharField(max_length=50)
    area = models.IntegerField()
    pop2005 = models.IntegerField()
    region = models.IntegerField()
    subregion = models.IntegerField()
    lon = models.FloatField()
    lat = models.FloatField()
    mpoly = models.MultiPolygonField(srid=4326)
    objects = models.GeoManager()

    class Meta:
        verbose_name_plural = "World Borders"

    def __unicode__(self):
        return self.name

# Auto-generated `LayerMapping` dictionary for WorldBorders model
worldborders_mapping = {
    'fips' : 'FIPS',
    'iso2' : 'ISO2',
    'iso3' : 'ISO3',
    'un' : 'UN',
    'name' : 'NAME',
    'area' : 'AREA',
    'pop2005' : 'POP2005',
    'region' : 'REGION',
    'subregion' : 'SUBREGION',
    'lon' : 'LON',
    'lat' : 'LAT',
    'mpoly' : 'MULTIPOLYGON',
}


Geographic Adminを使ってみる

どうしても動いているところを見たいという個人的な理由でAdmin Interfaceを先に試します。


ベーシック

まず、"world"アプリケーションの直下に"admin.py"を作成します。

from django.contrib.gis import admin
from models import WorldBorders

admin.site.register(WorldBorders, admin.GeoModelAdmin)

次に、"geodjango"プロジェクト直下の"urls.py"を編集します。

from django.conf.urls.defaults import *
from django.contrib.gis import admin

admin.autodiscover()

urlpatterns = patterns('',
    (r'^admin/(.*)', admin.site.root),
)

実行してみましょう。

C:\geodjango>manage.py runserver
Validating models...
0 errors found

Django version 1.0.2 final, using settings 'geodjango.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

大丈夫なようです。
'http://localhost:8000/admin/'へアクセスしてみましょう。
"World Borders"の追加をクリックするとGeoDjango特有の画面が表示されます。
GeoDjangoAdmin01
posted by (C)常山


OSMGeoAdmin

今度はOpen Street MapバージョンのAdmin Interfaceで表示してみます。
以下のように"admin.py"を編集します。

from django.contrib.gis import admin
from models import WorldBorders

admin.site.register(WorldBorders, admin.OSMGeoAdmin)

アクセスしてみるとこんな感じです。
GeoDjangoAdmin02
posted by (C)常山

巡回

Photoshopでページの端を丸める方法
「例えばこんなの」を提示してくれるインターフェース
最適フォント選びに使える便利ツール「flipping typical」
米HP、Mini 1000ミニノート向けの独自Ubuntu「MIE」をXPユーザにも提供
プロジェクトの進め方が変わる「工事進行基準」に備える(後編)
「Google Calendar」もGears対応 - オフライン閲覧が可能に
Firefox/IE/Safariで相互同期が可能になったブックマーク同期ツール「Foxmarks」。
Webページのキャプチャに便利なFirefoxアドオン「Pearl Cresent Page Saver Basic」
白ごはん.com:家庭料理を中心とした和食レシピサイト
写真を送るとお菓子の種類を認識するサービス「菓写メ」
相模川ふれあい科学館に「バレンタイン水槽」−チョコレートグラミー展示
S5 Reloaded: Standards Based Slideshow
Simple process to estimate times and costs in a web project
Make table rows drag and dropable using the YUI JavaScript Framework

巡回

10インチ版 Aspire one D150 国内発表、2月20日発売
Windowsが起動したままの状態でハードディスクをまるごとイメージ化できるフリーソフト「Macrium Reflect FREE Edition」
デル Inspiron Mini 10 続報
ちょっとまって!外部に発注しちゃうその前に! 自分でできるWebサイトチューニングのポイント
NT互換のフリーなOS最新開発版「ReactOS 0.3.8」
Gmailの「マルチ受信トレイ」が驚くほど便利 【Gmail Labs機能】
Google Earthの火星と海底でフライトシミュレーターをやってみる
ブログパーツの基礎知識 - ブログパーツの作り方
Webページの適正チェックに「RightWebPage」
35 kostenlose, qualitativ hochwertige E-Commerce Templates
分散バージョン管理システムGitを活用しよう
分散バージョン管理システムGit入門
グーグル、「Google Chrome」高速化で新たな取り組み--独自の正規表現を実装
Googleラボで公開されているGmailの「マルチ受信トレイ」を体験
ハードディスクを視覚的に見える化させる『SpaceMonger』
意外に簡単! バニラ・エキストラクトのレシピ
サクッとTo-Doリストを作れるサイト「Printable Checklist」
米lifehacker読者が選んだポータブルアプリ、Best5
JS Charts - Free Javascript Chart Generator
Fun and Useful Online Photography Tools and Resources
HDD内のファイル・フォルダの容量が一目で分かるツール「Free Disk Analyzer」

巡回

9歳のiPhoneアプリ開発者が登場・・・
CSS Animations in WebKit Nightly and iPhone
GmailのToDoリストが「Google Tasks」としてiPhoneからも利用可能に
「Time Machine」が動作しなくなった時に試してみるべきこと
アルミのMacBookを傷から保護するケース
iPhoneからレストランに注文できるアプリが(とうとう)2つ出た
iPhoneのSafariの安定っぷりがすごい
実践! iPhoneアプリ開発 3 カメラアプリの作り方 (3) - 写真を縮小して表示する
今週の注目オンラインソフト for Mac OS X 49 高機能で楽しいマインドマッピングソフト「XMind」
アップル、「Snow Leopard」で位置情報とマルチタッチ向け開発ツールを提供か--米報道
目指せ!iPhoneアプリ開発エキスパート 第7回 応用テクニック
簡単に作れる洒落たiPhoneスタンド
iPhone/touchをサーバー化する「ServersMan@iPhone」
ngmoco、人気ゲーム『Rolando Lite』のお試し版を公開
iPhone・iPod touchで絵文字キーボードを有効にする『Touch Dial Emoji』
iPhotoライクな使いやすいflickrクライアント『flickery』
[iPhone][iPhoneSDK] iPhoneアプリを作ってみよう:第5回 Navigation-Basedアプリ(#6.Webアプリとの比較)
GoogleがBook Search(ブック検索)をiPhone対応へ
OpenTTD for 2.x+
次世代iPhoneは全面にもカメラが搭載!?動画撮影やメッセもできちゃうかも。
[iPhone]Erika SadunさんのiPhoneプログラムの翻訳本が出版されるみたい

巡回

Pythonでssh接続する
[mercurial] 第一回 Mercurial 勉強会 in 神楽坂 を予定しています。
[pyspa]第2回 Python 旅館 (2009/3/27 -28) ... 予定
More on Python IDEs Eric4
[Python] ディスクの空き容量を調べる、 Linux, Windows 両対応
[Python] Loading and Unloading elements
ATOK 2009 for Windows 本日発売 & 新API公開!