2013-12-20 3 views
1

У меня есть форма, где я могу ввести координаты местоположения в формате DMS, который хранится в таблице. Я нахожу координаты, перетаскивая маркер в нужное место, используя http://itouchmap.com/latlong.htmlКарт Google Maps, помещенный в неправильное место

Степень, минуты и секунды разделены пробелами, а не обычными символами.

Пример:

  • Шир: 9 59 35,9274
  • LNG: 76 17 49,0524

Эти значения хранятся в полях, которые имеют VARCHAR и хранятся, как это ,

Может ли кто-нибудь сказать мне, в чем проблема?

Но когда я получаю эти координаты, чтобы занести их в карты Google, маркер находится в каком-то месте.

P.S. : Размещение маркеров отлично работает, когда координаты хранятся в формате DDD.

код я использую копия вставленный из https://developers.google.com/maps/articles/phpsqlajax_v3?csw=1

+0

Если я вас понимаю правильно, чем вы должны изменить LatLng от DMS формат Десятичные градусы Широта/Долгота значения. –

+1

Я изначально использовал float (10,6). Но устройство GPS, которое я использую дает мне координаты в формате DMS. Пожалуйста, google ** 40 42 51, -74 0 22 **. Вы можете видеть, что маркер помещается на карту, что, я думаю, означает, что у нас есть возможность ввести их в формате DMS, а не только в формате DDD. Спасибо ... – Anagh

ответ

2

В статье говорится, что долго и в конце должны быть сохранены в качестве типа DECIMAL (10,6), чтобы в течение четырех цифр до и шесть после запятой. Карты api не будут надежно принимать эти координаты в любом другом формате.

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

Предложенное чтение: how to convert between degrees, minutes, seconds to Decimal coordinates

http://transition.fcc.gov/mb/audio/bickel/DDDMMSS-decimal.html

Regex/Javascript to transform Degrees Decimal Minutes to Decimal Degrees

Редактировать Смотрите ссылку here. API карт Google не поддерживает DMS, если не реализован в очень специфическом ключе (в этом случае вы сами форматируете строку и можете просто конвертировать ваш выбор.

Проблема заключается в том, что API ожидает долготу и широту как целое число и, следовательно, пространства не принимаются

Converstion в десятичную будет столь же просто, как это, если я правильно (в JavaScript):.

var = hour+(((minute*60)+(second))/3600); 
+0

Я изначально использовал float (10,6). Но устройство GPS, которое я использую, дает мне координаты в формате DMS. Пожалуйста, google ** 40 42 51, -74 0 22 **.Вы можете видеть, что маркер помещается на карту, что, я думаю, означает, что у нас есть возможность ввести их в формате DMS, а не только в формате DDD. Спасибо ... – Anagh

+0

См. Обновление для дальнейшего чтения. – Swires

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