php 타입 - 문제는 MySQL 데이터베이스에 위도 및 경도 값 저장



변환 datatype (7)

더블 사용

CREATE TABLE `properties` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(100) NOT NULL,
  `description` text,
  `latitude` Double DEFAULT NULL,
  `longitude` Double DEFAULT NULL,
  `landmark` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `serial` (`serial`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

Google Maps GeoCoding API에서 가져온 위도 및 경도 값을 MySQL 데이터베이스에 저장하려고합니다. 값은 float 형식입니다.

12.9274529

77.5905970

그리고 그것을 데이터베이스 (데이터 유형 float)에 저장하려면 float를 올림하고 다음 형식으로 저장하십시오.

12.9275

77.5906

잘못된 데이터 유형을 사용하고 있습니까? 그렇다면 위도 및 경도 값을 저장하기 위해 어떤 데이터 유형을 사용해야합니까?

업데이트 :

여기 Allin이 요청한 CREATE TABLE이 있습니다.

CREATE TABLE `properties` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(100) NOT NULL,
  `description` text,
  `latitude` float DEFAULT NULL,
  `longitude` float DEFAULT NULL,
  `landmark` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `serial` (`serial`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

MySQL에는 GIS 응용 프로그램을위한 특별한 유형이 있습니다.

point 유형을 사용하여 다음을보십시오.

http://dev.mysql.com/doc/refman/5.0/en/spatial-extensions.html

일반적인 토론은 http://dev.mysql.com/tech-resources/articles/4.1/gis-with-mysql.html 참조하십시오.

어떤 사람들은 구체 (즉, 지구)상의 점들 사이의 거리 계산을위한 특별한 UDF를 만들었습니다.
참조 : http://www.lenzg.net/archives/220-New-UDF-for-MySQL-5.1-provides-GIS-functions-distance_sphere-and-distance_spheroid.html

howto는 다음과 같습니다. http://howto-use-mysql-spatial-ext.blogspot.com/2007/11/using-circular-area-selection.html


테이블을 변경하여 단 정밀도 부동 소수점 대신 배정도 부동 소수점을 사용하십시오.

alter table properties modify latitude double, modify longitude double;

십진수 (10,8)가 충분합니다. 일부 GPS 장치는 더 정확한 위치를 제공합니다.


double 사용하다

float 는 소수점 이하 자릿수를 저장하는 데 필요한 정밀도가 부족합니다. 항상 모든 숫자에 대해 소수점 7 자리가 있다고 보장되는 것은 아니지만 십진수의 왼쪽에 8 자리 이하의 자리가 있으므로 필요에 맞게 선택해야합니다.


내 경험에 가장 적합한 설정은 DOUBLE (11,8)이며, 위도 / 경도가> 99 일 수 있음을 명심하십시오.


나는 너가 this 같이 무언가로 시작할다는 것을 생각한다

당신이 비행 중에 그것을 만들고 싶다면 당신은 간단히 높이 또는 너비를 전달할 수 있습니다 (나는 당신이 비율을 잃지 않도록 다른 비행선을 계산할 것을 제안합니다). 캐시하고 싶다면 img를 저장하고 이미지가 있는지 확인하십시오 (title-width-height.jpg와 같은 사용자 정의 이름을 사용하여 존재 여부를 확인할 수 있음)





php mysql types floating-point