Недавно возникла задача перепривязать карту формата Mapinfo из неизвестной мне СК в WGS 84 проекция Меркатора (google). Так как решить задачу подббором параметров преобразования я не сумел, пришлось привязывать карту полигонами. Формулу преобразования я нашел и с помощью библиотеки mitab написал программу, которая все координаты объектов в файле меняет на нужные мне.
После этого возникла следующая загвоздка - при просмотре получившегося файла объекты потеряли первоначальный вид и стали несколько "уголоваты". Скорее всего mapinfo пытается выкинуть точки, расстояние между которыми меньше заданного числа. Пробовал координаты умножать на 100 - все стало хорошо. Единицами измерения в карте остались метры, т.к. я не нашел как изменить их.
Данную карты мне надо привязать к mapserver. Мне либо надо изменить ед измерения на градусы, либо с помощью PROJ изменить масштаб карты. Ни то ни другое у меня сделать не получилось, т.к. и в том и в другом я новичок.
Подскажите как мне привязать карту к mapserver, так чтобы координаты остались исходными и при этом не потерялось качество.
Единицы измерения карты
-
- Участник
- Сообщения: 83
- Зарегистрирован: 16 июн 2009, 10:38
- Репутация: 0
-
- Участник
- Сообщения: 83
- Зарегистрирован: 16 июн 2009, 10:38
- Репутация: 0
Re: Единицы измерения карты
Вероятно мне стоит переформулировать вопрос:
Почему Mapinfo может пропускать при отрисовке часть точек, расположенных близко и как этого избежать?
Задать СК в mapinfo я смог (WGS84), но это не помогло.
Почему Mapinfo может пропускать при отрисовке часть точек, расположенных близко и как этого избежать?
Задать СК в mapinfo я смог (WGS84), но это не помогло.
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: Единицы измерения карты
ПРиведите пример вашей карты. Лучше в MIF
И раз уж речь идет о Mapinfo И MapServer'е.
Давайте определимся, кого вы ходите победить. Если Mapinfo - давайте "перенесемся" в раздел MapInfo, если MapServer - то в раздел "Веб-картография".
Если у вас беда с Mapinfo, то как уже многократно писалось:
MI хранит координаты в виде целого числа представляющего собой 1/2 000 000. Там же в таблице хранит множитель переводящий эти целые числа в координаты проекции.
Раз у вас получилось вывести формулу из неизвестной СК в Меркатора на сфере, то приведите ее нам и расскажите как именно вы получаете таблицу MapInfo, которую просматривает.
И раз уж речь идет о Mapinfo И MapServer'е.
Давайте определимся, кого вы ходите победить. Если Mapinfo - давайте "перенесемся" в раздел MapInfo, если MapServer - то в раздел "Веб-картография".
Если у вас беда с Mapinfo, то как уже многократно писалось:
MI хранит координаты в виде целого числа представляющего собой 1/2 000 000. Там же в таблице хранит множитель переводящий эти целые числа в координаты проекции.
Раз у вас получилось вывести формулу из неизвестной СК в Меркатора на сфере, то приведите ее нам и расскажите как именно вы получаете таблицу MapInfo, которую просматривает.
-
- Участник
- Сообщения: 83
- Зарегистрирован: 16 июн 2009, 10:38
- Репутация: 0
Re: Единицы измерения карты
Спасибо - проверил результат с этим предположением, действительно все мои числа округлились до 3 знака после запятой (широта и долгота).Boris писал(а): Если у вас беда с Mapinfo, то как уже многократно писалось:
MI хранит координаты в виде целого числа представляющего собой 1/2 000 000. Там же в таблице хранит множитель переводящий эти целые числа в координаты проекции.
А как же тогда мне поступить в данной ситуации? Как-то доработать базу MI или хранить точки в другой сист координат (например умножить все точки на 100, но как мне тогда привязать такую карту к mapserver?)
-
- Гуру
- Сообщения: 4231
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: -344969098
- Откуда: Париж
Re: Единицы измерения карты
Вообще-то 3-й знак в проекции метры - это миллиметры. Какой неЗемной точности вы хотите достичь в своем преобразовании координат?
Если у вас есть строго очерченные границы вашего интереса (трудно представить весь мир с миллиметровой точностью), то задавайте границы вашей таблицы с тем, что бы область интереса была покрыта этими границами.
Это делается путем создания таблицы с указанием оператора Bounds
Если у вас есть строго очерченные границы вашего интереса (трудно представить весь мир с миллиметровой точностью), то задавайте границы вашей таблицы с тем, что бы область интереса была покрыта этими границами.
Это делается путем создания таблицы с указанием оператора Bounds
Код: Выделить всё
CoordSys Earth Projection 8, 104, "m", 39, 0, 1, 250000, 0 Bounds (251402.48649234,6114520.64011307) (267750.57977004,6124086.65569217)
-
- Участник
- Сообщения: 83
- Зарегистрирован: 16 июн 2009, 10:38
- Репутация: 0
Re: Единицы измерения карты
У меня карта в градусах - широта и долгота, и точность нужна не меньше чем 4 знака, лучше 5.Boris писал(а):Вообще-то 3-й знак в проекции метры - это миллиметры. Какой неЗемной точности вы хотите достичь в своем преобразовании координат?
Если у вас есть строго очерченные границы вашего интереса (трудно представить весь мир с миллиметровой точностью), то задавайте границы вашей таблицы с тем, что бы область интереса была покрыта этими границами.
Спасибо за подсказку - я задал нормальные границы и получил все как надо.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость