Александр Сапожников, Южно-Уральский государственный университет
Южно-Уральский государственный университет
UWDC 2013
bit.ly/XdQx33 (сентябрь 2012)
Web sites and applications using the Google Maps API may at no cost generate up to 25,000 map loads per day for each service.
<script>createFlashMap(
document.getElementById("map"), "OSM",
function(map){}
);
</script>
function initialize() {
var map = new google.maps.Map(document.getElementById("map"), {});
map.setCenter(new google.maps.LatLng(55.160751, 61.412512));
map.setZoom(18);
var openStreet = new google.maps.ImageMapType({
getTileUrl: function(ll, z) {
var X = ll.x % (1 << z); // wrap
return "http://tile.openstreetmap.org/"
+ z + "/" + X + "/" + ll.y + ".png";
},
tileSize: new google.maps.Size(256, 256),
maxZoom: 18,
name: "OSM"
});
map.mapTypes.set('osm', openStreet);
map.setMapTypeId('osm');
map.setOptions({
mapTypeControlOptions: {
mapTypeIds: [
'osm',
google.maps.MapTypeId.ROADMAP,
google.maps.MapTypeId.TERRAIN,
google.maps.MapTypeId.SATELLITE,
google.maps.MapTypeId.HYBRID
],
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
}
});
}
var openStreet = new google.maps.ImageMapType({
getTileUrl: function(ll, z) {
var X = ll.x % (1 << z); // wrap
return "http://tile.openstreetmap.org/"
+ z + "/" + X + "/" + ll.y + ".png";
},
// ...
http://tile.openstreetmap.org/z/x/y.png
ymaps.layer.storage.add('osm#mapsurfer', function () {
var layer = new ymaps.Layer(
'http://129.206.74.245:8001/tms_r.ashx?x=%x&y=%y&z=%z', // http://www.openmapsurfer.uni-hd.de/
{ projection: ymaps.projection.sphericalMercator }
);
return layer;
} );
ymaps.mapType.storage.add('osm#mapsurfer', new ymaps.MapType('OpenStreetMap', ['osm#mapsurfer']) );
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.5/leaflet.css" />
<!--[if lte IE 8]>
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.5/leaflet.ie.css" />
<![endif]-->
<script src="http://cdn.leafletjs.com/leaflet-0.5/leaflet.js"></script>
</head>
<body><div id="map" style="height: 600px"></div>
<script>
var map = L.map('map').setView([55.17, 61.39], 16);
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
}).addTo(map);
</script>
Nominatim (лат. по имени) — адресный поиск на основе данных OSM.
use Geo::Coder::OSM;
...
my $geocoder = Geo::Coder::OSM->new();
my @places = $geocoder->geocode(
location => $self->param('address'),
);
foreach my $place ( @places ) {
print $place->{'lon'};
Because the OpenStreetMap Foundation is a non-profit organisation with limited resources, you can’t just slot in the tiles from openstreetmap.org as a replacement
См. также Tile usage policy.
L.tileLayer(
'http://{s}.tile.cloudmade.com/'
+ 'bce850b437d7493ead1fbd1c1bc77ee4'
+ '/997/256/{z}/{x}/{y}.png',
{attribution: 'Картографические данные © Участники <a href="http://openstreetmap.org">OpenStreetMap</a>, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Изображения © <a href="http://cloudmade.com">CloudMade</a>',
maxZoom: 18}).addTo(map);
L.tileLayer('http://{s}.tile.cloudmade.com/'
+ '{key}/{styleId}/256/{z}/{x}/{y}.png', {
key: ключ,
attribution: ...,
styleId: номер_стиля
}).addTo(map);
leafletjs.com/examples/choropleth.html
L.tileLayer( ...
{
tms: true,
...
TMS — Tile Map Service
shtosm.ru/2013/02/05/1/ + MapBox
Тогда совсем не рисуйте
<iframe>
Южно-Уральский государственный университет, Челябинск