【问题标题】:MySQL GeomFromText with Google Map Latitude and LongitudeMySQL GeomFromText 与谷歌地图纬度和经度
【发布时间】:2016-12-21 22:39:50
【问题描述】:

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

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

尝试插入/更新谷歌地图多边形纬度和经度,每次都失败,错误 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';

而且这个工作完美,似乎谷歌地图纬度和经度的格式不适合 MySQL GEOMETRY。

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

提前致谢

【问题讨论】:

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


    【解决方案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'
    

    【讨论】:

    • 成功了!!我使用 Google API 生成了那个多边形,实际上我错过了什么?我注意到你最后添加了第一部分,问题是这会改变我的多边形的形状吗?
    • 那么我的查询应该很好了。尽管它有五个“点”,但最后一个实际上只是第一个的重复。
    • :( 不让我投票给你,说我需要 15 声望 :'( 但我真的很感谢你的帮助 (y)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多