Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Вопрос по Google Maps / 12 сообщений из 12, страница 1 из 1
22.07.2014, 13:08
    #38702804
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Google Maps
Есть страница с таким кодом:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
<!DOCTYPE html>
<html>
<head>
	<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
	<script src="http://yui.yahooapis.com/3.17.2/build/yui/yui-min.js"></script>
<script type="text/javascript">
var map;
function map_init()
{
	var opt = {zoom: 14, center: new google.maps.LatLng(10,20)};
	map = new google.maps.Map(document.getElementById("map_canvas"), opt);
}
google.maps.event.addDomListener(window, 'load', map_init);
</script>
</head>
<body>
	<div id="status" class="yui3-skin-sam tabbox">
			<ul>
					<li><a id="menu_info" href="#info">Сводка</a></li>
					<li><a id="menu_station" href="#station">Посетители</a></li>
					<li><a id="menu_user" href="#user">Пользователи</a></li>
					<li><a id="menu_ap" href="#ap">Покрытие</a></li>
					<li><a id="menu_map" href="#map">Карта</a></li>
			</ul>
			<div>
					<div id="map">
						<div id="map_canvas"></div>
					</div>
			</div>
	</div>
</body>
</html>


Но при открытии этой страницы в div#map_canvas пусто.
Хотя ошибок нет.

Не подскажите, что не так?
________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
22.07.2014, 14:00
    #38702879
basicv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Google Maps
Alibek B.,

Ключ не забыл?
...
Рейтинг: 0 / 0
22.07.2014, 14:02
    #38702882
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Google Maps
Э... Написано, что в третьей версии ключ не нужен.
...
Рейтинг: 0 / 0
22.07.2014, 14:14
    #38702910
basicv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Google Maps
...
Рейтинг: 0 / 0
22.07.2014, 14:22
    #38702934
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Google Maps
...
Рейтинг: 0 / 0
22.07.2014, 14:33
    #38702959
basicv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Google Maps
Alibek B.,

ну, не хочешь, не используй.
В коде проблем нет - работает такой-же.
...
Рейтинг: 0 / 0
22.07.2014, 14:40
    #38702971
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Google Maps
Мда, проблема совсем в другом месте оказалась.
Код: html
1.
2.
3.
4.
5.
6.
7.
<head>
  <style type="text/css">
...
    form#filter input {width: auto;};
    div#map_canvas {width: 100%; height: 100%; margin: 0; padding: 0;}
  </style>
</head>


Так вот, из-за точки с запятой в конце стиля form#filter (это опечатка была) последующие стили не обрабатываются.
Поэтому div#map_canvas получался нулевого размера и не отображался.
...
Рейтинг: 0 / 0
22.07.2014, 15:17
    #38703028
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Google Maps
Подскажите, как разместить несколько маркеров с инфо-окнами?
Использую такой код (на серверной стороне, в <? ?> PHP-вставка, добавляющая массив точек):
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
var map;
function map_init()
{
	var opt = {mapTypeId: google.maps.MapTypeId.HYBRID, zoom: 14, center: new google.maps.LatLng(44.2267,42.0543)};
	map = new google.maps.Map(document.getElementById("map_canvas"), opt);
	var ap;
	var info;
<? foreach ($data['zone'] as $key=>$zone): ?>
<? if (isset($zone['GEO_LAT'],$zone['GEO_LNG'])): ?>
	ap = new google.maps.Marker({position: new google.maps.LatLng(<?= $zone['GEO_LAT'] ?>,<?= $zone['GEO_LNG'] ?>), map: map, title: "<?= $zone['INDEX'] ?>"});
	info = new google.maps.InfoWindow({content: "<?= 'Точка #' . $zone['INDEX'] . ', ' . htmlspecialchars($zone['ADDRESS']) ?>"});
	google.maps.event.addListener(ap, 'click', function() {info.open(map,ap)});
<? endif; ?>
<? endforeach; ?>
}
google.maps.event.addDomListener(window, 'load', map_init);


