Original post: http://anothermysqldba.blogspot.com/2013/05/mysql-gis-haversine-formula-and.html
http://webhelp.esri.com/arcgisserver/9.3/java/index.htm#ジオ/ types_of_geodatabases.htm
#geodatabases/determ-1479045992.htm http://webhelp.esri.com/arcgisserver/9.3/java/index.htm
上記マークマウンダーã®è¨˜äº‹ã¯ã€GISã§ç´ 晴らã—ã„外観ã§ã™ã€‚ ã“ã®ãƒ–ãƒã‚°ã®è¨˜äº‹ã¯ã€å¼ã«é›†ä¸ã—ã¾ã™ãŒã€ç§ã¯Markã®ç´ 敵ãªãƒã‚¹ãƒˆã‚’指摘ã—ãŸã‹ã£ãŸã®ã§ã™ã€‚
空間インデックスã®ä½¿ç”¨ã¯ã€MySQL 5.5上ã«ã‚ã‚‹ã‹ã€ä¸Šè¨˜å¿µé ã«InnoDBãŒãƒ‡ãƒ•ォルトã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã‚¨ãƒ³ã‚¸ãƒ³ã§ã‚ã‚‹ã¨ã“ã¨ã‚’ç¶šã‘れã°ãã†ã€MyISAMストレージエンジンã§å‹•作ã—ã¾ã™ã€‚
ã ã‹ã‚‰ãƒžãƒ«ã‚³ã‚¹ã‚ーマè¨è¨ˆã§ç§ã¯ä¸å›½ã®ä¸€éƒ¨ã®éƒ½å¸‚ã®ç·¯åº¦çµŒåº¦ã‚’ç§»æ¤ã€‚
ã“ã®ãƒ‡ãƒ¼ã‚¿ã¯ã€ã“ã“を経由ã—ã¦åŽé›†ã•れãŸhttp://www.infoplease.com/ipa/A0001769.html
ãŸã ã€ãれã¯ã™ã¹ã¦ã®ä»•事を確èªã™ã‚‹ãŸã‚....
今ã§ã¯è·é›¢å¼ã®ä¸–ç•Œã«æŽ˜ã‚‹ãŸã‚ã®æ™‚é–“ã ã£ãŸ.. ç§ã¯GISを当ã¦DBAã§ã¯ãªã„ã€ç§ã¯ãれã¯å•題をèªã‚ã‚‹ã“ã¨ã¯ã‚りã¾ã›ã‚“。 ç§ãŒéé‡ã—ãŸæ•°å¦ã®æ•°å¼ã®ç”ãˆã®ç¯„囲をもã£ã¨æ¥½ã—ã‚“ã§ã€ãã†ã§ãªã‘れã°ç§ã¯ã‚‚ã£ã¨ä¸Šã®ãƒ†ãƒ¼ãƒ–ãƒ«æƒ…å ±ã‚’ä½¿ç”¨ã—ã¦ã„ãŸã ã‚ã†ã€‚ 代ã‚りã«ã€ã‚ãªãŸã®ãŸã‚ã ã‘ã®ãƒªãƒ•ァレンスã§ã™ã€‚ ç§ã«ã¯2ã¤ã®ç·¯åº¦/é•·ã„点間ã®è·é›¢ã‚’計算ã™ã‚‹ãŸã‚ã«åºƒãè°è«–ã®æ–¹æ³•を見ã«è¡Œã£ãŸã€‚ ã‚ãªãŸã¯ã€ç•°ãªã‚‹é–¢æ•°ã€ãƒ—ãƒã‚·ãƒ¼ã‚¸ãƒ£ã€ã“れを計算ã™ã‚‹ã‚ªãƒ³ãƒ©ã‚¤ãƒ³ãªã©ã®å¤šãを見ã¤ã‘ã‚‹ã§ã—ょã†ã€‚
ç§ã¯å¼ã‚’テストã—ãŸã‹ã£ãŸã®ã§ã€æœ€åˆã«ç§ã¯ã„ãã¤ã‹ã®å¤‰æ•°ã‚’è¨å®šã™ã‚‹
ãŸã¨ãˆã°ã€æ¬¡ã®ã‚ˆã†ã«
ã“ã®ã‚¦ã‚§ãƒ–サイトã§ã¯ã€è·é›¢ã®ãŸã‚ã®æ©Ÿèƒ½ã‚’æŒã£ã¦ã„ã¾ã™ã€‚ ç§ã¯ã‚ãªãŸãŒã‚ãªãŸã®ãŸã‚ã®å ´æ‰€ã§åŒºåˆ‡ã‚Šã‚ªãƒ—ションã§ãれをカット&ペーストã§ãるよã†ã«ã™ã‚‹ã«ã¯ã€ä»¥ä¸‹ã®ã“ã¨ã‚’è¿½åŠ ã—ãŸã€‚ ã—ã‹ã—ã€ãれã¯å‹•作ã—ã¾ã™ã‹ï¼Ÿ ã¨ã“ã‚ã§ç§ã‚‚3959ã«åœ°çƒã®åŠå¾„値を更新ã—ãŸã€‚
http://www.sqlexamples.info/SPAT/mysql_distance.htm
別ã®ã‚¯ã‚¨ãƒªã®ãƒ†ã‚¹ãƒˆã‚’示ã—ã¦ã„
ã—ã‹ã—ã€ã‚‚ã†ä¸€ã¤ã¯ã“ã“ã§è¦‹ã¤ã‘ã‚‹http://www.posteet.com/view/1555ã‚’ :
ã—ã‹ã—ã€ã“れã¯ã¾ã é–“é•ã£ã¦ã„る。 北京ã‹ã‚‰é¦™æ¸¯çŽ‹ã¾ã§ã®è·é›¢ã¯ã€ã“ã®ã‚¦ã‚§ãƒ–サイトã«ã‚ˆã‚‹ã¨ã€å½¼ã®1963ã‚ãƒã¨1224.9マイルã§ã™ã®ã§ï¼šhttp://www.timeanddate.com/worldclock/distances.html?n=102 。 ã ã‹ã‚‰ã€æœ€åˆã¨æœ€å¾Œã®çµæžœã¯éžå¸¸ã«è¿‘ãã«ã‚りã¾ã™ã€‚
ã ã‹ã‚‰ã€å¤šãã®æ™‚é–“ã‚’ç„¡é§„ã«ã—ãŸå¾Œã€ã¯ã„ã€ç§ã¯ã€ç§ã¯ã¾ã ç§ã¯ç°¡å˜ã¨æ¯”較ã§ãã‚‹ã“ã¨ã‚’æ•°å¼ã‚’使用ã—ã¦çµæžœã‚’望んã§ã„ãŸã“ã¨ã‚’èªã‚ãªã„。
座標{LAT1ã€lon1}ã¨{LAT2ã€lon2}ã‚’æŒã¤2ã¤ã®ãƒã‚¤ãƒ³ãƒˆé–“ã®å¤§åœè·é›¢dã¯æ¬¡å¼ã§ä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚
D = ACOS(SIN(LAT1)*罪(LAT2)+ COS(LAT1)* COS(LAT2)* COS(lon1-lon2))
別ã®å¼ãŒåŠæ£çŸ¢å¼ã§ã™
ã‚‚ã†ä¸€åº¦ã€ã‚ãªãŸã¯éžå¸¸ã«ç•°ãªã‚‹çµæžœã‚’å‚ç…§ã—ã¦ãã ã•ã„。 ç§ã¯ã€ åŠæ£çŸ¢ å¼ã§ã‚ˆã‚Šè‰¯ã„çµæžœã‚’期待ã—ãŸã€‚
ã ã‹ã‚‰ã€ãれã¯ç§ãŒæ£ã—ã実装ã™ã‚‹ã¨ãã«ä½¿ç”¨ã™ã‚‹æ£ã—ã„å¼ã§ã‚ã‚‹ã¨ä¿¡ã˜ã‚‹ åŠæ£çŸ¢ å¼ã«æœ€ã‚‚è¿‘ã„よã†ã«ç§ã«ã¯è¡¨ç¤ºã•れã¾ã™ã®ã§ã€ç§ã¯ GeoDistKM 機能ã¨ä¸€ç·’ã«è¡Œã£ãŸã“れらã®å¼ã§éŠã‚“ã§å¾Œã€‚ ã“れã¯ã€ã‚¦ã‚£ãƒªã‚¢ãƒ ã‚ºã®æƒ…å ±ã«åŸºã¥ã„ã¦ç§ãŒæ›¸ã„ãŸèˆªç©ºå¼ã«åƒ…å·®ã§ç¶šã„ã¦ã„る。
1942å¹´ã¯ã€ç§ã¯ã€å½¼ã‚‰ã¯åŒæ§˜ã«ãれをæ£ã—ã計算ã—ãŸã¨è¨€ã†ã“ã¨ã§ã™ã‚ªãƒ³ãƒ©ã‚¤ãƒ³æ¤œç´¢ã‚’介ã—ã¦é›†ã¾ã£ãŸ1963å¹´ã®çµæžœã§ã¯ã‚りã¾ã›ã‚“ãŒã€‚ 極ã§è¿‘ã¥ã„ä¸€ç·’ã«æ¥ã¦ã€åœ°çƒã¨ç·¯åº¦ã®æ›²ã€LONã¯ç•°ãªã‚‹å¼ã«å¤šå°‘ã®èª¤å·®ãŒå¯èƒ½ã«ãªã‚Šã¾ã™ã€‚ ã ã‹ã‚‰ç§ã¯ã€ç¾åœ¨ã€ã“ã®ã«å›ºåŸ·ã—ã¾ã™ï¼š
PlanetMySQL Voting: Vote UP / Vote DOWN
MySQLã¯ã€äººã€…ãŒGISを考ãˆã‚‹ã¨ãã«æœ€åˆã«é ã«æµ®ã‹ã¶ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã§ã¯ã‚りã¾ã›ã‚“。 以下ã«è¨˜è¼‰ã•れã¦ã„るデータベースã¯ã€ä»¥ä¸‹ã®ã¨ãŠã‚Šã§ã™ã€‚
- オラクル
- Microsoft SQL Serverã®
- IBM DB2
- IBM Informixã®
- PostgreSQLã®
http://webhelp.esri.com/arcgisserver/9.3/java/index.htm#ジオ/ types_of_geodatabases.htm
#geodatabases/determ-1479045992.htm http://webhelp.esri.com/arcgisserver/9.3/java/index.htm
MySQLã¯ä»Šã„ã¤ã‹ã®ãŸã‚ã«GISã§å–り組んã§ããŸã€ãれã¯ã€MySQL 4.1ã«æˆ»ã‚Šã¾ã™ï¼š
- http://howto-use-mysql-spatial-ext.blogspot.com/2007/11/using-circular-area-selection.html
- http://ftp.nchu.edu.tw/MySQL/tech-resources/articles/4.1/gis-with-mysql.html
- http://dev.mysql.com/doc/refman/4.1/en/gis-introduction.html
- http://www.xaprb.com/blog/2009/02/12/5-ways-to-make-hexadecimal-identifiers-perform-better-on-mysql/
ã ã‹ã‚‰ã€MySQLを使用ã™ã‚‹ãŸã‚ã«ã€ç¾å®Ÿã«ã¯ã€å¯èƒ½ãªMySQLã®ç´„何ã§ã™ã‹ï¼Ÿ ã¯ã„ã€ç§ã¯æ–¹æ³•を示ã—ãŸã„ã¨æ€ã£ã¦ã„...
空間インデックスã®ä½¿ç”¨ã¯ã€MySQL 5.5上ã«ã‚ã‚‹ã‹ã€ä¸Šè¨˜å¿µé ã«InnoDBãŒãƒ‡ãƒ•ォルトã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã‚¨ãƒ³ã‚¸ãƒ³ã§ã‚ã‚‹ã¨ã“ã¨ã‚’ç¶šã‘れã°ãã†ã€MyISAMストレージエンジンã§å‹•作ã—ã¾ã™ã€‚
> CREATE TABLE geom (
-> lat float(10,7) NOT NULL,
-> lon float(10,7) NOT NULL,
-> g GEOMETRY NOT NULL,
-> SPATIAL INDEX(g)
-> ) ENGINE=Innodb;
ERROR 1464 (HY000): The used table type doesn't support SPATIAL indexes
> CREATE TABLE geom (
-> lat float(10,7) NOT NULL,
-> lon float(10,7) NOT NULL,
-> g GEOMETRY NOT NULL,
-> SPATIAL INDEX(g)
-> ) ENGINE=MyISAM;
ã ã‹ã‚‰ãƒžãƒ«ã‚³ã‚¹ã‚ーマè¨è¨ˆã§ç§ã¯ä¸å›½ã®ä¸€éƒ¨ã®éƒ½å¸‚ã®ç·¯åº¦çµŒåº¦ã‚’ç§»æ¤ã€‚
ã“ã®ãƒ‡ãƒ¼ã‚¿ã¯ã€ã“ã“を経由ã—ã¦åŽé›†ã•れãŸhttp://www.infoplease.com/ipa/A0001769.html
CREATE TABLE china (
cityname varchar(50) DEFAULT NULL,
lat float(10,7) NOT NULL,
lon float(10,7) NOT NULL,
g GEOMETRY NOT NULL,
SPATIAL INDEX(g)
) ENGINE=MyISAM;
INSERT INTO china VALUES ('Beijing', 39.55, 116.25, GeomFromText('POINT(39.55 116.25)'));
INSERT INTO china VALUES ('Canton', 23.7, 113.15, GeomFromText('POINT(23.7 113.15)'));
INSERT INTO china VALUES ('Chongqing', 29.46, 106.34, GeomFromText('POINT(29.46, 106.34)'));
INSERT INTO china VALUES ('Hong Kong', 22.20, 114.11, GeomFromText('POINT( 22.20 114.11)'));
INSERT INTO china VALUES ('Shanghai', 31.10, 121.28, GeomFromText('POINT(31.10 121.28)'));
ãŸã ã€ãれã¯ã™ã¹ã¦ã®ä»•事を確èªã™ã‚‹ãŸã‚....
select lat, lon from china;
+------------+-------------+
| lat | lon |
+------------+-------------+
| 39.5499992 | 116.2500000 |
| 23.7000008 | 113.1500015 |
| 22.2000008 | 114.1100006 |
| 31.1000004 | 121.2799988 |
+------------+-------------+
ã ã‹ã‚‰ç§ãŸã¡ã¯åŒ—京ã‹ã‚‰é¦™æ¸¯ã¾ã§ã®è·é›¢ã‚’確èªã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
クイックルックオンライン㯠ã€ãれãŒ1963ã‚ãƒã§ã™ãŒã€ç§ãŸã¡ã®ãƒ‡ãƒ¼ã‚¿ã‚’確èªã—ã¦ã¿ã¾ã—ょã†ã‚’æ•™ãˆã¦ãれる。
今ã§ã¯è·é›¢å¼ã®ä¸–ç•Œã«æŽ˜ã‚‹ãŸã‚ã®æ™‚é–“ã ã£ãŸ.. ç§ã¯GISを当ã¦DBAã§ã¯ãªã„ã€ç§ã¯ãれã¯å•題をèªã‚ã‚‹ã“ã¨ã¯ã‚りã¾ã›ã‚“。 ç§ãŒéé‡ã—ãŸæ•°å¦ã®æ•°å¼ã®ç”ãˆã®ç¯„囲をもã£ã¨æ¥½ã—ã‚“ã§ã€ãã†ã§ãªã‘れã°ç§ã¯ã‚‚ã£ã¨ä¸Šã®ãƒ†ãƒ¼ãƒ–ãƒ«æƒ…å ±ã‚’ä½¿ç”¨ã—ã¦ã„ãŸã ã‚ã†ã€‚ 代ã‚りã«ã€ã‚ãªãŸã®ãŸã‚ã ã‘ã®ãƒªãƒ•ァレンスã§ã™ã€‚ ç§ã«ã¯2ã¤ã®ç·¯åº¦/é•·ã„点間ã®è·é›¢ã‚’計算ã™ã‚‹ãŸã‚ã«åºƒãè°è«–ã®æ–¹æ³•を見ã«è¡Œã£ãŸã€‚ ã‚ãªãŸã¯ã€ç•°ãªã‚‹é–¢æ•°ã€ãƒ—ãƒã‚·ãƒ¼ã‚¸ãƒ£ã€ã“れを計算ã™ã‚‹ã‚ªãƒ³ãƒ©ã‚¤ãƒ³ãªã©ã®å¤šãを見ã¤ã‘ã‚‹ã§ã—ょã†ã€‚
ç§ã¯å¼ã‚’テストã—ãŸã‹ã£ãŸã®ã§ã€æœ€åˆã«ç§ã¯ã„ãã¤ã‹ã®å¤‰æ•°ã‚’è¨å®šã™ã‚‹
SET @lat1 =39.55;
SET @long1 =116.25;
SET @lat2 =22.20;
SET @long2 =114.11;
ãŸã¨ãˆã°ã€æ¬¡ã®ã‚ˆã†ã«
ã“ã®ã‚¦ã‚§ãƒ–サイトã§ã¯ã€è·é›¢ã®ãŸã‚ã®æ©Ÿèƒ½ã‚’æŒã£ã¦ã„ã¾ã™ã€‚ ç§ã¯ã‚ãªãŸãŒã‚ãªãŸã®ãŸã‚ã®å ´æ‰€ã§åŒºåˆ‡ã‚Šã‚ªãƒ—ションã§ãれをカット&ペーストã§ãるよã†ã«ã™ã‚‹ã«ã¯ã€ä»¥ä¸‹ã®ã“ã¨ã‚’è¿½åŠ ã—ãŸã€‚ ã—ã‹ã—ã€ãれã¯å‹•作ã—ã¾ã™ã‹ï¼Ÿ ã¨ã“ã‚ã§ç§ã‚‚3959ã«åœ°çƒã®åŠå¾„値を更新ã—ãŸã€‚
http://www.sqlexamples.info/SPAT/mysql_distance.htm
delimiter //
CREATE FUNCTION fn_distance
(p_x1 FLOAT, p_y1 FLOAT, p_x2 FLOAT, p_y2 FLOAT)
RETURNS FLOAT
DETERMINISTIC
BEGIN
DECLARE v_dist FLOAT;
DECLARE A FLOAT; DECLARE B FLOAT;
DECLARE C FLOAT; DECLARE D FLOAT;
/*
returns distance calculation between two points in LAT-LONG coordinates
*/
SET v_dist = 0;
-- convert to radians
SET A = p_x1 / 57.29577951;
SET B = p_y1 / 57.29577951;
SET C = p_x2 / 57.29577951;
SET D = p_y2 / 57.29577951;
IF (A = C && B = D) THEN
SET v_dist = 0;
ELSEIF ((sin(A)*sin(C)+cos(A)*cos(C)*cos(B - D)) > 1) THEN
SET v_dist = 3959 * acos(1);
ELSE
SET v_dist = 3959 *acos(sin(A)*sin(C) + cos(A)*cos(C)*cos(B - D));
END IF;
SET v_dist = v_dist * 1.609;
/* return distance in km. */
RETURN v_dist;
END;
//
delimiter ;
> SELECT fn_distance (@lat1, @long1, @lat2 , @long2) AS dist_km;
+-------------------+
| dist_km |
+-------------------+
| 1939.5457763671875 |
+-------------------+
別ã®ã‚¯ã‚¨ãƒªã®ãƒ†ã‚¹ãƒˆã‚’示ã—ã¦ã„
> SELECT ( GLength( LineString(( PointFromWKB( POINT( @lat1, @long1 ))), ( PointFromWKB( POINT( @lat2, @long2 ) ))))) * 100 AS distance;
+--------------------+
| distance |
+--------------------+
| 1748.1478770401545 |
+--------------------+
ã—ã‹ã—ã€ã‚‚ã†ä¸€ã¤ã¯ã“ã“ã§è¦‹ã¤ã‘ã‚‹http://www.posteet.com/view/1555ã‚’ :
set log_bin_trust_function_creators=TRUE;
DELIMITER |
CREATE FUNCTION GeoDistKM( lat1 FLOAT, lon1 FLOAT, lat2 FLOAT, lon2 FLOAT ) RETURNS float
BEGIN
DECLARE pi, q1, q2, q3 FLOAT;
DECLARE rads FLOAT DEFAULT 0;
SET pi = PI();
SET lat1 = lat1 * pi / 180;
SET lon1 = lon1 * pi / 180;
SET lat2 = lat2 * pi / 180;
SET lon2 = lon2 * pi / 180;
SET q1 = COS(lon1-lon2);
SET q2 = COS(lat1-lat2);
SET q3 = COS(lat1+lat2);
SET rads = ACOS( 0.5*((1.0+q1)*q2 - (1.0-q1)*q3) );
RETURN 6378.388 * rads;
END;
|
DELIMITER ;
select geodistkm(
set log_bin_trust_function_creators=TRUE;
DELIMITER |
CREATE FUNCTION GeoDistKM( lat1 FLOAT, lon1 FLOAT, lat2 FLOAT, lon2 FLOAT ) RETURNS float
BEGIN
DECLARE pi, q1, q2, q3 FLOAT;
DECLARE rads FLOAT DEFAULT 0;
SET pi = PI();
SET lat1 = lat1 * pi / 180;
SET lon1 = lon1 * pi / 180;
SET lat2 = lat2 * pi / 180;
SET lon2 = lon2 * pi / 180;
SET q1 = COS(lon1-lon2);
SET q2 = COS(lat1-lat2);
SET q3 = COS(lat1+lat2);
SET rads = ACOS( 0.5*((1.0+q1)*q2 - (1.0-q1)*q3) );
RETURN 6378.388 * rads;
END;
|
DELIMITER ;
select geodistkm(
@ LAT1ã€@ long1ã€@ LAT2ã€@ long2 ) as distance;
+----------------------------------------+
| distance |
+----------------------------------------+
| 1942.0909423828125 |
+----------------------------------------+
) as distance;
+----------------------------------------+
| distance |
+----------------------------------------+
| 1942.0909423828125 |
+----------------------------------------+
ã—ã‹ã—ã€ã“れã¯ã¾ã é–“é•ã£ã¦ã„る。 北京ã‹ã‚‰é¦™æ¸¯çŽ‹ã¾ã§ã®è·é›¢ã¯ã€ã“ã®ã‚¦ã‚§ãƒ–サイトã«ã‚ˆã‚‹ã¨ã€å½¼ã®1963ã‚ãƒã¨1224.9マイルã§ã™ã®ã§ï¼šhttp://www.timeanddate.com/worldclock/distances.html?n=102 。 ã ã‹ã‚‰ã€æœ€åˆã¨æœ€å¾Œã®çµæžœã¯éžå¸¸ã«è¿‘ãã«ã‚りã¾ã™ã€‚
ã ã‹ã‚‰ã€å¤šãã®æ™‚é–“ã‚’ç„¡é§„ã«ã—ãŸå¾Œã€ã¯ã„ã€ç§ã¯ã€ç§ã¯ã¾ã ç§ã¯ç°¡å˜ã¨æ¯”較ã§ãã‚‹ã“ã¨ã‚’æ•°å¼ã‚’使用ã—ã¦çµæžœã‚’望んã§ã„ãŸã“ã¨ã‚’èªã‚ãªã„。
座標{LAT1ã€lon1}ã¨{LAT2ã€lon2}ã‚’æŒã¤2ã¤ã®ãƒã‚¤ãƒ³ãƒˆé–“ã®å¤§åœè·é›¢dã¯æ¬¡å¼ã§ä¸Žãˆã‚‰ã‚Œã¾ã™ã€‚
D = ACOS(SIN(LAT1)*罪(LAT2)+ COS(LAT1)* COS(LAT2)* COS(lon1-lon2))
> SELECT ACOS(
-> SIN(@lat1) * SIN(@lat2) + COS(@lat1) * COS(@lat2) * COS( @long1 - @long2 )
-> ) *1000 as Aviation_forumula_DISTANCE;
+----------------------------+
| Aviation_forumula_DISTANCE |
+----------------------------+
| 1923.0473470093848 |
+----------------------------+
別ã®å¼ãŒåŠæ£çŸ¢å¼ã§ã™
> SELECT 3956* 2 * ASIN ( SQRT (POWER(SIN((@lat1 - @lat2)*pi()/180 / 2),2) + COS(@lat1 * pi()/180) * COS(@lat2 *pi()/180) * POWER(SIN((@long1 - @long2) *pi()/180 / 2), 2) ) ) as Haversine_Formula_distance;
+----------------------------+
| Haversine_Formula_distance |
+----------------------------+
| 1204.5222518763514 |
+----------------------------+
ã‚‚ã†ä¸€åº¦ã€ã‚ãªãŸã¯éžå¸¸ã«ç•°ãªã‚‹çµæžœã‚’å‚ç…§ã—ã¦ãã ã•ã„。 ç§ã¯ã€ åŠæ£çŸ¢ å¼ã§ã‚ˆã‚Šè‰¯ã„çµæžœã‚’期待ã—ãŸã€‚
ã ã‹ã‚‰ã€ãれã¯ç§ãŒæ£ã—ã実装ã™ã‚‹ã¨ãã«ä½¿ç”¨ã™ã‚‹æ£ã—ã„å¼ã§ã‚ã‚‹ã¨ä¿¡ã˜ã‚‹ åŠæ£çŸ¢ å¼ã«æœ€ã‚‚è¿‘ã„よã†ã«ç§ã«ã¯è¡¨ç¤ºã•れã¾ã™ã®ã§ã€ç§ã¯ GeoDistKM 機能ã¨ä¸€ç·’ã«è¡Œã£ãŸã“れらã®å¼ã§éŠã‚“ã§å¾Œã€‚ ã“れã¯ã€ã‚¦ã‚£ãƒªã‚¢ãƒ ã‚ºã®æƒ…å ±ã«åŸºã¥ã„ã¦ç§ãŒæ›¸ã„ãŸèˆªç©ºå¼ã«åƒ…å·®ã§ç¶šã„ã¦ã„る。
1942å¹´ã¯ã€ç§ã¯ã€å½¼ã‚‰ã¯åŒæ§˜ã«ãれをæ£ã—ã計算ã—ãŸã¨è¨€ã†ã“ã¨ã§ã™ã‚ªãƒ³ãƒ©ã‚¤ãƒ³æ¤œç´¢ã‚’介ã—ã¦é›†ã¾ã£ãŸ1963å¹´ã®çµæžœã§ã¯ã‚りã¾ã›ã‚“ãŒã€‚ 極ã§è¿‘ã¥ã„ä¸€ç·’ã«æ¥ã¦ã€åœ°çƒã¨ç·¯åº¦ã®æ›²ã€LONã¯ç•°ãªã‚‹å¼ã«å¤šå°‘ã®èª¤å·®ãŒå¯èƒ½ã«ãªã‚Šã¾ã™ã€‚ ã ã‹ã‚‰ç§ã¯ã€ç¾åœ¨ã€ã“ã®ã«å›ºåŸ·ã—ã¾ã™ï¼š
select geodistkm(
@ LAT1ã€@ long1ã€@ LAT2ã€@ long2 ) as distance;
+----------------------------------------+
| distance |
+----------------------------------------+
| 1942.0909423828125 |
+----------------------------------------+
) as distance;
+----------------------------------------+
| distance |
+----------------------------------------+
| 1942.0909423828125 |
+----------------------------------------+
PlanetMySQL Voting: Vote UP / Vote DOWN