2013-12-08 2 views
0

Я создаю карту в TileMill, которая показывает возраст различных зданий по цвету. У меня есть 4 слоя данных (каждый из которых имеет 50 лет строительства, поэтому он может быть включен/выключен) и базовый слой.Наведите указатель мыши на shapefile в Mapbox/TileMill

Внутри TileMill я вижу подсказки, когда наводил на шейп-файлы. Я настроил их так, чтобы он показывал возраст построения здания, над которым курсор нависает. Однако, когда я экспортирую в MBTiles для загрузки в MapBox для интеграции на моем веб-сайте, функциональность зависания отсутствует, и нет никакой легенды.

Я искал часы для получения помощи на веб-сайте MapBox и в API. Я не использую маркеры, поэтому я не могу использовать это как решение (есть более 800 000 зданий). Есть какой-либо способ сделать это?

var map = L.mapbox.map('map', 'jacobs74.xoonovka', { 
    legendControl: { 
     // any of the valid control positions: 
     // http://leafletjs.com/reference.html#control-positions 
     position: 'bottomleft' 
    }, zoomControl: false 
}) 
    .setView([41.8928, -87.6491], 14), 
    markerLayer = L.mapbox.markerLayer().addTo(map); 
    map.gridControl.options.follow = true; 
    new L.Control.Zoom({ position: 'topright' }).addTo(map); 

     var gridLayer = L.mapbox.gridLayer('jacobs74.xoonovka'); 
    map.addLayer(gridLayer); 
    map.addControl(L.mapbox.gridControl(gridLayer, {follow: true})); 

L.control.layers({ 

    }, { 
     'Thru 1899': L.mapbox.tileLayer('jacobs74.s37bpdgq'), 
     '1900-1949': L.mapbox.tileLayer('jacobs74.fi084ush'), 
     '1950-1999': L.mapbox.tileLayer('jacobs74.yh8prbfi'), 
     '2000-Now': L.mapbox.tileLayer('jacobs74.awsw2ji1') 
    }).addTo(map); 

ответ

0

Немного неясно, где ваша проблема. Пожалуйста, укажите копию своего кода. Что касается создания всплывающей подсказки для плитки, а также для слоев маркера. Просто установите follow опцию истинного map.gridControl

<!DOCTYPE html> 
<html> 
<head> 
<meta charset=utf-8 /> 
<title>Movetip</title> 

    <meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no' /> 
    <script src='//api.tiles.mapbox.com/mapbox.js/v1.5.2/mapbox.js'></script> 
    <link href='//api.tiles.mapbox.com/mapbox.js/v1.5.2/mapbox.css' rel='stylesheet' /> 

    <style> 
    body { margin:0; padding:0; } 
    #map { position:absolute; top:0; bottom:0; width:100%; } 
    </style> 
</head> 
<body> 
<div id='map'></div> 
<script> 
var map = L.mapbox.map('map', 'examples.map-8ced9urs'); 
map.gridControl.options.follow = true; 
</script> 
</body> 
</html> 
+0

Я называю это с помощью API JavaScript. – shaunjacobsen

+0

Спасибо. Не могли бы вы включить фрагмент кода или [gist] (https://gist.github.com/)? – geraldarthur

+0

Да, я редактировал исходный вопрос, чтобы включить фрагмент. Даже с map.gridControl.options.follow = true; он не будет функционировать. Я в недоумении. – shaunjacobsen

Смежные вопросы