在GEO数据库中创建地理空间数据需要以下步骤:
您需要创建一个包含地理空间数据的表。可以使用以下SQL语句创建一个名为locations的表:
CREATE TABLE locations (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
latitude DECIMAL(10, 8) NOT NULL,
longitude DECIMAL(11, 8) NOT NULL,
SPATIAL INDEX(latitude, longitude)
);
您可以向表中添加地理空间数据。可以使用以下SQL语句将一条数据添加到locations表中:
INSERT INTO locations (name, latitude, longitude)
VALUES ('New York', 40.7128, -74.0060);
为了优化地理空间查询的性能,您需要为表中的地理空间数据创建一个地理空间索引。可以使用以下SQL语句为locations表中的latitude和longitude列创建一个地理空间索引:
ALTER TABLE locations ADD SPATIAL INDEX(latitude, longitude);
您可以使用地理空间函数查询地理空间数据。例如,可以使用以下SQL语句查询距离纽约市100公里内的所有位置:
SELECT name, latitude, longitude
FROM locations
WHERE ST_Distance_Sphere(POINT(-74.0060, 40.7128), POINT(longitude, latitude)) <= 100000;
在这个例子中,ST_Distance_Sphere函数计算两个点之间的球面距离,POINT函数将经纬度坐标转换为地理空间点。