-1

我有片面的看法。此部分视图由 Ajax.actionlink 请求返回。部分视图包含谷歌地图。但是,当文档准备好时,必须运行不渲染地图的脚本。

如何在部分视图结果中显示谷歌地图?

部分视图脚本:

 var markers = [];
        markercount = 0;
        var zoom = 7;
        var G = google.maps;
        var map;


     function initializeMap() {

                var centerPoint = new G.LatLng(45.5, -100.5);
                var myOptions = {
                    center: centerPoint,
                    zoom: zoom,
                    mapTypeId: G.MapTypeId.ROADMAP
                };
                map = new google.maps.Map(document.getElementById('map-canvas'),
                    myOptions);

                addPolygon(map);


                var infowindow = new google.maps.InfoWindow();
                var marker = new google.maps.Marker({
                    map: map,
                    anchorPoint: new google.maps.Point(0, -29)
                });


                var input = (
                   document.getElementById('autocomplate'));

                map.controls[google.maps.ControlPosition.TOP_LEFT].push(input);

                var autocomplete = new google.maps.places.Autocomplete(input);
                autocomplete.bindTo('bounds', map);




                google.maps.event.addListener(map, 'click', addMarker);


                google.maps.event.addListener(autocomplete, 'place_changed', function () {
                    infowindow.close();
                    marker.setVisible(false);
                    var place = autocomplete.getPlace();
                    if (!place.geometry) {
                        return;
                    }


                    if (place.geometry.viewport) {
                        map.fitBounds(place.geometry.viewport);
                    } else {
                        map.setCenter(place.geometry.location);
                        map.setZoom(17);
                    }
                    marker.setIcon(({
                        url: place.icon,
                        size: new google.maps.Size(71, 71),
                        origin: new google.maps.Point(0, 0),
                        anchor: new google.maps.Point(17, 34),
                        scaledSize: new google.maps.Size(35, 35)
                    }));
                    marker.setPosition(place.geometry.location);
                    marker.setVisible(true);

                    var address = '';
                    if (place.address_components) {
                        address = [
                          (place.address_components[0] && place.address_components[0].short_name || ''),
                          (place.address_components[1] && place.address_components[1].short_name || ''),
                          (place.address_components[2] && place.address_components[2].short_name || '')
                        ].join(' ');
                    }

                    infowindow.setContent('<div><strong>' + place.name + '</strong><br>' + address);
                    infowindow.open(map, marker);
                });






            }


            google.maps.event.addDomListener(window, 'load', initializeMap);
4

1 回答 1

0

我解决了这个问题。

   @Ajax.ActionLink(" ", "EditRestaurant", "Admin", New With {.RestID = Model(i).RestaurantID}, New AjaxOptions With {.HttpMethod = "POST",
                                                                                                                                                   .InsertionMode=InsertionMode.Replace,
                                                                                                                                                   .UpdateTargetId="edit",
                                                                                                                                             .OnSuccess="map"}, New With {.Class = "glyphicon glyphicon-zoom-out"})

脚本

function map()
        {
            initializeMap();
            google.maps.event.addDomListener(window, 'load', initialize);
            google.maps.event.addDomListener(window, 'load', initializeMap);

        }
于 2014-05-27T08:17:11.607 回答