divan/GanjooRazor/Pages/Map.cshtml
2021-10-31 20:27:12 +03:30

72 lines
2.1 KiB
Plaintext

@page
@model GanjooRazor.Pages.MapModel
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<title>نقشهٔ گنجور</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta charset="utf-8" />
<link rel="stylesheet" href="/css/leaflet.css" />
<style type="text/css">
.leaflet-container {
background-color: #c5e8ff;
}
</style>
</head>
<body>
<div id="map" style="height: 600px"></div>
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="~/js/leaflet.js"></script>
<script src="~/js/leaflet-providers.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/OverlappingMarkerSpiderfier-Leaflet/0.2.6/oms.min.js"></script>
<script>
var myGeoJSONPath = '/json/world.json';
var myCustomStyle = {
stroke: true,
weight: 1,
color: '#300',
}
$.getJSON(myGeoJSONPath, function (data) {
var map = L.map('map').setView([34, 53.6880], 5);
L.geoJson(data, {
clickable: false,
style: myCustomStyle
}).addTo(map);
L.tileLayer.provider('Stamen.Watercolor').addTo(map);
var oms = new OverlappingMarkerSpiderfier(map, { keepSpiderfied: false });
var poets = @(Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model.PoetsWithBirthPlaces, Newtonsoft.Json.Formatting.Indented)));
for (var i = 0; i < poets.length; i++) {
var poet = poets[i];
var icon = L.icon({
iconUrl: poet.ImageUrl,
iconSize: [82, 100],
iconAnchor: [82, 100],
popupAnchor: [0, -28]
});
var marker = L.marker([poet.BirthPlaceLatitude, poet.BirthPlaceLongitude], { icon: icon });
marker.addTo(map);
oms.addMarker(marker);
}
})
</script>
</body>
</html>