如何在POINT类型的MySQL字段中输入“空”POINT()几何值?

时间:2015-06-12 22:18:24

标签: mysql geolocation geocoding geospatial point

我有一张带有POINT几何字段的表格。我像这样输入纬度/经度点:

INSERT INTO table( point )
VALUES( POINT( lon_value, lat_value );

有时候我没有输入lat / lon值。我无法输入空白,空值或空的POINT()......因为POINT(0,0)实际上是地球上的一个位置,也不会起作用。

这里有什么解决方案?

3 个答案:

答案 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 
));