ロブ、これを行うためのより良い方法があると確信していますが、これが私が実装した方法です。
これから紹介するソリューションでは、Web アプリケーションからアクセスでき、そのデータを取得する Mapbox マップ (TileMill のデータ ソース追加機能に相当する Web アプリケーション CSV インポートについては、「omnivore mapbox」を検索してください) にマーカーを追加できるようにする必要があります。 MS SQL データベースに接続された GridView から生成された CSV ファイルから。
私は同じ問題を抱えていました。データはSQL 2008にあり、それを使用してマップを作成する必要があります。Mapbox では、ピンを表示するために CSV または POSTGRESQL が必要でしたが、POSTGRESQL サーバーをどこにもセットアップしていませんでした。これが私がしたことです:(私はC#を使用していて、ASP NET Webアプリケーションを作成していることに注意してください)
- 空の ASPX ページを作成します。DataGridView.aspx と呼びましょう。
- GridView を追加する
- その GridView を SQL データ ソースにリンクする
- ボタンを作成し、「Refresh CSV」と呼びます
- それをダブルクリックすると、そのボタンのイベントが自動的に作成されます。
そのボタンのイベントのコードで、次のコードを使用します。
protected void Button1_Click(object sender, EventArgs e)
{
GridView1.AllowPaging = false;
GridView1.DataBind();
StringBuilder sb = new StringBuilder();
for (int k = 0; k < GridView1.Columns.Count; k++)
{
if(k==0) // little trick to avoid comma at the end of the line
{
sb.Append(GridView1.Columns[k].HeaderText);
continue;
}
//add separator
sb.Append(',' + GridView1.Columns[k].HeaderText);
}
//append new line
sb.Append("\r\n");
for (int i = 0; i < GridView1.Rows.Count; i++)
{
for (int k = 0; k < GridView1.Columns.Count ; k++)
{
if (k == 0) // little trick to avoid comma at the end of the line
{
sb.Append(GridView1.Rows[i].Cells[k].Text);
continue;
}
//add separator
sb.Append(','+GridView1.Rows[i].Cells[k].Text );
}
//append new line
sb.Append("\r\n");
}
string a= string.Empty;
StreamWriter yourStream = File.CreateText(Server.MapPath("~/CSVExport.csv"));
a = sb.ToString()+"\r\n"; //formatting text based on poeition
yourStream.Write(a);
yourStream.Close();
}
これらを DataGridView.aspx.cs ファイルの先頭に置くことを忘れないでください
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Text;
Web アプリケーションのルートで、空のファイルを作成し、「CSVExport.csv」という名前を付けます。
これにより、CSV としてフォーマットされた GridView データが保持されます。
このボタンをクリックするたびに、CSVExport.csv ファイルが更新されます。
すべてが正しく表示されるかどうかを確認するには、TileMill を起動して Web サイトを実行 (ローカルでデバッグ実行) します。
[localhost:whateverthatportnumberis]/DataGridView.aspx に移動します。
ボタンをクリックします。CSVExport.csv を開いて、ファイルが更新されているかどうかを確認します (データは CSV ファイル形式で表示されます)。
ここで、ローカル Web サイトのテストを停止せずに、TileMill [localhost:whateverthatportnumberis]/CSVExport.csv の CSV ファイルへのリンクを使用します。
CSVExport.csv ファイルが正しくフォーマットされている場合、マーカーが表示されているはずです。これは、SQL から Mapbox で使用できる CSV 形式にデータを取得する方法に関する質問に答えるはずです。ここで、「ローカルでアクセスする必要があるジオマッピング アプリケーションを作成するためのより良い方法はありますか?」と言うと、質問があいまいになります。ですから、ここでやめます。
繰り返しますが、先ほど提供したソリューションでは、Web アプリケーションからアクセスでき、そのデータを取得する Mapbox マップ (TileMill のデータ ソース追加機能に相当する Web アプリケーションの CSV インポートについては、「omnivore mapbox」を検索してください) にマーカーを追加できるはずです。 MS SQL データベースに接続された GridView から生成された CSV ファイルから。