Error number: 3520; Symbol: ER_SRS_NOT_CARTESIAN; SQLSTATE: 22S00
Message: Function %s is only defined for Cartesian spatial reference systems, but one of its arguments is in SRID %u, which is not Cartesian.
,可以借鉴一些资料
该错误通常出现在MySQL数据库中。 ER_SRS_NOT_CARTESIAN这个MySQL错误是由MySQL标准SQLSTATE分类22S00中的“操作中出现了歧义和不一致”(Operations involving ambiguous or inconsistent data)所引起的,且该错误的编号是3520。
错误说明
ER_SRS_NOT_CARTESIAN是MySQL在接受基于数据的空间系统(SRS)的操作时发出的一个错误,特别是当这些操作是由非笛卡尔坐标(Cartesian)的二维空间范围的时候。
常见案例
最常见的带有ER_SRS_NOT_CARTESIAN错误的案例发生在MySQL尝试对某些空间数据,例如空间索引或字段,进行一些操作,如获取距离、将空间字段比较,并且发现MySQL无法以正确的方式进行该操作时。
解决方法
MySQL在处理复杂的空间操作时,可能会返回ER_SRS_NOT_CARTESIAN错误,此时建议使用者使用相应的API进行对应的操作,例如,使用MySQL GIS或者SpatiaLite等第三方空间库中提供的接口、功能及其他类似的开源空间服务,以进行一些操作。如果不想使用第三方空间服务,可以使用MySQL自带的Spatial Data Types函数,像MBR Contains,MBRWithin,MBRDisjoint等,这些函数可以用来结合MySQL提供的多种格式进行详细的空间操作,以解决ER_SRS_NOT_CARTESIAN错误。