我有一张带有POINT
几何字段的表格。我像这样输入纬度/经度点:
INSERT INTO table( point )
VALUES( POINT( lon_value, lat_value );
有时候我没有输入lat / lon值。我无法输入空白,空值或空的POINT()......因为POINT(0,0)实际上是地球上的一个位置,也不会起作用。
这里有什么解决方案?
答案 0 :(得分:5)
我会使用北极坐标
INSERT INTO table( point )
VALUES( POINT(0.0000,90.0000);
如果杆的实际坐标可能是个问题,我会将lon值从0.0000更改。
答案 1 :(得分:0)
仅GeometryCollection支持空:https://dev.mysql.com/doc/refman/8.0/en/gis-data-formats.html
INSERT INTO table( point )
VALUES( ST_GeomFromText('GEOMETRYCOLLECTION EMPTY') );
答案 2 :(得分:0)
由于南半球和北半球的有效纬度范围分别是-90和+90;我可以通过传入和使用99(任意超出范围的数字)进行Lat比较,从而在NULL之间来回切换值:
("UPDATE
tableName SET LatLng = IF(%Lat = 99, NULL, POINT(%Lat, %Lng))
Where itemID = %itemID"
, array(
'itemID' => $itemID,
'Lat' => $Lat == NULL ? 99 : $Lat,
'Lng' => $Lng == NULL ? NULL : $Lng
));