Черепица карты - какая проекция? - PullRequest
2 голосов
/ 15 марта 2010

Я взял большое изображение и разделил его на квадратные плитки (256x256). Он также предназначен для карт Google, поэтому все изображение делится на z_x_y.png (в зависимости от уровня масштабирования).

z = 0 => 1x1 плитка z = 1 => 2x2 z = 2 => 4x4 плитки

Моя карта изображений "плоская" и не основана на такой сфере, как карта мира.

Я собираюсь использовать эту карту в приложении для Windows Mobile (у которого нет Google API), и все «точки интереса» будут вставлены в базу данных по долготе и широте. И так как я должен сделать это для Windows Mobile, у меня просто есть система координат XY.

Достаточно ли просто использовать это:

MAP_WIDTH  = 256*TILES_W;
MAP_HEIGHT = 256*TILES_H;

function convert(int lat, int lon)
{
    int y = (int)((-1 * lat) + 90) * (MAP_HEIGHT / 180);
    int x = (int)(lon + 180) * (MAP_WIDTH / 360);

    ImagePoint p = new ImagePoint(x,y);  // An object which holds the coordinates

    return p;
}

Или мне нужна техника проекции?

Спасибо заранее. Пожалуйста, спросите, если что-то неясно.

1 Ответ

1 голос
/ 16 марта 2010

Если вы хотите, чтобы интересующие вас объекты были правильно выровнены на вашем изображении, вам необходимо убедиться, что проекция и система координат соответствуют тем, которые используются на изображении. Похоже, вы сделали изображение? Так, по-видимому, вы знаете проекцию? Просто убедитесь, что convert использует ту же проекцию.

Я не уверен, что это актуально, но Google Maps использует сферическую проекцию Меркатора, основанную на WGS84 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...