我有一张表,其中包含一个POINT
几何字段。我像这样输入纬度/经度点:
INSERT INTO table( point )
VALUES( POINT( lon_value, lat_value );
有时我没有经纬度数值可以输入。我不能输入空格、空值或一个空的POINT(),因为POINT(0,0)实际上是地球上的一个位置,这也行不通。那么这里有什么解决方案呢?
我有一张表,其中包含一个POINT
几何字段。我像这样输入纬度/经度点:
INSERT INTO table( point )
VALUES( POINT( lon_value, lat_value );
INSERT INTO table( point )
VALUES( POINT(0.0000,90.0000);
INSERT INTO table( point )
VALUES( ST_GeomFromText('GEOMETRYCOLLECTION EMPTY') );
由于南半球和北半球的纬度有效范围分别为-90和+90度;我可以通过传入并使用99(任意超出范围的数字)进行纬度比较来切换值以及将值从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
));