CREATE TABLE JSON1 (
id int(11) NOT NULL auto_increment,
lat decimal(10,6) NOT NULL default’0.000000′,
lng decimal(10,6) NOT NULL default’0.000000′,
html varchar(255) NOT NULL default “,
label varchar(255) NOT NULL default “,
PRIMARY KEY (id)
) TYPE=MyISAM
◆インポートさせるデータのテキストファイル「*.txt」を作成
1;35.714559;139.517698;<a href=”http://waotabi.web.fc2.com/kouen/tokyo-koganei.html” target=”_blank”>詳細リンク</a>;小金井公園
2;35.763940;139.384980;<a href=”http://waotabi.web.fc2.com/kouen/tokyo-noyamakita.html” target=”_blank”>詳細リンク</a>;野山北・六道山公園
3;35.676495;139.491963;<a href=”http://waotabi.web.fc2.com/kouen/tokyo-fuchumori.html” target=”_blank”>詳細リンク</a>;府中の森公園
4;35.656227;139.473656;<a href=”http://waotabi.web.fc2.com/kouen/tokyo-fuchuukyoudounomori.html” target=”_blank”>詳細リンク</a>;府中市郷土の森
5;35.63740;139.46047;<a href=”http://waotabi.web.fc2.com/kouen/tokyo-sakuragaoka.html” target=”_blank”>詳細リンク</a>;都立桜ヶ丘公園
6;35.682294;139.524779;<a href=”http://waotabi.web.fc2.com/kouen/tokyo-nogawa.html” target=”_blank”>詳細リンク</a>;都立野川公園
7;35.960831;139.850614;<a href=”http://waotabi.web.fc2.com/chiba-shimizu.html” target=”_blank”>詳細リンク</a>;清水公園
◆MySQLにテキストファイルをインポート
◆MySQLからJSON形式ファイルを生成するためのphpファイルを作成
<?php
include(“mysql2json.class.php”);
//MySQL接続設定
define(“DBSV”, “サーバ名“);
define(“DBNAME”, “データベース名“);
define(“DBUSER”, “ユーザ“);
define(“DBPASS”, “パスワード“);
//MySQL接続
$conn = mysql_connect(DBSV, DBUSER, DBPASS) or die();
mysql_query(“SET NAMES utf8″,$conn);
mysql_select_db(DBNAME, $conn);
//SQLの発行
$num=0;
$sql = “SELECT * FROM JSON1“;
$result = mysql_query($sql, $conn);
$num=mysql_affected_rows();
//JOSNファイル生成
$objJSON=new mysql2json();
print(trim($objJSON->getJSON($result,$num)));
?>
◆ブラウザで上記phpファイルにアクセスして、JSON形式ファイルが生成されているか確認
http://waox.main.jp/news/maps/googlemapsapi/example/json1-demo.php
{ “data”: [ { “id” : “1”, “lat” : “35.714559”, “lng” : “139.517698”, “html” : “詳細リンク“, “label” : “小金井公園” }, { “id” : “2”, “lat” : “35.763940”, “lng” : “139.384980”, “html” : “詳細リンク“, “label” : “野山北・六道山公園” }, { “id” : “3”, “lat” : “35.676495”, “lng” : “139.491963”, “html” : “詳細リンク“, “label” : “府中の森公園” }, { “id” : “4”, “lat” : “35.656227”, “lng” : “139.473656”, “html” : “詳細リンク“, “label” : “府中市郷土の森” }, { “id” : “5”, “lat” : “35.637400”, “lng” : “139.460470”, “html” : “詳細リンク“, “label” : “都立桜ヶ丘公園” }, { “id” : “6”, “lat” : “35.682294”, “lng” : “139.524779”, “html” : “詳細リンク“, “label” : “都立野川公園” }, { “id” : “7”, “lat” : “35.960831”, “lng” : “139.850614”, “html” : “詳細リンク“, “label” : “清水公園” } ] };
◆最後にGoogle Maps APIで活用
関連記事一覧
スポンサードリンク
MySQLもPHPもJSONも初心者のものです。
非常に興味深い記事で、参考にさせていただきました。
すごく勉強になりました^^
今Twitterの緯度、経度をMySQLに格納されているので
その100件ほどの緯度、経度をGoogle Mapsにプロットしたいのですが
いい案がないかと思い探しているとここにたどり着きました。
この方法のプロットまでのサンプルソースは公開していらっしゃいますか?
@探検者さん
MySQL⇒JSON⇒Google Maps APIというご希望であれば、ソースは製作しておりません。MySQL⇒XML⇒Google
Maps APIであれば、Googleのページにサンプルコードがありますので試されてみて下さい。なお、下記記事は、このGoogleのページのサンプルを試した時のものですので参考になれば幸いです。XMLでもPC上での実用には、あまり遅いとは感じないと思います(マーカー数 約800点)。
スマートフォン用であれば、やはりJSON読み込みのほうがいいのでしょうが、手が回っておりません。上記マーカー数800点ほどの座標情報をスマートフォンで見れるように試した経緯があります。サンプルはhttp://waox.main.jp/iPhone/jq/demos/phpmysqlgeo_clicroot/#map (PCからは、ブラウザGoogle Chromeでどうぞ)。
これで遅いと感じるのであれば、お役に立てず申し訳ありません。
http://waox.main.jp/news/?p=123
http://waox.main.jp/news/?p=130
http://waox.main.jp/news/?p=139
http://waox.main.jp/news/?p=193
http://waox.main.jp/news/?p=190