簡體   English   中英

如何將“空”POINT() 幾何值輸入到 POINT 類型的 MySQL 字段中?

[英]How do I enter an “empty” POINT() geometry value into a MySQL field of type POINT?

我有一個帶有POINT幾何字段的表。 我像這樣輸入緯度/經度點:

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

有時我沒有要輸入的緯度/經度值。 我無法輸入空白、NULL 或空的 POINT() ......因為 POINT(0,0) 實際上是地球上的一個位置,這也不起作用。

這里的解決方案是什么?

我會使用北極坐標

INSERT INTO table( point )
VALUES( POINT(0.0000,90.0000);

如果極點的實際坐標可能是一個問題,我會將 lon 值從 0.0000 更改為。

只有 GeometryCollection 支持 EMPTY: https : //dev.mysql.com/doc/refman/8.0/en/gis-data-formats.html

INSERT INTO table( point )
VALUES( ST_GeomFromText('GEOMETRYCOLLECTION EMPTY') );

由於緯度的有效范圍(以度為單位)分別為南半球和北半球的 -90 和 +90; 通過傳入和使用 99(任意超出范圍的數字)進行 Lat 比較,我可以在 NULL 和 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 
));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM