1

我是 mvc 和 jquery 的新手。我想通过用数据库中的多个城市替换这些位置来替换它们。我想知道我是怎么做到的。

function initialize() {

    var locations = [
        ['Hougang', 1.37265, 103.893658],
        ['Punggol', 1.400617, 103.907833],
        ['MacRitchie Reservoir', 1.346002, 103.825436],
        ['Bishan', 1.352051, 103.849125],
        ['Sentosa', 1.251226, 103.830757]
        ];

    var map = new google.maps.Map(document.getElementById('map'), {
        zoom: 0,
        center: new google.maps.LatLng(1.37265, 103.893658),
        mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    var infowindow = new google.maps.InfoWindow();

    var marker, i;

    for (i = 0; i < locations.length; i++) {
        marker = new google.maps.Marker({
            position: new google.maps.LatLng(locations[i][1], locations[i][2]),
            map: map
        });

        google.maps.event.addListener(marker, 'click', (function(marker, i) {
            return function() {
                infowindow.setContent(locations[i][0]);
                infowindow.open(map, marker);
            }
        })(marker, i));
    }

    // Check if user support geo-location
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function(position) {
            var latitude = position.coords.latitude;
            var longitude = position.coords.longitude;
            var geolocpoint = new google.maps.LatLng(latitude, longitude);

            var mapOptions = {
                zoom: 8,
                center: geolocpoint,
                mapTypeId: google.maps.MapTypeId.HYBRID
            }
            // Place a marker
            var geolocation = new google.maps.Marker({
                position: geolocpoint,
                map: map,
                title: 'Your geolocation',
                icon: 'http://labs.google.com/ridefinder/images/mm_20_green.png'
            });
        });
    }
}
google.maps.event.addDomListener(window, 'load', initialize);


</script>

会是这些线上的东西吗?问题是我不知道如何将两者联系起来。

public JsonResult Autolocations()
        {
            var locations = from s in db.Tble_content
                              select s.EN_Title;
            // return namelist.ToList();
            return Json(locations, JsonRequestBehavior.AllowGet);
        }

非常感谢提前赫什

4

1 回答 1

1

You should use ajax to connect the controller with a view, something like this

$(document).ready(function() {

    $.getJSON("/Locations/Autolocations", null, function (locations) {
          initialize(locations);
    });
});

function initialize(locations) {
    var map = new google.maps.Map(document.getElementById('map'), {
        zoom: 0,
        center: new google.maps.LatLng(1.37265, 103.893658),
        mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    //the rest of your javascript code
}

And your controller should something like this

public class LocationsController : Controller    
{
    public JsonResult Autolocations()
    {
        var locations = from s in db.Tble_content
                          select s;
        return Json(locations.ToList(), JsonRequestBehavior.AllowGet);
    }
}
于 2013-03-25T14:52:34.297 回答