MySQL의 GIS 기능에 원하는 것
shp2mysql에 대해서는 이쪽
htps : // 코 m / 미야 치 / ms / b4 810b3
대상 MySQL은 8.0.16 시점. 최신 8.0.18에서도 아마 같은 상황.
개요
대응하고 싶은 우선순위.
그 밖에도 세세한 것은 있지만, 최소한 이 3개는 해결해 주지 않으면 GIS의 백엔드로서 사용하는 것은 어렵다.
자세한 것은 이후에 기술하지만, 정리하면 아래와 같다.
3에 대해서는 shp2mysql 측에서 변환한다고 하는 손도 사용할 수 없는 것은 아니지만, 장당적이므로 할 수 있으면 하고 싶지 않다.
1. ST_Intersects의 속도 개선
ST_Intersects와 같은 공간 검색 함수가 느립니다. 색인이 사용되지 않는 것 같습니다.
ST_Intersects를 사용할 수 없으면, 예를 들면 화면에 표시하는 만큼의 데이터를 추출할 수 없기 때문에 GIS를 개발할 때에 매우 모인다. 라고 할까 MySQL8. 0을 사실상 사용할 수 없다.
2. ST_Union 등의 집계 함수판의 구현
PostGIS에서는 독자적으로 ST_Union의 집계 함수판을 구현하고 있다.
이것은 꼭 MySQL에서도 갖고 싶다.
3. ST_Transform 개선
하기 기사에서도 사카이씨가 쓰고 있듯이 ST_Transform이 「지리 좌표계끼리의 변환의 일부에만 대응하고 있다」라고 하는 유감스러운 상황.
shp2mysql에서도 측지계 변환은 ST_Transform을 사용하므로, 예를 들어 평면 직각 좌표계에서 위도 경도로의 변환을 할 수 없다.
INSERT INTO `h27ka23` (`key_code`,`pref`,`city`,`s_area`,`pref_name`,`city_name`,`s_name`,`kigo_e`,`hcode`,`area`,`perimeter`,`h27kaxx_`,`h27kaxx_id`,`ken`,`ken_name`,`sityo_name`,`gst_name`,`css_name`,`kihon1`,`dummy1`,`kihon2`,`keycode1`,`keycode2`,`area_max_f`,`kigo_d`,`n_ken`,`n_city`,`kigo_i`,`moji`,`kbsum`,`jinko`,`setai`,`x_code`,`y_code`,`kcode1`,geom) VALUES ('23101001005','23','101','001005','愛知県','千種区','青柳町5丁目',NULL,'8101','15584.212','549.915','2005','2004','23','愛知県',NULL,'名古屋市','千種区','0010','-','05','101001005','101001005','M',NULL,NULL,NULL,NULL,'青柳町5丁目','7','106','48','136.93901','35.16151','0010-05',ST_Transform(ST_GeomFromText('MULTIPOLYGON(((-20754.8652865945 -93080.3907545561,-20792.9170054861 -93073.7809801786,-20801.0945861811 -93071.5464888813,-20797.7526499984 -93049.7109680534,-20793.5163543657 -93049.8828324357,-20789.1198896364 -93032.5472658343,-20783.1762441217 -92992.930770668,-20780.7818079772 -92993.4464037642,-20776.8214177434 -92973.2759786547,-20781.3388232127 -92972.7446392541,-20779.1850981796 -92953.8240600531,-20783.6050128758 -92953.1209365438,-20775.9618820959 -92910.0145830367,-20766.3740435754 -92912.0536876898,-20723.9511436358 -92918.2492093462,-20674.3757353179 -92927.8431351506,-20684.3549408095 -92973.7695915831,-20689.6810410617 -92972.6289769808,-20694.7508015533 -93002.1587260088,-20691.7020383399 -93008.8070613068,-20706.9427248768 -93089.4148234653,-20754.8652865945 -93080.3907545561)))', 2449, 'axis-order=long-lat'), 4326));
위와 같은 SQL을 실행하면 에러가 된다.
Transformation from SRID 2459 is not supported.
※SRID 2459는 JGD2000의 평면 직각 좌표 7계(아이치현 등)
이 기사의 라이센스
이 문서는 CC BY 4.0(크리에이티브 커먼즈 표시 4.0 국제 라이센스)에 게시됩니다.
Reference
이 문제에 관하여(MySQL의 GIS 기능에 원하는 것), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/miyauchi/items/5bdab7ea58f1114d6686
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(MySQL의 GIS 기능에 원하는 것), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/miyauchi/items/5bdab7ea58f1114d6686텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)