divan/GanjooRazor/Pages/Map.cshtml
2021-10-29 19:32:45 +03:30

73 lines
2.2 KiB
Plaintext

@page
@model GanjooRazor.Pages.MapModel
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<title>Leaflet GeoJSON Example</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta charset="utf-8" />
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.1/leaflet.css" />
<style type="text/css">
.leaflet-container {
background-color: #c5e8ff;
}
</style>
</head>
<body>
<div id="map" style="height: 600px"></div>
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="http://cdn.leafletjs.com/leaflet-0.7.1/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 });
@{
foreach (var poet in Model.PoetsWithBirthPlaces)
{
var url = poet.FullUrl.Substring(1);
<text>
var @(url)Icon = L.icon({
iconUrl: '@($"{GanjooRazor.APIRoot.InternetUrl}{poet.ImageUrl}")',
iconSize: [82, 100],
iconAnchor: [82, 100],
popupAnchor: [0, -28]
});
var @(url)Marker = L.marker([@poet.BirthPlaceLatitude, @poet.BirthPlaceLongitude], { icon: @(url)Icon });
@(url)Marker.addTo(map);
oms.addMarker(@(url)Marker);
</text>
}
}
})
</script>
</body>
</html>