Как вставить Google Map API

qwestor

Новичок
Как вставить Google Map API

Кто-нибудь объясните как на сайт воткнуть гуглевскую карту с возможностью юзерам добавлять свои метки на карту с комментариями и чтоб эти метки с коментами видны потом всем были?
Наподобие как здесь http://www.pushkino.org/
Или где на русском об этом расписано?
а то тут http://code.google.com/apis/maps/index.html букав англицких много и непонятно.

п.с. карту добавил (правда с кодировкой что-то не то), а как дальше не пойму..
 

NHSum

Новичок
Ну... задача твоя состоит из двух частей.
Собственно часть 1 - Google Maps:
Для начала тебе надо получить Google API Key. Это что-то типа лицензионного ключа, который выдает гугл. Ключ выдается на сайт. Без него работать не будет, вернее на локалхосте может и будет, но мягко говоря непредсказуемо.
После получения ключа вставляешь в свой скрипт строку
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ТвойКлюч&type="text/javascript"></script>
Ну и начинаешь брушить.
Тебя интересуют объекты:
- GMap2 (непосредственно карта)
- GClientGeocoder (это если ты хочешь преобразовывать адреса в координаты)
- GMarkerManager (это для установки маркеров)
- GMarker (непосредственно маркеры)
Ну а на GMarker навешиваешь событие (например onclick), по которому выводишь хинт (например через метод GMap2::eek:penInfoWindowHtml)

Все классы описаны здесь
http://code.google.com/apis/maps/index.html
причем есть туториалы и примеры

Ну а часть вторая твоей задачи - это уже PHP. Тебе потребуется база, в которой ты будешь хранить свои точки.
Алгоритм такой:
- Пользователь добавляет скажем новый адрес
- При сохранении ты преобразуешь этот адрес в точку гугловской карты (это для дальнейшего ускорения процесса) и сохраняешь.
Ну а при выводе карты сначала отрабатывает PHP скрипт, который формирует массив для JS.

Если интересует рабочий пример по гугл картам - могу выслать

ЗЫ: А буквы англицкие читать все равно придется :)
 

qwestor

Новичок
Автор оригинала: NHSum
Ну... задача твоя состоит из двух частей.
Собственно часть 1 - Google Maps:
Для начала тебе надо получить Google API Key. Это что-то типа лицензионного ключа, который выдает гугл. Ключ выдается на сайт. Без него работать не будет, вернее на локалхосте может и будет, но мягко говоря непредсказуемо.
После получения ключа вставляешь в свой скрипт строку
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ТвойКлюч&type="text/javascript"></script>
Ну и начинаешь брушить.
Тебя интересуют объекты:
- GMap2 (непосредственно карта)
- GClientGeocoder (это если ты хочешь преобразовывать адреса в координаты)
- GMarkerManager (это для установки маркеров)
- GMarker (непосредственно маркеры)
Ну а на GMarker навешиваешь событие (например onclick), по которому выводишь хинт (например через метод GMap2: openInfoWindowHtml)

Все классы описаны здесь
http://code.google.com/apis/maps/index.html
причем есть туториалы и примеры
Ключ получил, карту вставил с нужными координатами, кнопками и стрелками, с кодировкой разобрался:
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ключ"
type="text/javascript" charset="utf-8" ></script>
Ну а дальше приплыл...как классы (или функции?) прописывать? Всего-то и надо по минимуму, чтоб юзер маркер на карту поставил и комментарий к нему написал :(

Автор оригинала: NHSum
Ну а часть вторая твоей задачи - это уже PHP. Тебе потребуется база, в которой ты будешь хранить свои точки.
Алгоритм такой:
- Пользователь добавляет скажем новый адрес
- При сохранении ты преобразуешь этот адрес в точку гугловской карты (это для дальнейшего ускорения процесса) и сохраняешь.
Ну а при выводе карты сначала отрабатывает PHP скрипт, который формирует массив для JS.
Тут мне 50х50 понятно, т.е. юзер добавляет в прикрученную к чему-то обычную форму постом комментарии и координаты, а данные из класса берутся? т.е. непонятно как эти классы (джаваскрипт) с пхп скрещиваются и как переменные передаются туда и обратно, где кончается жаба и начинается пыхпых и наоборот.:)
И еще можно ли обойтись без мускула.
Если не трудно скинь пример с кодами.
 

Atomic

Новичок
Если не сложно, можешь и мне скинуть пример.... мыло - mail-for-chat(соб@ка)mail.ru
или аська 339908930

а то весь инет перерыл... очень мало кто этим занимался... информации мало.. + я тоже не особо разбираюсь во всем этом... но вот с удовольствием бы посмотрел код....

P.S. за объяснение СПАСИБО огромное... многое прояснилось...
 

Atomic

Новичок
Long, огромное спасибо!!!!
стало еще понятнее!!!!

:)

-~{}~ 03.02.08 17:19:

Я в программировании плохо разбираюсь, но идею так и не оставил.. нарыл несколько книжек на английском по картам и статей...

пока что получилось, но хреновенько...

Вот так я научился добавлять метки в базу mysql
http://code.google.com/support/bin/answer.py?answer=80201&topic=11364

А вот так я добился того что метки добавляются на карту..
http://code.google.com/support/bin/answer.py?answer=65622&topic=11364

В общем из этих двух примеров я собрал один...
4 файла
один фаил в html (главный)
один php для добавления
один php для извлечения
один php для конфига
....................................
и все бы хорошо... но проблема с кодировкой... Если писать по английски, то все верно... Если я пытаюсь занести метку по русски, то в базу mysql попадают данные типа -
%u0431%u043B%u0438%u043D
%u0431%u043B%u0438%u043D
... ну и естественно выводятся они тоже так же...


в phpadmin
таблица
markers 12MyISAM cp1251_general_ci 2.5 КБ
база
1 таблиц(ы) Всего 12MyISAM cp1251_general_ci 2.5 КБ

я так понимаю что нужно где-то указать кодировку... чтобы метки на русском записывали в таблицу правильно...
мне кажется это нужно написать в файле phpsqlinfo_addrow.php
из примера http://code.google.com/support/bin/answer.py?answer=80201&topic=11364

--------------
Плиз, помогите разобраться... А то уже два дня сижу.. ни ему, не пью, не сплю.. все пытаюсь кодировку настроить.. но судя по всему моих познаний ни в mysql, ни в php явно не хватает...

Ну или подскажите какой-нибудь толковый манула по кодировкам и по тому как правильно заполнять базу...

На вас последняя надежда...
 

dimagolov

Новичок
Atomic
вопрос в том, как ты и откуда принимаешь данные, которые собираешься записать в БД, как они кодированы.
 

Atomic

Новичок
Ну если я правильно все понимаю, то данные из html файла , посылаются в php , оттуда в базу...

из html в php

PHP:
 function saveData() {
      var name = escape(document.getElementById("name").value);
      var address = escape(document.getElementById("address").value);
      var type = document.getElementById("type").value;
      var latlng = marker.getLatLng();
      var lat = latlng.lat();
      var lng = latlng.lng();

      var url = "phpsqlinfo_addrow.php?name=" + name + "&address=" + address +
                "&type=" + type + "&lat=" + lat + "&lng=" + lng;
      GDownloadUrl(url, function(data, responseCode) {
        if (responseCode == 200 && data.length <= 1) {
          marker.closeInfoWindow();
          document.getElementById("message").innerHTML = "Location added.";
        }
      });
    }
из php в базу

PHP:
// Берем данные параметры
$name = $_GET['name'];
$address = $_GET['address'];
$lat = $_GET['lat'];
$lng = $_GET['lng'];
$type = $_GET['type'];

// Соединение с mysql
$connection=mysql_connect ("$localhost", $username, $password);
if (!$connection) {
  die('Not connected : ' . mysql_error());
}

// соединение с базой
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
  die ('Can\'t use db : ' . mysql_error());
}

