私は現在、Googleマップをアプリケーションの1つに統合する過程にあります。要件の1つは、ユーザー定義領域をデータベースに保管することです。これを行うために、SQL Server 2008でGeographyタイプを使用しています。ほとんどの部分で機能している間に、ブロッキングの問題が発生しました。
以下にいくつかのサンプルコードがあります。GeographyオブジェクトにGMLXML文字列を入力していますが、一部のインスタンスは機能し、一部は機能せず、機能しない論理的な理由がわかりません。
DECLARE @geoWork GEOGRAPHY
DECLARE @geoNotWork GEOGRAPHY
DECLARE @Work NVARCHAR(MAX)
DECLARE @DoesntWork NVARCHAR(MAX)
SET @Work = '<Polygon xmlns="http://www.opengis.net/gml">' +
'<exterior>' +
'<LinearRing>' +
'<posList>' +
'61.52269494598361 -6.50390625 50.84757295365389 -36.5625 32.69486597787505 -17.40234375 46.31658418182218 23.90625 61.52269494598361 -6.50390625' +
'</posList>' +
'</LinearRing>' +
'</exterior>' +
'</Polygon>'
SET @DoesntWork = '<Polygon xmlns="http://www.opengis.net/gml">' +
'<exterior>' +
'<LinearRing>' +
'<posList>' +
'51.8591074413996 -0.8425140380859375 51.790355567911845 -0.7051849365234375 51.75381501386028 -0.8191680908203125 51.80564283054998 -0.9180450439453125 51.8591074413996 -0.8425140380859375' +
'</posList>' +
'</LinearRing>' +
'</exterior>' +
'</Polygon>'
SET @geoWork = GEOGRAPHY::GeomFromGml(@Work, 4326)
SET @geoNotWork = GEOGRAPHY::GeomFromGml(@DoesntWork, 4326)
SELECT @geoWork.AsGml()
SELECT @geoNotWork.AsGml()
動作しているポリゴンは(いくつかの国のサイズにまたがる)巨大な領域を定義しますが、機能していないポリゴンは大きな町のサイズについて定義しません。失敗しているのは、これらの「より小さな」領域だけです。迷惑なことに、この小さいものは、私が必要とするものに対して十分に小さくなりません。なぜこれが起こっているのか誰か教えてもらえますか?