Маркеры отображаются все, но при клике на любом из них отображается инфо-окно последнего маркера.
...
Рейтинг: 0 / 0
22.07.2014, 15:24
    #38703044
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Google Maps
Попробовал использовать одно окно и сделать так:
Код: javascript
1.
2.
3.
4.
5.
6.
var info = new google.maps.InfoWindow({content: ""});
var ap;
ap = new google.maps.Marker({position: new google.maps.LatLng(11,22), map: map, title: "1"});
google.maps.event.addListener(ap, 'click', function() {info.close(); info.setContent({content: "Точка #1"}); info.open(map,ap)});
ap = new google.maps.Marker({position: new google.maps.LatLng(33,44), map: map, title: "2"});
google.maps.event.addListener(ap, 'click', function() {info.close(); info.setContent({content: "Точка #2"}); info.open(map,ap)});



И я не нашел, можно маркеры делать разного цвета?
...
Рейтинг: 0 / 0
22.07.2014, 15:37
    #38703066
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Google Maps
Похоже понял в чем дело.
Когда выполняю ap = new, то в функциях-хендлерах ссылки тоже обновляются.
Как мне сделать так, чтобы в этой строке:
Код: javascript
1.
google.maps.event.addListener(ap, 'click', function() {info.open(map,ap)})


ссылка ap не менялась?
...
Рейтинг: 0 / 0
22.07.2014, 15:42
    #38703070
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Google Maps
Схитрил и сделал так:
Код: javascript
1.
2.
ap = new google.maps.Marker({position: new google.maps.LatLng(<?= $zone['GEO_LAT'] ?>,<?= $zone['GEO_LNG'] ?>), map: map, title: "<?= $zone['INDEX'] ?>"});
google.maps.event.addListener(ap, 'click', function() {info.close(); info.setContent("<?= 'Точка #'.$zone['INDEX'].', '.htmlspecialchars($zone['ADDRESS']) ?>"); info.open(map,this)});


Сейчас работает, но хотелось бы все же знать, как получить автономную копию ссылки на объект, которая в дальнейшем не была бы связана с переменной.

И еще непонятная проблема, при клике на маркере карта у меня пролистывается так, чтобы инфо-окно было прижато к левому краю. Как бы убрать эту прокрутку?
...
Рейтинг: 0 / 0
22.07.2014, 17:52
    #38703208
basicv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Google Maps
Alibek B.,

как получить автономную копию ссылки на объект, которая в дальнейшем не была бы связана с переменной?
При создании нового объекта, сохраняй его в массив.

можно маркеры делать разного цвета?
Стандартный маркер менять нельзя, но можно загружать свою картинку. Если самому рисовать лень - у Google есть сервис с возможностью менять цвета -
Код: html
1.
http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|C00000

, где С00000 нужный цвет.

Пример:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
function loadAddress(lat, lng, address, apgr_tend90) {
            var pinColor = "1E22FF";
            if (apgr_tend90) {
                if (apgr_tend90 > 50) {
                    pinColor = "4F6228";
                } else if (apgr_tend90 > 30) {
                    pinColor = "75923C";
                } else if (apgr_tend90 > 15) {
                    pinColor = "C2D69A";
                } else if (apgr_tend90 > 0) {
                    pinColor = "D7E4BC";
                } else if (apgr_tend90 > -15) {
                    pinColor = "FCD5B4";
                } else if (apgr_tend90 > -30) {
                    pinColor = "FAC090";
                } else if (apgr_tend90 > -50) {
                    pinColor = "E46D0A";
                } else if (apgr_tend90 > -999999) {
                    pinColor = "C00000";
                }
            }
            var pinImage = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|" + pinColor,
                new google.maps.Size(21, 34),
                new google.maps.Point(0, 0),
                new google.maps.Point(10, 34));

            var myLatlng = new google.maps.LatLng(lat, lng);
            var marker = new google.maps.Marker({
                map: map,
                position: myLatlng,
                title: address,
                icon: pinImage
            });

            markers.push(marker);

        }

...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Вопрос по Google Maps / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]