大量の解析済み JSON ファイル (4 GB) をインポートしようとしています。QGisのmysqlデータベースに挿入したい。最初は、mongodb と RazorSQL を使用してすべてを直接インポートできると思っていましたが、それは不可能でした。すべてを個別に処理するスクリプトを作成する以外に、それを行うための迅速な方法がないことを発見しました。
"pandgeometrie": {
"type": "Polygon",
"coordinates": [
[
[199801.469, 483101.581],
[199787.101, 483102.676],
[199786.139, 483090.053],
[199800.507, 483088.957],
[199801.469, 483101.581]
]
]
}
"geometry": {
"type": "Point",
"coordinates": [199793.932, 483095.516]
}
このデータを PHP でインポートしたいのですが、ポリゴンを 1 行のポリゴン情報にまとめれば、MYSQL にクエリできるのではないかと考えました。私はこのようにしました:
$constants = get_defined_constants(true);
$json_errors = array();
foreach ($json as $name->features => $value) {
foreach ($value as $var){
$id = $var->id;
$coordinates = $var->properties->pandgeometrie->coordinates;
$long = $var->geometry->coordinates[0];
$lat = $var->geometry->coordinates[1];
$point = "POINT(". $long . " ". $lat. ")";
var_dump($point);
foreach ($coordinates as $var){
echo "<div>";
$arrPoly= array() ;
foreach ($var as $var2){
$V0 = strval($var2[0]) ;
$V1 = strval($var2[1]);
$Comb = $V0 ." ". $V1;
array_push($arrPoly, $Comb);
}
$polyImplode = implode($arrPoly, ",");
$polygon = "POLYGON((".$polyImplode."))";
var_dump($polygon);
$query = "INSERT INTO geometry VALUES(PolygonFromText('$polygon'),'$id',PointFromText('$point'))";
値を確認すると、NULL 値のみが返されます。