// перенос параметров в базу
$query = sprintf("INSERT INTO markers " .
         " (id, name, address, lat, lng, type ) " .
         " VALUES (NULL, '%s', '%s', '%s', '%s', '%s');",
         mysql_real_escape_string($name),
         mysql_real_escape_string($address),
         mysql_real_escape_string($lat),
         mysql_real_escape_string($lng),
         mysql_real_escape_string($type));

$result = mysql_query($query);

if (!$result) {
  die('Invalid query: ' . mysql_error());
}
Вот как я делаю.....

---------------------
Понимаете, как я писал выше, я в программировании почти ноль.... в основно все работает за счет логики, интуиции, мануалов из сети и книжки "php/mysql для чайников"

Помогите найти то место , которое отвечает за кодировку...!!!!

-~{}~ 04.02.08 09:00:

P.S. html фаил как я проверял блокнотом зам записан в кодировки ANSI , но с другой стороны в самом документе написано
PHP:
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>

Я интуитивно чувствую, что тут все не так то и сложно... но весь этот разброс коидровок меня путает и никак не получается достигнуть результата....

Напомню проблему
при переносе данный в базу, они там появляются в виде всяких нечитаемых символов типа "%u0431%u043B%u0438%u043D" и при извлечении от туда, так же пишуться.....

-~{}~ 04.02.08 09:39:

не ужели никто не хочет мне помочь или моя проблема настолько проста, что никто не хочет даже подсказать откуда копать...

Ну люди.. ну хотя бы ссылку дайте на грамотный мануал по mysql ... где рассматривают как работать с кодировками...

хоть то , от чего отталкиваться
 

dimagolov

Новичок
Atomic, начинай отсюда http://www.w3schools.com/jsref/jsref_escape.asp. В итоге должен дойти до encodeURIComponent, которую тебе и надо использовать. потом поиску по форуму найдешь то, что с полученным результатом надо делать на сервере. обрати внимание на то, что на сервере надо ставить правильную локаль (utf)
 

Atomic

Новичок
dimagolov
Спасибо ОГРОМНОЕ!!!!!! лед тронулся!!!!!

через час моих мучений в узнавании метода encodeURIComponent, наконец я смог закодировать и разкодировать !!!!!

СПАСИБО!!!!!!!!!

-~{}~ 05.02.08 00:28:

не могу удержаться, еще раз СПАСИБО!!!! я над этим три дня бился... даже друзей некоторых подключил... но безрезультатно...
СПАСИБО!!!

Будешь в Питере - с меня пиво!!!!
 

vipron

Новичок
Таже самая проблема но так и не понял как её решить в место escape юзаю encodeURIComponent данные в БД хранятся в виде медвед но на карте нормально отображаются кроме буквы ш что я делаю не правильно , тоже уже несколько дней сижу ?
 

dimagolov

Новичок
vipron, очевидно у тебя неправильная кодировка или базы или подключения к ней. Писать utf строки в win1251 базу слегка некузяво.
 

vipron

Новичок
В myphpadmin у меня стоит MySQL-кодировка: UTF-8 Unicode (utf8)
Сопоставление соединения с MySQL utf8_unicode_ci
В БД поля name, address, type Сравнение utf8_unicode_ci
Удалил БД создал все по новому но так и пишет &#1151; вместо ш
 

Silentium

Новичок
Re: Как вставить Google Map API

Добрый день!

решил вот использовать возможности GoogleMAps у себя на сайте, в связи с чем организовалась обратная проблемка. Страничка GooleMap имеет кодировку utf-8. Я передаю в функцию
marker.openInfoWindowHtml, которая показывает надпись над маркером, данные через переменные $_GET[] в формате window-1251, соответсвтенно получаю в окошке над маркером абракадабру...Не могли бы Вы дать совет как исправить эту проблему...? Заранее спасибо!!!

P.S. Сама реализация в статьях на google осуществлена на JS, в которой я мягко говоря ньюб!!!
 

Духовность™

Продвинутый новичок
Silentium
попробуй в вызове JS с гугля прописать кодировку UTF

<script src="http://maps.google.com/maps?file=ap....." type="text/javascript" charset="utf-8"></script>


------
а нет... тупанул наверно. странное поведение, так вроде не должно быть
 
Сверху