2010-06-19 4 views
2

http://wiki.openstreetmap.org/wiki/Mercatorпроекция Меркатора и масштабирование

с C#, например, в ссылке выше, я могу спроецировать широты/долготы к х/у координаты. Однако у меня проблема с масштабированием. Интересно, сколько длины (в милях?) Каждый пиксель имеет после проецирования. Я хотел бы масштабировать карту до рендеринга как 500 пикселей на милю или что-то в этом роде.

Ребята, на самом деле никто не ответил на это? Это было довольно долго без ответа.

+2

http://msdn.microsoft.com/en-us/library/bb259689.aspx это объясняет все, что мне нужно знать. ;) – VOX

ответ

1

Пикселы не будут иметь одинаковую длину, это зависит от того, в какой области земного шара вы проецируете. Меркатор сохраняет углы, а не длины.

http://en.wikipedia.org/wiki/Mercator_projection

Посмотрите на карте - область вокруг полюсов расширены по сравнению с экватором. В зависимости от того, что вы хотите сделать, вам лучше использовать стандартную проекцию, такую ​​как UTM. Вы должны проверить, какая проекция используется в той части мира, из которой происходят ваши карты.

Другим способом было бы применить обратную проекцию к двум вашим пикселям, чтобы получить географические координаты и измерить большое расстояние между ними. Википедия имеет больше информации об этом, но, как правило, немного задействована математика.

+0

Поперечный Меркатор наследует те же свойства Меркатора. Но если вы придерживаетесь небольшой области (на 500 пикселей на милю, вы, вероятно, есть!) И используйте соответствующую зону UTM, масштаб будет почти достаточно постоянным по всей вашей карте. – MarkJ

Смежные вопросы