2017-12-05 14 views
0

私はリーフレットドローでマップボックスを使用しています。自己交差ポリゴンを避けたいと思います。JSTSライブラリを使用してリーフレットポリゴンで自己交差を見つける

描画コントロールの作成中に交差を許可しないように指定することはできますが、コントロールを使用して新しいポリゴンを作成する場合にのみ機能します。しかし、既存のポリゴンを編集しようとすると、そこの交差点が可能になります。

Google Maps APIに基づいて動作する例として、JSFiddleを使用するとわかりました。検索したところ、JSTS Libraryが見つかりました。

私は上記の2つのリンクに基づいて自分のJSFiddleをMapboxで作成しました。ここでは、 'findSelfIntersects'関数はポリゴン編集の場合に機能し、新しいポリゴンの場合には使用されません。アイデアは、交差点がある場合、ユーザーにアラートを表示して編集をキャンセルするということです。しかし、私がこれをしようとすると、私はuncaught exception: [object Object]エラーが発生しています。私はGoogleマップの例で返される座標をチェックアウトし

var shell = geometryFactory.createLinearRing(coordinates); 

、そしてそれは私が取得していた座標に似たように見えるん:

エラーがfindSelfIntersects機能のこのライン上に形成されているように見えます。しかし、なぜこのエラーが出るのか分かりません。

答えて

0

私は、Googleマップの例では、開始点と終了点が座標配列で同じであるのに対して、私はそうではないことに気付きました。私は当初それを逃していた。今度は、 'for'ループの後に以下のコードを追加しました。うまくいきます。

coordinates.push(new jsts.geom.Coordinate(
    corners[0].lat, corners[0].lng)); 

これは、誰もがMapbox /リーフレットでJSTSライブラリを使用したい場合は、更新JSFiddleです。

関連する問題