JavaScriptを使用せずにルートをマップし、ラベルを付け、表示する

画像 かつて、javascriptを使用せずに私の都市の地図上にルート表示ツールを作成するというアイデアを得ました。 これを支持する議論さえありました。 たとえば、マップ画像を使用します。

UPD:カードには人気のあるサービスに類似したものがあります(作成時にはまだ知りませんでした):



コメントリンクをありがとう。

しかし、私たちは自分でやっています。





結果は、マーカーを適用するマップとして任意の画像を選択できるツールです。 設定でコーナーポイントの地理座標を指定するだけです。 OSMデータ、つまりブートローダーを使用しました。

画像

これらの座標は、config.phpの変数で、左から左回りに指定されます

$box_str = 86.05627,55.33832,86.1076,55.36035; //ldru (    )
      
      





png形式でエクスポートされた画像はルートに配置され、その名前は設定で指定されます

 $source_file = "bigmap.png"; //,   
      
      





結果の大きなマップを断片にカットします。 各方向の部品の数は、設定の同じ場所に設定されます

 $x_count_parts = 20; $y_count_parts = 16;
      
      





表示するポイントの数を変えたり、元のマップのサイズを変えたりして、速度を実験したくありませんでした。



タグ付け


Show.phpはindex.phpに接続され、その結果、複数の部分で構成されるレンダリングされたマップが表示されます。 マーカーがあるパーツはpicture.phpファイルを使用して描画され、残りは単純な出力です

出力用のすべてのラベルの座標は、GETリクエストによって送信されます。次に例を示します。

points=86.0735,55.3529;86.0765,55.3519;86.0963,55.3519





ここでは、各マーカーはセミコロンで区切られ、各マーカーの2つの座標はコンマで区切られています。 変数が設定されていない場合、デモンストレーション用に(86.0995、55.3619)、(86.0765、55.3629)、(86.0765、55.3529)が描画されます。

デフォルトでは、スケールは、受信したマーカーのすべての座標を含む正方形が出力に表示されるように調整されます。

画像

オプションで、draw_area.phpを接続できます。この目的は、以前に定義された正方形から特定の半径だけ表示領域を増やすことです。 ズーム率はカスタマイズ可能です。



管理ツール


画像

オプションでcontrols.phpを接続します。 作業が完了すると、$ controls変数には、リンク付きのツールを描画するhtml-texが含まれます。 アクションは、マップを左、右、上下にシフトします。

ズームコントロール:



ここでは、プレゼンテーションをメインコードから分離していないことを責めることができますが、この小さなフラグメントでは、テンプレートを個別に接続するのは無理だと思いました。



マーカーフラグメントの描画


画像

このアクションはpicture.phpで行われます。 マーカー自体は赤い正方形のように見え、その幅と色はconfig.phpで構成されます。

次の変数は、GET要求でスクリプトに転送されます。



ここでは、欠陥がすぐに現れます。マーカーがフラグメントの境界にある場合、描画されません。 しかし、これは小さなインデントを提供することで回避できます。



予定


過去30〜60分間に携帯電話からルートの画像を受信する予定でした。 GPSトラッカーからデータを受信するためのサーバーが構成およびテストされました。 データは正常に送信され、建物施設で表示されました。 同じデータを任意の基準でmysqlテーブルから簡単に選択できます。 このルートを追跡する必要性は予想よりも早く消え、プロジェクトはまだ私にとって興味深いものでした。 彼はそれをある程度の準備を整え、それを放棄し、他のものに切り替えました。



動作中

http://rghost.ru/8073291-ソース

許して、無料ホスティング。



All Articles