GPS 座標を Twitter ブートストラップ モーダル内の Google MAP ロードにプロットする MVC4 アプリケーションがあります。私の問題は、下の画像に示すように、IE 10 を使用すると、マップがすべてのタイルをロードする場合がある (場合によってはロードしない) ことです。
Chrome バージョン 27 ではマップがまったく表示されません。
マップの HTML コードは次のとおりです。
<div id="VehicleMovementModal" class="modal hide fade">
<div class="modal-header">
<button class="close" data-dismiss="modal">×</button>
<h3>Vehicle movement for the last 24 hours</h3>
</div>
<div class="modal-body">
<div id="mapCanvas" class="mapCanvas">
</div>
</div>
<br />
<div id="VehicleMovementLinkContainer" class="VehicleMovementLinkContainer">
<i class="icon-download-alt"></i> <a href="~/Vehicle/GetGPSCoordinateCSV?vehicleId=@vehicleModel.VehicleData.Id&hours=24">Export GPS coordinates for the last 24 hours</a>
<br />
<i class="icon-download-alt"></i> <a href="~/Vehicle/GetGPSCoordinateCSV?vehicleId=@vehicleModel.VehicleData.Id&hours=48">Export GPS coordinates for the last 48 hours</a>
</div>
HTML ページ内から JavaScript を呼び出す方法
<script src="http://maps.googleapis.com/maps/api/js?key=aaaaaaa&sensor=false"></script>
<script type="text/javascript" src="~/Content/js/PlotVehicleMovement.js"></script>
<script type="text/javascript">
google.maps.event.addDomListener(window, 'load', initialize());
</script>
そして、マップを描画するために使用しているjavascript
function initialize() {
var gpsCoordinateCollection = $('#gpsCoordinates').val().split(',');
if (gpsCoordinateCollection.length > 0) {
// The last GPS coordinates received + the date it was received.
var gpsCoordinatePacket = gpsCoordinateCollection[0].split(';');
if (gpsCoordinatePacket.length > 0) {
var mapProp = {
center: new google.maps.LatLng(gpsCoordinatePacket[0], gpsCoordinatePacket[1]),
zoom: 15,
mapTypeId: google.maps.MapTypeId.HYBRID
};
var map = new google.maps.Map(document.getElementById("mapCanvas"), mapProp);
plotVehicleMovement(map, gpsCoordinateCollection);
}
}
}
function plotVehicleMovement(map, gpsCoordinateCollection) {
// Define the clickable area of the markers.
var shape = {
coord: [1, 1, 1, 20, 18, 20, 18, 1],
type: 'poly'
};
var polyLineLatLongCollection = [];
for (var i = 0; i < gpsCoordinateCollection.length; i++) {
var gpsCoordinatePacket = gpsCoordinateCollection[i].split(';');
var latLng = new google.maps.LatLng(gpsCoordinatePacket[0], gpsCoordinatePacket[1]);
polyLineLatLongCollection.push(latLng);
var marker = new google.maps.Marker({
position: latLng,
map: map,
icon: {
path: google.maps.SymbolPath.CIRCLE,
scale: 4,
strokeColor: '#F5B71A'
},
shape: shape
});
marker.setMap(map);
}
var polyLine = new google.maps.Polyline({
path: polyLineLatLongCollection,
strokeColor: '#F5B71A',
strokeOpacity: 1.0,
strokeWeight: 1
});
polyLine.setMap(map);
}