powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Вопрос по Google Maps
12 сообщений из 12, страница 1 из 1
Вопрос по Google Maps
    #38702804
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть страница с таким кодом:
Код: 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
Вопрос по Google Maps
    #38702879
basicv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,

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

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


ссылка ap не менялась?
...
Рейтинг: 0 / 0
Вопрос по Google Maps
    #38703070
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Схитрил и сделал так:
Код: 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
Вопрос по Google Maps
    #38703208
basicv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
12 сообщений из 12, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Вопрос по Google Maps
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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