私は数日間苦労していますので頼んでいます。私はインターネットとstackoverflowを検索し、何も見つかりませんでした。場所によっては緯度と経度の精度が問題になる場合があります。
マップ上にマーカー/円などを配置する必要があります。 しかし、私は正確度が私の場所に依存するグリッド上にしか描画できないようです。したがって、その場所は十分正確ではありません。
私はWt(C++)を使用していますが、問題の一部ではないようです。 私は、座標が等間隔である20 * 20の円の配列を描くコードを書いた。私はパリやニューヨークにいても同じ結果を得られません。パリで
: (それは私の最初の質問ですので、画像を投稿することはできません)新ニューヨークで http://img818.imageshack.us/img818/7841/parism.png
:パリで http://img193.imageshack.us/img193/9822/newyorkq.png
、私は経度の精度を得ることはなく、緯度。 ニューヨークでは、私は緯度も経度も正確さを得ることができません。ここで
は、私が使用するコードです:
/*Choose between both*/
double centerLat = 40.714468; double centerLng = -74.005966;//New-York
//double centerLat = 48.854607; double centerLng = 2.347126;//Paris
/*Other parameters*/
double lngMargin = 0.000400;
double latMargin = 0.000400;
int granularity = 20;
int i,j;
WVBoxLayout* layout = new WVBoxLayout();
WColor::WColor myBlue = WColor::WColor(0,0,255,255);
WColor::WColor myRed = WColor::WColor(255,0,0,255);
WColor::WColor myTransparent = WColor::WColor(0,0,0,0);
WGoogleMap::Coordinate coordArray[granularity][granularity];
/* Creating and configuring the map */
WGoogleMap *map = new WGoogleMap(WGoogleMap::Version3);
WGoogleMap::Coordinate centerCoord = WGoogleMap::Coordinate(centerLat,centerLng);
setLayout(layout);
resize(height,width);
map->setCenter(centerCoord,19);
map->setMapTypeControl(WGoogleMap::DefaultControl);
map->enableScrollWheelZoom();
map->addCircle(centerCoord,2,myBlue,2,myTransparent);
/* Here is the loop that draws the circles */
for(i=0 ; i<=granularity-1 ; i++){
for(j=0 ; j<=granularity-1 ; j++){
coordArray[i][j] = WGoogleMap::Coordinate(centerLat + beforeOrAfterTheCenter_Lat * (latMargin/granularity) * i,
centerLng + beforeOrAfterTheCenter_Lng * (lngMargin/granularity) * j);
map->addCircle(coordArray[i][j],1,myRed,2,myTransparent);
}
}
コードは大丈夫動作するようになっています。正確さを増すために私ができることについて何か手がかりはありますか?それはよく知られている問題ですか?
は苦労のいくつかの時間後に、あなたが提供できるすべてのヘルプは非常に
L.
私の推測では、緯度、経度の等価の違いはピクセル単位で等しくなりません。グリッドを(Lat、lon)で描画してから、(-Lat、lon)を描いて、形状が似ているか反転しているかどうかを確認してください。おそらく赤道の周りで動作するのでしょうか? –
Heitor、そうです。どうもありがとうございました。近くに(0,0)、私は完璧なグリッドを持っていますが、さらにこの点から行くと、悪いことがあります。 私はmapCanvasProjectionObjectを使って解決策を見つけようとします。それがうまくいくと思いますか?他に何かしようか? – Luke
私は、緯度と経度が等しい場合に投影があると信じています。距離は等しく遠くに現れる。しかし、私は、等距離射影では、Google Mapsの射影下のLatLngを新しいLatLngに変換するのは難しいと思います。そこに数式があるかもしれません。私はGoogleマップの投影方法を変更する方法はわかりません。 –