Google マップ API から OpenStreetMap データを使用する MapQuest がホストするマップ タイルにマップ イメージを取得する方法を変更中です。予想していなかった毎日のリクエスト制限に達したため、Google マップから切り替えています。データは無料ですが、タイルには制限があり、必要なのは画像だけであるため、OpenStreet API を使用していません。したがって、ここでは MapQuest がホストするマップ タイルを使用しています。
私はそれを理解していると思いますが、できるようにしたいことがいくつかありますが、それに関するドキュメントが見つかりません。たとえば、可能であれば 500x300 の画像サイズ、または少なくとも 512*512 (256*256 の 2 倍のタイルが得られる) の画像サイズが必要です。また、マーカーを表示できるようにしたいと思います。これは可能ですか?
ここにあるこのコードを使用して、緯度と経度のデータを x 座標と y 座標に変換しました。
public class slippy {
public static void main(String[] args) {
int zoom = 9;
double lat = 42.8549;
double lon = -78.863;
System.out.println("http://otile1.mqcdn.com/tiles/1.0.0/map/" + getTileNumber(lat, lon, zoom) + ".png");
}
public static String getTileNumber(final double lat, final double lon, final int zoom) {
int xtile = (int)Math.floor( (lon + 180) / 360 * (1<<zoom) ) ;
int ytile = (int)Math.floor( (1 - Math.log(Math.tan(Math.toRadians(lat)) + 1 / Math.cos(Math.toRadians(lat))) / Math.PI) / 2 * (1<<zoom) ) ;
return("" + zoom + "/" + xtile + "/" + ytile);
}
}
このコードを使用して、バッファローの地図への 2 つのリンクを生成しました。ズーム 9 のこちらと 10のズームこちらと中央が違うようです。これはオープン ソース データを使用した結果ですか、それとも使用できる属性はありますか?