2017-09-28 12 views
0

私は地理空間データにあまり興味がないので、次の問題があります。 MySqlを使用していますが、ポイントを持つフィールドの値をこのテーブルの行に追加しようとするといくつかの問題があります。MySqlデータベースにタイプポイントのフィールドの値を正しく設定するにはどうすればよいですか?

私はこのようなテーブルがあります:あなたはバンは、この表には、タイプポイントを持つGPSフィールドが含まれていますご覧のよう

CREATE TABLE MarketDetails (
    id    BigInt(20) NOT NULL AUTO_INCREMENT, 
    localization_id BigInt(20) NOT NULL, 
    market_name  VarChar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL, 
    market_cod  VarChar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci, 
    description  Text CHARACTER SET latin1 COLLATE latin1_swedish_ci, 
    gps    point, 
    PRIMARY KEY (
     id 
) 
) 

を。このデータ型は、ポイントのGPS座標を格納するのに最適です。

IDEを使用してこのフィールドの値を挿入しようとしましたが、動作しません...私のIDEを使用します。gpsフィールド値は挿入できません。

どうすれば手動で行うことができますか?私が正しく、私がいたこれらの座標?:

lat: -2,17897 
long: 29,371491 

GPSにフィールドを設定し、このレコードを更新更新 SQLクエリを作成するにはどうすればよい

id    localization_id  market_name  market_cod  description     gps                                                                
--------------------------------------------------------------------------------------------------------------- 
1    31     Kibuye   cod001   Kibuye Village Market   

:たとえば、私は、このレコードを挿入しましたこのようなものを試しても動作しません:

UPDATE MarketDetails 
SET  gps = Point(ST_GeomFromText('POINT(1 1)')) 
WHERE id = 1 

私はこのエラーメッセージを取得しますe:

#42000You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') WHERE id = 1' at line 2 

何が問題なのですか。私は何が欠けていますか?この問題を解決するにはどうすればよいですか?

答えて

0

などの区切られた列に緯度/経度値をインポートできる場合は、 DOUBLEデータ型の場合は、これを試すことができます。

ALTER TABLE table ADD coords Point; 
UPDATE table SET coords = POINT(lat, lon); 

この場合、POINT型として「coords」列を追加しました。 次に、lan列とlon列を使用してcoords列を更新します。

関連する問題