как сохранить и передать двойную переменную в asp.net c # mvc 3

#asp.net-mvc-3 #google-maps #c#-4.0

#asp.net-mvc-3 #google-карты #c #-4.0

Вопрос:

Все еще возникают проблемы с картами Google в asp.net C # 4.0 mvc 3. Итак, теперь я могу просматривать карту Google на своей веб-странице, но когда я ввожу свои координаты, карта Google больше не отображается. Я предполагаю, что должно быть что-то с передачей моих данных и тому подобное? Я использую sql server 2008. В моей таблице Google Map я задал долготу и широту как целое число, потому что в ней нет двойной категории. Что мне делать? Есть какие-нибудь советы? Заранее спасибо 🙂

Это мой код для просмотра карты Google

         @{
        ViewBag.Title = "GMAP";
        Layout = "~/Views/Home/Gmap.cshtml";
        }

        <h2>GMAP</h2>
        @section Scripts { 
            <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
        }

        @section Styles { 
            html { height: 80% } 
            body { height: 80%; margin: 0px; padding: 0px } 
            #map_canvas { height: 80% } 
        }

        <div id="map_canvas" style="width:80%; height:80%"></div>

        <script type="text/javascript">
            function initialize() {
            var latlng = new google.maps.LatLng(@ViewData["Latitude"], @ViewData["Longitude"] );
            var options = { zoom: 14, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP };
            var map = new google.maps.Map(document.getElementById("map_canvas"), options);
            }

            $(function () {
            initialize();
            }); 
        </script>
  

Вот код для моего контроллера карт Google

     public ActionResult GMAP(int id){
        var dataContext = new transDataContext();
        Double Longitude = (Double)(from t in dataContext.TransactionModels
        where t.id.Equals(id)
        select t.longitude).Single();
        Double latitude = (Double)(from t in dataContext.TransactionModels
        where t.id.Equals(id)
        select t.latitude).Single();
        ViewData["Longitude"] = Longitude;
        ViewData["Latitude"] = latitude;

        return View();
    }
  

Ответ №1:

В моей таблице Google Map я задал долготу и широту как целое число, потому что в ней нет двойной категории.

Вы ответили на свой собственный вопрос. Широта и длина должны быть двойными. -0.156 Long в конечном итоге будет равен нулю.

Комментарии:

1. Итак, длина -0.156 будет равна нулю? Тогда координаты будут неверными? :

2. Да, но меня смущает бит целого числа, потому что вы все равно не смогли бы сохранить это значение как database int, поэтому, если вы просмотрели свои необработанные данные с помощью Sql, они уже должны показывать усеченные значения без десятичных знаков. Тип, который вы должны использовать для их хранения в базе данных, — ‘float’.