ポリマップとポリ…ポリゴン


9

最近、Bing Maps + Polymapsで遊んでいます。

Bingは、衛星画像を含むポリマップで使用できる唯一のマッピングリソースであることが明らかになりました。これは本当ですか?

私は、マップ上にさまざまなサイズの多くのポリゴンを描画し、それらが表すものに応じてさまざまな色で塗りつぶすことを達成しようとしています。さらに、これらの各ポリゴンをクリックできるようにしたいと考えています。

地理データをポリマップで地図に読み込むには、geoJSONオブジェクトの一部として.features()または.url()を使用することを理解しています。

私は.features()を機能させていますが、この関数を使用することにより、次のように、ポリゴンデータをJavaScriptファイル自体に埋め込む必要があります。

map.add(po.geoJson()
        .features([
    {
      "geometry": {
        "coordinates": [[
[[-63.599925935268395,44.64018531837119],[-63.599789142608664,44.640219671024646],[-63.59973818063736,44.6401452402498],[-63.599877655506134,44.64010707058464],[-63.599925935268395,44.64018150140844]],

[[-63.59986692667008,44.639874235083376],[-63.59975695610047,44.63991431339196],[-63.599697947502136,44.63981507181532],[-63.5998159646988,44.639782627416906],[-63.59986424446105,44.6398723265918]]
        ]],
        "type": "MultiPolygon"
      },
      "type": "Feature",
      "id": "beat:05X",
      "properties": {"name": "05X"}
    }

        ]));

このデータを実際にデータベースから取得し、JavaScript自体に静的に配置しないようにしたい-これは代わりに.url()メソッドを使用する必要があることを示しています-正しいですか?.url()メソッドを使用する場合、geoJSONを返す有効なURLテンプレートを渡す必要があります...自分のプライベートデータでこれを行うにはどうすればよいですか?PHPとmySQLに精通しています-代わりに空間データベースシステムを使用する必要がありますか?

そして、MapServer、GeoServerなどのマップサーバーはどのようにこれに適合しますか?$ _GET変数からこれらのテンプレートを読み取り、データベースをクエリして適切なgeoJSON文字列を返すPHPスクリプトを設定できませんか?

私は本当にいくつかのインスピレーション、私の道を私に設定し、私が持っている疑いのいくつかを殺すためのいくつかの指針が必要です。私はちょうどstackexchangeを調べて、マップサーバーから地理空間データベースまですべてをグーグルで検索していることに気づきました。

長い質問ですが、これらのことが明確になったら、私ははるかに良い立場になるはずです。


代用がある場合は、方程式からポリマップを削除できます。

要約すると、私は、すべての異なる形状、サイズ、色、透明度のデータベース(PostGIS?)から多数のポリゴンを取得し、それらを地図上にプロットしようとしています。それは本質的にそれです!ポリマップにはベクターグラフィックスがあります。上記のコードを考えると、外出先でこれを行うのは簡単だと思いました...他のアイデアがあれば、スクラップすることができます。最良の解決策何ですか?私の唯一のビジネス要件は、衛星画像を有効にすることです...これは、BingまたはGoogleと連携していることを意味します。

回答:


8

GeoJSONについて話している場合は、あらゆる種類のデータベースとバックエンドサーバーを使用できます。

1)TMSまたは/{zoom}/{x-coord}/{y-coord}.jsonスタイルのURLを受け取り、Z / X / Yを境界ボックスに変換できることを期待します。

(それを行うのに必要な数学を確認したい/必要がある場合は、Tilestache(.org)のようなものを見てください。)

2)GeoJSONを返します。

データの結果にスタイルを設定し、インタラクティブビットを追加するには、レイヤーのon()メソッドを使用して「ロード」関数を定義する必要があります。例えば:

var l = org.polymaps.geoJson();
l.url( "http://example.com/tiles/{Z}/{X}/{Y}.json");
l.on( "load"、function(e){...});

Polymapsサイトには、優れたドキュメントとサンプルコードがたくさんありますが、最近行ったPolymapsワークショップのスライドとサンプルコードも含めました。

http://www.aaronland.info/talks/where2011/

http://www.aaronland.info/talks/where2011/workshop

乾杯


アーロンさん、ありがとうございます。あなたが投稿したリンクは本当に必要不可欠です。後で確認するためにファイルをダウンロードしました。対話型の段階で参照します。実際のタイリングはBingによって処理されるため、Tilestacheが必要なものかどうかはわかりません。私が提供するカスタムデータはポリゴンデータであり、.png、.jpgなどの画像ではありません。./flickr.jsonでピークに達する可能性はありますか?リンクがありません。乾杯と再び感謝します。
ジョーダンアルセノ

私はworkshop / 005-data /のルートにそれを見つけました、ありがとう!
ヨルダンアルセノ

2

OK、それでここに取引があります- このブログ投稿

すべてをクリアした。ポリマップで遊んでいる人は必読です。Redditの Henryで見つけました

AaronはTileStacheの使用について言及しましたが、実際にそれが鍵です。私はその方法を知りませんでした-上記のブログ投稿はTileStacheを使用する上で非常に有益です。大きな勝利。


各要素をクリック可能にしたいとおっしゃっていましたが、どのようにしてそれを実現しましたか?私はマップを実行していますが、要素をマップ内でクリック可能にすることについては壁に直面しています。

こんにちは、Erikさん。polymapsプラグインをダウンロードしてWebサーバーに抽出すると、完璧な例にアクセスできます:localhost / polymaps / examples / tipsy / tipsy.html-この人のソースを確認してください。正直なところ、私はこのマッピングプロジェクトを一時休止モードにして、クリック可能なデータポイントをまだ達成していませんが、これがまさに私が始めるところです。ではごきげんよう!
ジョーダンアルセノ2011

@JordanArsenaultの「このブログ投稿」リンクが機能しなくなった-たまたま情報をダウンロードしましたか?ありがとう
Stephen Lead

スティーブンさん、ブログ投稿はダウンしていて、ダウンロードしたコピーはありません。ただし、goalfinchの作成者はこちらにあります:linkedin.com/in/hanskuder ...コンテンツを見つけた場合はお知らせください。リンクを修正します。またはこの投稿を編集してください:)
ジョーダンアルセノ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.