Пользовательский значок маркера карт Google не отображается при частичном просмотре - PullRequest
1 голос
/ 27 марта 2012

Нечто странное (по крайней мере, для меня) происходит.У меня есть частичное представление, которое показывает пару маркеров карты Google.Однако, как только я использую свой собственный значок, если отказывается отображать.Но когда я даю свой маршрут в функции RegisterRoutes, например, global.asax.cs, например,

   routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );

И если мое частичное представление находится в представлении индекса, оно по неизвестным мне причинам решает показать себя?Почему это и как это разрешимо?

Обновление (код): это мой код в частичном представлении под названием MapResults.

<script type="text/javascript">

    var geocoder;
    var map;
    function initialize() {
        geocoder = new google.maps.Geocoder();
        var latlng = new google.maps.LatLng(-34.397, 150.644);
        var myOptions = {
            zoom: 8,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }
        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

        collectingData();
        google.maps.event.addListener(map, 'click', function() {

        });      
   } 

    function codeAddress(location, name, contract) {
        var address = location;
        var infowindow;
        var image;
        geocoder.geocode({ 'address': address }, function (results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                    map.setCenter(results[0].geometry.location);

                     var image = new google.maps.MarkerImage(returnImage(contract),
                      // This marker is 20 pixels wide by 32 pixels tall.
                      new google.maps.Size(30, 42),
                      // The origin for this image is 0,0.
                      new google.maps.Point(40,45),
                      // The anchor for this image is the base of the flagpole at 0,32.
                      new google.maps.Point(0, 32));

                    var marker = new google.maps.Marker({
                    map: map,
                  //  icon: image,   only showing when registered in global asax
                    position: results[0].geometry.location,            
                });

          infowindow = new InfoBox(infoboxOptions(boxText(name, contract)));
                     google.maps.event.addListener(marker, 'click', function() {
                    infowindow.open(map, marker);
                     });
            } else {
                alert("Geocode was not successful for the following reason: " + status);
            }   
        });               
    }

Это мои самые важные функции.

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

@model IPagedList<HospitalSearch.Models.Buildings>

@{
   ViewBag.Title = "Map";

}
         <div>     
            @Html.Partial("MapResults")
        </div>

  @foreach (var item in Model) {
        <input id="adres" type="hidden" value=@Html.DisplayFor(modelItem => item.StreetBuilding) @Html.DisplayFor(modelItem => item.NumberBuilding) />  
  }

  </body>
<div class="pager">
    @Html.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount)
</div>

Наличие его в RegisterRoutes будет отображаться как требуется, иначе не будет.Обновление: оказывается, RegisterRoutes каким-то образом получает «правильный» URL-адрес моего изображения.Если я использую прямой путь, скажем http://localhost:8080/Content/image.png, тогда все в порядке.Однако «Content / image.png» не работает.Если я выясню, что именно происходит, я обновлю, конечно.

1 Ответ

0 голосов
/ 27 марта 2012

При частичном просмотре возможно, что путь к вашему изображению для вашего пользовательского маркера больше не действителен. Как вы ссылаетесь на свое изображение? Было бы лучше использовать вспомогательный метод Url.Content для получения пути.

Если это не помогает, можете ли вы опубликовать больше кода? HTML и карта JavaScript? Спасибо.

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