兄は、生徒が空白の地図を作成して印刷できるWebアプリを作成するよう提案しました。白地図とは、国境や海域などを含み、テキストラベルを含まない地図です。最初の使用例は次のとおりです。
それで私はアプリを書き始めました、そしてステップ1で、私は最初の問題に遭遇しました。空白の地図のデータベースがありません。ユーザーがリストから白地図を選択できるようにするには、誰かが白地図のデータベースを作成して入力する必要があります。ここでmaps
tableには、次の(疑似)定義があります。
CREATE TABLE maps (
name TEXT PRIMARY KEY,
image BLOB,
minlat FLOAT,
minlon FLOAT,
maxlat FLOAT,
maxlon FLOAT
);
テストのために、このテーブルの1行または2行に自分で記入することにしました。このハンガリーの白地図をグーグル検索でダウンロードしました。
では、一体どうやって座標を決定するのですか? GoogleEarthでオーバーレイを作成してみましょう。
ご覧のとおり、正確に配置できなかったため、東の国境は少しずれています。だから私の質問は:
地図を示す画像ファイルがある場合、その角の正確な緯度/経度座標を決定するにはどうすればよいですか?
地図によって異なります。地図作成マップは、(ほぼ)球面から平らな2次元表面への投影です。あれは:
(X, Y) = Fproj(Lat, Long)
ここで、Fproj()は射影関数です。
たとえば、赤道上にX軸があり、子午線が0のY軸を持つ標準のメルカトル図法の場合:
X = Longitude
Y = ln(tan(Latitude) + sec(Latitude))
地図投影 のタイプと、地図の角の緯度/経度がわかっている場合は、逆投影を行うことで、X、Y座標に基づいて緯度/経度を決定できる場合があります。 。
Wolfram MathWorldには地図投影法の優れたカタログがあります およびその逆。
既存の緯度と経度のデータに基づいて地図を表示することに興味があり、独自の地図投影関数を作成したい場合(ほとんどは実装が非常に簡単です)、データベースとフラットファイルのいくつかのソースのいずれかを使用できます。国境、湖、川など。私のお気に入りの検索エンジンで簡単に検索すると、次の2つが見つかります。
地図の投影法がわからないが、地図上のいくつかのポイントの緯度、経度がわかっている場合は、補間を使用して、近くに登録されているポイントの緯度、経度に基づいて、マップ上のポイントの緯度、経度を推定できます。