带有谷歌地图纬度和经度的MySQL GeomFromText

时间:2016-08-15 17:30:01

标签: mysql google-maps google-maps-api-3

我正在使用MySQL GEOMETRY和Google Map Javascript API。

我创建了一个MySQL表格,其中我有delivery_loc_1字段POLYGON NOT NULL

尝试插入/更新Google Map多边形纬度和经度,并且每次都失败,错误为Warning: #1048 Column 'delivery_loc_1' cannot be null

我的更新查询是:

UPDATE `zone` SET `delivery_loc_1` = GeomFromText('POLYGON((-118.33309699999995 33.923032,-118.33509700000002 33.915032,-118.32709699999998 33.916032,-118.331097 33.919032))',0) WHERE zone_id = '1';

我在网上发现了一个MySQL多边形并尝试了这个:

UPDATE `zone` SET `delivery_loc_1` = GeomFromText('POLYGON((-73.96509524 40.80721011,-73.95319048 40.80721011,-73.95319048 40.7982011,-73.96509524 40.7982011,-73.96509524 40.80721011))',0) WHERE zone_id = '1';

这一个完美无缺,似乎Google Map Latitude和Longitude的格式不适合MySQL GEOMETRY。

是否有任何MySQL函数可以将Google Map值转换为MySQL多边形?

提前致谢

1 个答案:

答案 0 :(得分:1)

我相信POLYGON的第一个和最后一个点必须相同,因为这就是MySQL"知道"形状已被封闭并正确定义。

UPDATE查询中:

UPDATE `zone`
SET `delivery_loc_1` = GeomFromText('POLYGON((-118.33309699999995 33.923032,
                                              -118.33509700000002 33.915032,
                                              -118.32709699999998 33.916032,
                                              -118.331097 33.919032))',0)
WHERE zone_id = '1'

你指定了四个点,但第一个和最后一个不匹配。假设您要保留所有这些点,这意味着您尝试定义五边形多边形,则可以尝试以下查询:

UPDATE `zone`
SET `delivery_loc_1` = GeomFromText('POLYGON((-118.33309699999995 33.923032,
                                              -118.33509700000002 33.915032,
                                              -118.32709699999998 33.916032,
                                              -118.331097 33.919032,
                                              -118.33309699999995 33.923032))',0)
WHERE zone_id = '1'