Клуб API Карт

Static API и Геокодер с MySQL. как воплатить?

Пост в архиве.
tms081
11 марта 2010, 10:46

Добрый день. На днях решил сделать отображения городов в которых живут мои пользователи в их страницах. С помощью Static API (т.к карты должны быть видны и с телефона), появляется такой вопрос можно ли сделать каждому на отдельную страницу картинку с его городом, город нужно  брать из базы в которой хранится анкета пользователя где указан его город проживания. Взяв город из базы нужно его геокодировать и выдать карту размером 200х200 пикселов. самое главное это все должно быть доступно с телефона, и все это должно делаться автоматически. Заранее спасибо!

34 комментария
раскажите какие проблемы вы видите?
я например никаких не вижу :)

геокодируем города чтобы узнать их координаты,
можно использовать разные трики чтобы опеределить лучшие зумы для отображения городов.
при отображении страницы пользователя отображаем статик мап по известным координатам, все выполняется на сервере.
Никакой разницы откуда произведен заход - нету
Здравствуйте. Прочитал все материалы, но так и не понел как можно геокодировать город из базы. Не могли бы вы дать код? Если карта должна быть  размером 200х200 пикселов, и город хранится в таблице user ячейка ank_city. Заранее спасибо.
создаем таблицу городов.
Id,Name,lat,lng,zoom
туда перебиваем все города из таблицы юзверей.
Тут главное не забыть что в разных регионах могут быть одинаковые города( например Троицка - два )

Геокодируем этот список.
При отображении просим SELECT lat,lng,zoom FROM city_table WHERE Name=%thisusercityname%
хотя конечно лучше поднять нормальный внешний ключик.

задача выполнена.

подводя итоги - город это не строка в свойствах юзера, город это запись в таблице городов
Чет я не понел. Ладно, хотел себе на маленький эксклюзив... видимо он не получился):
что вы хотите.
есть запись в таблице пользователя, там текстом написан город
вы хотите по этой записи отобразить статик мап в нужном месте..
но если у нас 100 пользователей из москвы - вы что каждый раз будете одно и тоже делать?? Каждый раз геокодировать уже известные вам данные?

что я хочу -
чтобы вы все города вынести в отдельную табличку, прошлись по ней геокодером и сохранили координаты.
далее, при отображении страницы - глянули в эту табличку в поисках сейчас нужного города - и отобразили его :)
что вы хотите. есть запись в таблице пользователя, там текстом написан город вы хотите по этой записи отобразить статик мап в нужном месте.. -------------------------------------------------------- да, сейчас этот способ для меня более удобен. как более-мение раскручусь сделаю способом 2. ну так что вы не откажете мне помочь с способом 1.
эх, косячно это будет :)
и в этом варианте по хорошему можно использовать только геокодинг на стороне javascript
показали страничку, вызвали геокодер( в этом случае он отработает кстати из города пользователя), получили координаты и отобразили картинку.

Тут по сути 10 строчек кода, сами справитесь?
Тут по сути 10 строчек кода, сами справитесь?
===============
Врятли:)...можете дать код? Заранее спасибо
создаем гденить картинку


далее
var geo = new YMaps.Geocoder( 'город пользователя' );
YMaps.Events.observe( geo, geo.Events.Load, function () {
if ( this.length() ){
 var point = this.get( 0 ).getGeoPoint();
 var image='http://static-maps.yandex.ru/1.x/?ll="+point.getLat()+","+point.getLng()+"&l=sat,skl&z=9&size=130,130&key="+YA_APIKEY;
 $(".userLocationImg").get(0).src=image;
}
}
как-то так, нарисовано на коленке и даже на синтаксис не проверено
это получается так
====================
var geo = new YMaps.Geocoder( '$user[ank_city]' );
YMaps.Events.observe( geo, geo.Events.Load, function () {
if ( this.length() ){
var point = this.get( 0 ).getGeoPoint();
var image='http://static-maps.yandex.ru/1.x/?ll="+point.getLat()+","+point.getLng()+"&l=sat,skl&z=9&size=130,130&key="+YA_APIKEY;
$(".userLocationImg").get(0).src=image;
}
}
прямо тут вижу три синтаксические ошибки, две из них фатальные.
также спрошу определили ли вы YA_APIKEY и используйте ли jQuery

правильно было бы
?>
var geo = new YMaps.Geocoder( '' );
YMaps.Events.observe( geo, geo.Events.Load, function () {
if ( this.length() ){
var point = this.get( 0 ).getGeoPoint();
var image="http://static-maps.yandex.ru/1.x/?ll="+point.getLat()+","+poin t.getLng()+"&l=sat,skl&z=9&size=130,130&key="+YA_APIKEY;
$(".userLocationImg").get(0).src=image;
}
}
спасибо:)
большое спасибо
код не пашет :-(
а почему?
не работает\еррориться\не правильно работает и так далее.
пациента в студию!
Картинка не видна, возможно надо было ее создать... хотя она автоматом должна генерироваться... или я зря свой ключ для домена ввел
Что не кто не поможет?
Дайте ссылку на страницу.
я работаю с денвером.
Кто нибудь дайте рабочий код, или скажите как правильно сделать вывод картинки. вот я вписываю код ?> --------------------------------------------- Но картинка не показывается
покажите весь код будьте добры.
идеально - запаруйте весь свой денвер( или хотябы "сохранить страницу как" вэб страница полностью ) и выложите\пошлите куданибудь( да хоть мне на thekashey@gmail.com )
вот пример http://o-wap.ru/info.php?id=1 , скажите в чем ошибка, вот код страници http://upwap.ru/792123 (карта вставляется в 170 строке)
ну что?
 
missing ) after argument list } info.php?id=1 (строка 57
 стыд и позор
забыли одну закрываюшую скобочку, да и запрос к геокодеру тоже пустой посылаете
МОЖЕТЕ ПОДПРАВИТЬ ФАЙЛ И ВЛОЖИТЬ?
в данном случае код будет

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

Имхо - послушайтесь советов и пробейте координаты городов заранее
Понел... скажите как создать координат городов заранее...какие нужно создать таблицы, и каким кодом выводить эти города если такой же стоит в анкете у юзера?
я уже писал об этом.
вам надо пройтись по таблице пользователей и собрать наименования их месторасположений в табличку, так чтобы не было повторений.
потом пройтись по этой табличке и сохранить координаты в соседние поля.
При выводе найти город по имени и получить его координаты
и я наверное добавлю, хоть и не совсем приятно это делать.
если вы задаетесь такими вопросами лучше и не делать отображение города на странице пользователя.
Ладно я вас понел... у меня к вам просьба, будьте любезны дайте ссылки где можно почитать об этом более подробно,
habr.ru
php.net
mysqlperformanceblog.com
воплатить вообще никак

в эту страницу надо вставить

=========================

include_once 'sys/inc/start.php';
include_once 'sys/inc/compress.php';
include_once 'sys/inc/sess.php';
include_once 'sys/inc/home.php';
include_once 'sys/inc/settings.php';
include_once 'sys/inc/db_connect.php';
include_once 'sys/inc/ipua.php';
include_once 'sys/inc/fnc.php';
include_once 'sys/inc/user.php';
$set['title']='Месторасположение'; // заголовок страницы
include_once 'sys/inc/thead.php';

aut();
title();


echo "сдесь карта";

echo "Назад
";
include_once 'sys/inc/tfoot.php';



?>