2016-04-05 5 views
0

Вот демонстрация моей проблемы: я рисую круг на карте радиуса 500000, но в одном месте круг выглядит больше. Я попытался проверить масштаб карты, и это всегда одно и то же.Зачем менять размер круга круга на карте?

place = { 
 
name1:[-33.8650, 151.2094], 
 
name2:[59.3293, 18.0686] 
 
}; 
 

 
var id,circle,center; 
 

 
function panMap() { 
 
    id=this.getAttribute('id'); 
 
    center=place[id]; 
 
    map.panTo(center); 
 
    circle = L.circle(center,500000, { 
 
       color: 'red', 
 
       fillColor: '#f03', 
 
       fillOpacity: 0.5 
 
       }).addTo(map); 
 
    console.log("zoom = " +map.getZoom()); 
 
}; 
 

 
// center of the map 
 
var center = [29,29]; 
 

 
// Create the map 
 
var map = L.map('map').setView(center, 3); 
 

 
// Set up the OSM layer 
 
L.tileLayer(
 
    'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { 
 
    maxZoom: 18 
 
    }).addTo(map); 
 
    
 
var classname = document.getElementsByTagName("button"); 
 
for (var i=0;i<classname.length;i++) { 
 
    classname[i].addEventListener("click", panMap, false); 
 
};
.container { 
 
    height: 30px; 
 
    width:100%; 
 
} 
 
#map { 
 
    height: 400px; 
 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.0.0-beta.2.rc.2/leaflet.js"></script> 
 
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.0.0-beta.2.rc.2/leaflet.css"> 
 

 
<div class="container"> 
 
<button id="name1">place1</button> 
 
<button id="name2">place2</button> 
 
</div> 
 
<div id="map"></div>

ответ

1

Это связано с Mercator projection. Цитирование Википедии:

проекция Меркатор искажает размер объектов как широты возрастает от экватора до полюсов, где масштаб становится широта бесконечного

место1 находится ближе к экватору, чем place2 года широта, таким образом, становится меньше.