2012-03-27 18 views
1

Etwas seltsam (zumindest für mich) passiert. Ich habe eine Teilansicht, die ein paar Google Map Markers zeigt. Sobald ich jedoch mein eigenes angepasstes Icon benutze, weigert es sich anzuzeigen. Aber wenn ich meine Route in der RegisterRoutes Funktion von global.asax.cs zum Beispiel geben, wie soAngepasste Google Maps Marker-Symbol wird nicht in Teilansicht angezeigt

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

Und wenn meine Teilansicht ist in Index Ansicht, denn es ist aus mir unbekannten Gründen entscheidet, sich zu zeigen? Warum ist das und wie ist das lösbar?

Update (Code): Dies ist mein Code in der Teilansicht namens 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); 
      } 
     });    
    } 

Dies sind meine wichtigsten Funktionen.

Dies ist eine Ansicht, die meine Teilansicht

@model IPagedList<HospitalSearch.Models.Buildings> 

@{ 
    ViewBag.Title = "Map"; 

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

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

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

Nachdem es in RegisterRoutes verwendet wird zeigen, wie sonst wollte es nicht. Update: Es stellt sich heraus, RegisterRoutes bekommt irgendwie die "richtige" URL zu meinem Bild. Wenn ich einen direkten Pfad verwende, sagen wir http://localhost:8080/Content/image.png, dann ist alles in Ordnung. "Content/image.png" funktioniert jedoch nicht. Wenn ich herausfinde, was genau passiert, werde ich natürlich updaten.

Antwort

0

Wenn Sie sich in einer Teilansicht befinden, ist der Pfad zu Ihrem Bild für Ihren benutzerdefinierten Marker möglicherweise nicht mehr gültig. Wie verweisen Sie auf Ihr Image? Es wäre am besten, die Hilfsmethode Url.Content zu verwenden, um den Pfad abzurufen.

Wenn das nicht funktioniert, können Sie mehr Code posten? HTML und die Karte Javascript? Vielen Dank.

+0

Danke für die Antwort lassen Sie mich meinen Beitrag aktualisieren, habe ich den Code getestet, ohne dass es in der Teilansicht und immer noch nicht funktioniert. – Shinji

+0

Ist returnImage eine separate JavaScript-Funktion? – Trent

+0

ja es ist .. Ich werde ein weiteres Update machen – Shinji

Verwandte Themen