Как преобразовать строку долготы и широты в двойную? - PullRequest
2 голосов
/ 10 февраля 2012

Я получаю свою долготу и широту от Google:

http://maps.google.com/maps/geo?q=Sliedrecht,%20Netherlands&output=csv&oe=utf8&sensor=false

Я хочу добавить маркер на свою карту, используя следующие результаты:

        if (coordinates.Length == 4 && coordinates[0] == "200")
        {
            var overlay = new GMapOverlay(mapexplr, "overlayTwo");

            overlay.Markers.Add(new GMapMarkerGoogleGreen(new PointLatLng(Convert.ToDouble(coordinates[2]), Convert.ToDouble(coordinates[3]))));
            mapexplr.Overlays.Add(overlay);
        }

Проблема в том, что мой маркер не отображается.Я думаю, что это потому, что двойники не представлены в правильном формате.Результат приведенной выше ссылки таков:

200,4,51.8248681,4.7731624

Когда я конвертирую значение 4.7731624 в двойное, я получаю 47731624 без точки.

Итак, мой вопрос: как мне преобразовать строку в двойную с точкой в ​​нужном месте?

Ответы [ 2 ]

20 голосов
/ 10 февраля 2012

Скорее всего, это связано с вашей культурой - похоже, в этом случае вам нужна инвариантная культура:

double longitude = double.Parse(text, CultureInfo.InvariantCulture);

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

0 голосов
/ 10 февраля 2012

просто используйте Double.Parse () и передайте строку, содержащую координаты широты / долготы

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