<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog &#187; gimp</title>
	<atom:link href="http://karta39.ru/blog/tag/gimp/feed/" rel="self" type="application/rss+xml" />
	<link>http://karta39.ru/blog</link>
	<description>Разные мысли и идеи :)</description>
	<lastBuildDate>Tue, 21 Feb 2012 08:02:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Краткое руководство по добавлению собственных карт на Google Maps.</title>
		<link>http://karta39.ru/blog/2009/01/26/kratkoe-rukovodstvo-po-dobavleniu-sobstvennix-kart-na-google-maps/</link>
		<comments>http://karta39.ru/blog/2009/01/26/kratkoe-rukovodstvo-po-dobavleniu-sobstvennix-kart-na-google-maps/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 10:10:49 +0000</pubDate>
		<dc:creator>noonv</dc:creator>
				<category><![CDATA[инструменты]]></category>
		<category><![CDATA[исследования]]></category>
		<category><![CDATA[картинки]]></category>
		<category><![CDATA[разработка]]></category>
		<category><![CDATA[gimp]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[karta39.ru]]></category>
		<category><![CDATA[Map]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://karta39.ru/blog/?p=119</guid>
		<description><![CDATA[Добавить собственную карту не так сложно, как может показаться 
Итак приступим…
Земля в Google Maps разворачивается в проекцию Меркатора – т.е. представляет собой развёрнутый на плоскость цилиндр, что даёт нам прямоугольник, который разбивается на маленькие квадратики (tiles) с размерами 256&#215;256пикселей.
Пример кусочка карты от Google:
http://mt1.google.com/mt?v=ap.88&#38;hl=ru&#38;x=285&#38;y=162&#38;z=9&#38;s=G


здесь можно видеть следующие значения
x=285 y=162 zoom=9
т.е. нам нужно хранить свою картинку по [...]]]></description>
			<content:encoded><![CDATA[<p>Добавить собственную карту не так сложно, как может показаться <img src='http://karta39.ru/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Итак приступим…</p>
<p>Земля в Google Maps разворачивается в <a href="http://ru.wikipedia.org/wiki/Проекция_Меркатора">проекцию Меркатора</a> – т.е. представляет собой развёрнутый на плоскость цилиндр, что даёт нам прямоугольник, который разбивается на маленькие квадратики (<em>tiles</em>) с размерами <strong>256&#215;256</strong>пикселей.</p>
<p>Пример кусочка карты от Google:<br />
<a href="http://mt1.google.com/mt?v=ap.88&amp;hl=ru&amp;x=285&amp;y=162&amp;z=9&amp;s=G">http://mt1.google.com/mt?v=ap.88&amp;hl=ru&amp;x=285&amp;y=162&amp;z=9&amp;s=G</a><br />
<a href="http://karta39.ru/blog/wp-content/uploads/2009/01/mt.png"><img class="alignnone size-full wp-image-120" src="http://karta39.ru/blog/wp-content/uploads/2009/01/mt.png" alt="mt" width="256" height="256" /></a></p>
<p><span id="more-119"></span></p>
<p>здесь можно видеть следующие значения<br />
x=<strong>285</strong> y=<strong>162</strong> zoom=<strong>9</strong></p>
<p>т.е. нам нужно хранить свою картинку по кусочкам вида:<br />
<em>tile_285_162_9.jpg</em><br />
(<em>или, разумеется, аналогичным образом хранить изображения в БД</em>)<br />
<a href="http://karta39.ru/blog/wp-content/uploads/2009/01/tile_285_162_9.jpg"><img class="alignnone size-full wp-image-123" src="http://karta39.ru/blog/wp-content/uploads/2009/01/tile_285_162_9.jpg" alt="tile_285_162_9" width="256" height="256" /></a></p>
<p>Чтобы описать кусочек карты нужно знать три числа:<br />
1 – его номер по вертикали (числа растут сверху вниз (т.е. с севера на юг)) ( в примере &#8211; <strong>285</strong>)<br />
2 – его номер по горизонтали (числа растут слева направо (с запада на восток)) (<strong>162</strong>)<br />
3 – его уровень увеличения ( zoom) (<strong>9</strong>)</p>
<p>Таким образом, карту можно представить в виде стопки слоёв, каждый из которых состоит из маленьких квадратиков. (Очевидно, что число квадратиков становится больше при увеличении уровня приближения.)</p>
<p>Итак, у нас есть изображение, которое мы хотим наложить на карту или показать вместо карты.<br />
Во-первых, нужно узнать те самые три числа, которые дают нам местоположение нужного кусочка карты.<br />
В самом простом случае можно загрузить нужный нам участок карты и посмотреть информацию о полученных изображениях (в FireFox: <em>Инструменты-&gt;Информация о странице &#8211; &gt; Мультимедиа</em>)  или же можно воспользоваться <a href="http://open.atlas.free.fr/GMapsTransparenciesImgOver.php">online-сервисом</a> [6].<br />
Там нужно ввести координаты и уровень увеличения интересующего нас места на карте и он покажет нужные нам числа, но самое интересное &#8211; через данный сервис можно загрузить свою картинку и он её нам разрежет на необходимое количество кусочков и даст им нужные имена в формате:</p>
<p><strong>Tile_18250_10410_15.jpg</strong></p>
<p>К сожалению, данный сервис вываливается с ошибкой при попытке разрезать большие картинки. В таком случае &#8211; придётся резать картинку самостоятельно.</p>
<p><strong>! Следует учесть, что картинку придётся подгонять под те самые квадратики карты !</strong></p>
<p>Можно воспользоваться Photoshop-ом, я же использую для этих целей <a href="http://gimp.org">Gimp</a>.<br />
Чтобы в нём разрезать картинку нужно по вертикали и горизонтали картинки (уже подогнанной под карту, т.е. уже обрезанной или смещённой нужным образом) через каждые 256 пикселей вывести направляющие (<em>Изображение-&gt;Направляющие-&gt;Новая направляющая</em>)<br />
Далее выполняем преобразование гильотина (<em>Изображение-&gt;Преобразование-&gt;Гильотина</em>)<br />
<strong>!процедура крайне требовательная к оперативной памяти!</strong><br />
После этого у нас появится много кусочков изображения, которые сохраняются с именами вида:<br />
<code>p4.jpg</code> – исходное изображение<br />
<code>p4-00-00.jpg<br />
p4-01-00.jpg<br />
…<br />
p4-01-07.jpg<br />
..<br />
p4-09-00.jpg</code><br />
и т.д.<br />
Нумерация идёт так же как и на карте – первый номер – столбец, второй – строка.</p>
<p>Чтобы переименовать (или лучше сказать – перенумеровать) получившиеся картинки я написал небольшой <a href="http://karta39.ru/blog/wp-content/uploads/2009/01/copy_p4_2tiles.py">скрипт на питоне</a>:</p>
<blockquote><p><code><span style="font-family: &quot;Courier New&quot;; color: #000000; font-size: x-small;"></p>
<ol>
<li></li>
<li>#</li>
<li># For copy files <span style="color: #0000ff;">from</span> def-00-00.jpg to tile\tile_18243_10406_15</li>
<li>#</li>
<li></li>
<li>import os</li>
<li></li>
<li># <span style="color: #0000ff;">for</span> copy</li>
<li>import shutil</li>
<li></li>
<li></li>
<li>srcfile=<span style="color: #a31515;">"p4-01-01.JPG"</span></li>
<li>dstfile=<span style="color: #a31515;">""</span></li>
<li></li>
<li>#-----------------------------------------</li>
<li>#</li>
<li># begin here <img src='http://karta39.ru/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>#</li>
<li>print <span style="color: #a31515;">"Start..."</span></li>
<li></li>
<li>path = srcfile</li>
<li></li>
<li>tilex=281</li>
<li>tiley_beg=160</li>
<li>tiley=tiley_beg</li>
<li>zoom=<span style="color: #a31515;">'9'</span></li>
<li></li>
<li><span style="color: #0000ff;">for</span> i <span style="color: #0000ff;">in</span> range(1,10):</li>
<li> <span style="color: #0000ff;">for</span> j <span style="color: #0000ff;">in</span> range(1,8):</li>
<li> <span style="color: #0000ff;">if</span> i&lt;= 9:</li>
<li> x=<span style="color: #a31515;">'0'</span>+str(i)</li>
<li> <span style="color: #0000ff;">else</span>:</li>
<li> x=str(i)</li>
<li> <span style="color: #0000ff;">if</span> j&lt;= 9:</li>
<li> y=<span style="color: #a31515;">'0'</span>+str(j)</li>
<li> <span style="color: #0000ff;">else</span>:</li>
<li> y=str(j)</li>
<li> srcpath=<span style="color: #a31515;">'p4-'</span>+x+<span style="color: #a31515;">'-'</span>+y+<span style="color: #a31515;">'.jpg'</span></li>
<li> <span style="color: #0000ff;">if</span> os.path.exists(srcpath):</li>
<li> print srcpath, <span style="color: #a31515;">' exists'</span></li>
<li> shutil.copy(srcpath,<span style="color: #a31515;">'tile\\tile_'</span>+str(tilex)+<span style="color: #a31515;">'_'</span>+str(tiley)+<span style="color: #a31515;">'_'</span>+zoom+<span style="color: #a31515;">'.jpg'</span>)</li>
<li> <span style="color: #0000ff;">else</span>:</li>
<li> print <span style="color: #a31515;">'Cant find'</span>, srcpath</li>
<li> tiley+=1</li>
<li> tilex+=1</li>
<li> tiley=tiley_beg</li>
<li></li>
<li>print <span style="color: #a31515;">"Done."</span></li>
</ol>
<p></span><span style="color: #808080; font-size: xx-small;">* This source code was highlighted with <a href="http://virtser.net/blog/post/source-code-highlighter.aspx"><span style="color: #808080; font-size: xx-small;">Source Code Highlighter</span></a>.</span></p>
<p></code></p></blockquote>
<p>В скрипте нужно установить следующие параметры:<br />
<code><strong>tilex</strong></code> – номер крайнего изображения по вертикали на карте Google<br />
<code><strong>tiley_beg</strong></code> – номер крайнего изображения по горизонтали на карте Google<br />
<code><strong>zoom</strong></code> – уровень увеличения на карте Google<br />
Далее изменить граничные условия циклов по количеству ваших полученных картинок.<br />
Не забыть внести изменения в <code>srcpath</code>, внеся туда своё название картинки.<br />
После выполнения скрипта в директории <code>tile</code> будут ваши файлы с именами:<br />
<code>tile_281_160_9.jpg<br />
tile_281_161_9.jpg<br />
…<br />
tile_289_166_9.jpg</code></p>
<p>Осталось только настроить вывод вашей карты, средствами Google Maps.</p>
<p>Для приведённого примера:</p>
<blockquote><p><code><span style="font-family: &quot;Courier New&quot;; color: #000000; font-size: x-small;"></p>
<ol>
<li><span style="color: #0000ff;">function</span> add_custom_map(map)</li>
<li> {</li>
<li> <span style="color: #0000ff;">var</span> copyright = <span style="color: #0000ff;">new</span> GCopyright(1, <span style="color: #0000ff;">new</span> GLatLngBounds(<span style="color: #0000ff;">new</span> GLatLng(57.72883324000875,16.471134185791016),<span style="color: #0000ff;">new</span> GLatLng(49.693182016907464,25.556020736694336) ),8, <span style="color: #a31515;">"Karta39"</span>);</li>
<li> <span style="color: #0000ff;">var</span> copyrightCollection = <span style="color: #0000ff;">new</span> GCopyrightCollection(<span style="color: #a31515;">'Map Data:'</span>);</li>
<li> copyrightCollection.addCopyright(copyright);</li>
<li></li>
<li> <span style="color: #0000ff;">var</span> tilelayers = [<span style="color: #0000ff;">new</span> GTileLayer(copyrightCollection , 9, 9)];</li>
<li> tilelayers[0].getTileUrl = CustomGetTileUrl;</li>
<li></li>
<li> tilelayers[0].getCopyright = <span style="color: #0000ff;">function</span>(a,b)</li>
<li> {</li>
<li> <span style="color: #0000ff;">var</span> c= copyrightCollection.getCopyrightNotice(a,b);</li>
<li> <span style="color: #0000ff;">if</span> (!c)</li>
<li> {</li>
<li> c = G_NORMAL_MAP.getTileLayers()[0].getCopyright(a,b);</li>
<li> }</li>
<li> <span style="color: #0000ff;">return</span> c;</li>
<li> }</li>
<li></li>
<li> <span style="color: #0000ff;">var</span> custommap = <span style="color: #0000ff;">new</span> GMapType(tilelayers, <span style="color: #0000ff;">new</span> GMercatorProjection(10), <span style="color: #a31515;">"Custom Map"</span>, {shortName:<span style="color: #a31515;">"1645"</span>});</li>
<li></li>
<li> map.addMapType(custommap);</li>
<li> }</li>
<li></li>
<li> <span style="color: #0000ff;">function</span> CustomGetTileUrl(a,b)</li>
<li> {</li>
<li> <span style="color: #0000ff;">if</span> (b==9 &amp;&amp; a.x&gt;280 &amp;&amp; a.x&lt;290 &amp;&amp; a.y&gt;159 &amp;&amp; a.y&lt;167)</li>
<li> <span style="color: #0000ff;">return</span> <span style="color: #a31515;">"tile_"</span>+a.x+<span style="color: #a31515;">"_"</span>+a.y+<span style="color: #a31515;">"_"</span>+b+<span style="color: #a31515;">".jpg"</span>;</li>
<li> <span style="color: #0000ff;">else</span></li>
<li> <span style="color: #0000ff;">return</span> G_NORMAL_MAP.getTileLayers()[0].getTileUrl(a,b);</li>
<li> }</li>
</ol>
<p></span><span style="color: #808080; font-size: xx-small;">* This source code was highlighted with <a href="http://virtser.net/blog/post/source-code-highlighter.aspx"><span style="color: #808080; font-size: xx-small;">Source Code Highlighter</span></a>.</span></p>
<p></code></p></blockquote>
<p>Как видно – сначала создаётся <code>copyright</code> для слоя, а затем сам слой с вашей картой.<br />
В параметр <code>getTileUrl</code> передаётся функция возвращающая ваши кусочки карты &#8211; <code>CustomGetTileUrl(a,b)</code><br />
, где <code>a </code>– точка с параметрами <code>a.x</code> и <code>a.y</code>, которые указывают местоположение картинки по вертикали и горизонтали<br />
<code>b</code> – уровень приближения слоя.<br />
Строчка <code>return G_NORMAL_MAP.getTileLayers()[0].getTileUrl(a,b);</code><br />
Возвращает родную картинку Google Maps – если эту строчку убрать, то на карте будет отображаться только ваша картинка.</p>
<p>Полный вариант:</p>
<blockquote><p><code><span style="font-family: &quot;Courier New&quot;; color: #000000; font-size: x-small;"></p>
<ol>
<li><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">html</span><span style="color: #0000ff;">&gt;</span></li>
<li> <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">head</span><span style="color: #0000ff;">&gt;</span></li>
<li> <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">meta</span> <span style="color: #ff0000;">http-equiv</span><span style="color: #0000ff;">="content-type"</span> <span style="color: #ff0000;">content</span><span style="color: #0000ff;">="text/html; charset=utf-8"</span><span style="color: #0000ff;">/&gt;</span></li>
<li> <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">title</span><span style="color: #0000ff;">&gt;</span>Google Custom Maps<span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">title</span><span style="color: #0000ff;">&gt;</span></li>
<li><span>&lt;!-- key for karta39.ru <img src='http://karta39.ru/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  --&gt;</span></li>
<li><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">script</span> <span style="color: #ff0000;">src</span><span style="color: #0000ff;">="http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;key=ABQIAAAAsL2VORzTwmVBxxfMiMNG7hSQWpIDMILbmlKIxypjOkZkxcl47xRnQ74rU6B3rYRRuou-6ZHLri9jUA"</span></li>
<li> <span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text/javascript"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">script</span><span style="color: #0000ff;">&gt;</span></li>
<li></li>
<li> &lt;script type=<span style="color: #a31515;">"text/javascript"</span>&gt;</li>
<li> <span style="color: #008000;">//&lt;![CDATA[</span></li>
<li></li>
<li> <span style="color: #0000ff;">function</span> initialize()</li>
<li> {</li>
<li> <span style="color: #0000ff;">if</span> (GBrowserIsCompatible())</li>
<li> {</li>
<li> <span style="color: #0000ff;">var</span> map = <span style="color: #0000ff;">new</span> GMap2(<span style="color: #0000ff;">document</span>.getElementById(<span style="color: #a31515;">"map"</span>));</li>
<li> <span style="color: #0000ff;">var</span> mmmap = map;</li>
<li> <span style="color: #008000;">//map.addControl(new GScaleControl());</span></li>
<li> map.addControl(<span style="color: #0000ff;">new</span> GLargeMapControl()); <span style="color: #008000;">// контрол перемещения и приближения</span></li>
<li> map.addControl(<span style="color: #0000ff;">new</span> GMapTypeControl()); <span style="color: #008000;">// контрол режима карты</span></li>
<li> map.setCenter(<span style="color: #0000ff;">new</span> GLatLng(54.707168569101256,20.510530471801758),9);    <span style="color: #008000;">// Kaliningrad</span></li>
<li> add_custom_map(map);</li>
<li> }</li>
<li> <span style="color: #008000;">// display a warning if the browser was not compatible</span></li>
<li> <span style="color: #0000ff;">else</span></li>
<li> {</li>
<li> alert(<span style="color: #a31515;">"Sorry, the Google Maps API is not compatible with this browser"</span>);</li>
<li> }</li>
<li> }</li>
<li></li>
<li> <span style="color: #0000ff;">function</span> add_custom_map(map)</li>
<li> {</li>
<li> <span style="color: #0000ff;">var</span> copyright = <span style="color: #0000ff;">new</span> GCopyright(1, <span style="color: #0000ff;">new</span> GLatLngBounds(<span style="color: #0000ff;">new</span> GLatLng(57.72883324000875,16.471134185791016),<span style="color: #0000ff;">new</span> GLatLng(49.693182016907464,25.556020736694336) ),8, <span style="color: #a31515;">"Karta39"</span>);</li>
<li> <span style="color: #0000ff;">var</span> copyrightCollection = <span style="color: #0000ff;">new</span> GCopyrightCollection(<span style="color: #a31515;">'Map Data:'</span>);</li>
<li> copyrightCollection.addCopyright(copyright);</li>
<li></li>
<li> <span style="color: #0000ff;">var</span> tilelayers = [<span style="color: #0000ff;">new</span> GTileLayer(copyrightCollection , 9, 9)];</li>
<li> tilelayers[0].getTileUrl = CustomGetTileUrl;</li>
<li></li>
<li> tilelayers[0].getCopyright = <span style="color: #0000ff;">function</span>(a,b)</li>
<li> {</li>
<li> <span style="color: #0000ff;">var</span> c= copyrightCollection.getCopyrightNotice(a,b);</li>
<li> <span style="color: #0000ff;">if</span> (!c)</li>
<li> {</li>
<li> c = G_NORMAL_MAP.getTileLayers()[0].getCopyright(a,b);</li>
<li> }</li>
<li> <span style="color: #0000ff;">return</span> c;</li>
<li> }</li>
<li></li>
<li> <span style="color: #0000ff;">var</span> custommap = <span style="color: #0000ff;">new</span> GMapType(tilelayers, <span style="color: #0000ff;">new</span> GMercatorProjection(10), <span style="color: #a31515;">"Custom Map"</span>, {shortName:<span style="color: #a31515;">"1645"</span>});</li>
<li></li>
<li> map.addMapType(custommap);</li>
<li> }</li>
<li></li>
<li> <span style="color: #0000ff;">function</span> CustomGetTileUrl(a,b)</li>
<li> {</li>
<li> <span style="color: #0000ff;">if</span> (b==9 &amp;&amp; a.x&gt;280 &amp;&amp; a.x&lt;290 &amp;&amp; a.y&gt;159 &amp;&amp; a.y&lt;167)</li>
<li> <span style="color: #0000ff;">return</span> <span style="color: #a31515;">"tile_"</span>+a.x+<span style="color: #a31515;">"_"</span>+a.y+<span style="color: #a31515;">"_"</span>+b+<span style="color: #a31515;">".jpg"</span>;</li>
<li> <span style="color: #0000ff;">else</span></li>
<li> <span style="color: #0000ff;">return</span> G_NORMAL_MAP.getTileLayers()[0].getTileUrl(a,b);</li>
<li> }</li>
<li> <span style="color: #008000;">//]]&gt;</span></li>
<li> <span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">script</span><span style="color: #0000ff;">&gt;</span></li>
<li> <span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">head</span><span style="color: #0000ff;">&gt;</span></li>
<li> <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">body</span> <span style="color: #ff0000;">onload</span><span style="color: #0000ff;">="initialize()"</span> <span style="color: #ff0000;">onunload</span><span style="color: #0000ff;">="GUnload()"</span><span style="color: #0000ff;">&gt;</span></li>
<li> <span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div</span> <span style="color: #ff0000;">id</span><span style="color: #0000ff;">="map"</span> <span style="color: #ff0000;">style</span><span style="color: #0000ff;">="width: 500px; height: 300px"</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span></li>
<li> <span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">body</span><span style="color: #0000ff;">&gt;</span></li>
<li><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">html</span><span style="color: #0000ff;">&gt;</span></li>
</ol>
<p></span><span style="color: #808080; font-size: xx-small;">* This source code was highlighted with <a href="http://virtser.net/blog/post/source-code-highlighter.aspx"><span style="color: #808080; font-size: xx-small;">Source Code Highlighter</span></a>.</span></p>
<p></code></p></blockquote>
<p>Посмотреть пример можно здесь: <a href="http://karta39.ru/map/2/cm.html">http://karta39.ru/map/2/cm.html</a><br />
Стандартная карта:<br />
<a href="http://karta39.ru/blog/wp-content/uploads/2009/01/1.jpg"><img class="alignnone size-medium wp-image-121" src="http://karta39.ru/blog/wp-content/uploads/2009/01/1-300x242.jpg" alt="1" width="300" height="242" /></a><br />
Включён режим нашей карты:<br />
<a href="http://karta39.ru/blog/wp-content/uploads/2009/01/2.jpg"><img class="alignnone size-medium wp-image-122" src="http://karta39.ru/blog/wp-content/uploads/2009/01/2-300x243.jpg" alt="2" width="300" height="243" /></a></p>
<p>Т. к.  добавлен всего один слой, то и отображается наша карта только при одном уровне приближения (это видно по ползунку увеличения слева)</p>
<p>Для ознакомления с другими возможностями вывода своих карт можно почитать [3]. Там показано, как сделать так, чтобы ваш слой был полупрозрачным:</p>
<p>Для этого нужно добавить в <code>add_custom_map</code> следующий код:</p>
<blockquote><p><code><span style="font-family: &quot;Courier New&quot;; color: #000000; font-size: x-small;"></p>
<ol>
<li><span style="color: #0000ff;">var</span> paleLayer = <span style="color: #0000ff;">new</span> GTileLayer(copyrightCollection,12,12);</li>
<li>paleLayer.getTileUrl = CustomGetTileUrl;</li>
<li>paleLayer.getOpacity = <span style="color: #0000ff;">function</span>() {<span style="color: #0000ff;">return</span> 0.5}</li>
<li><span style="color: #0000ff;">var</span> tilelayers3 = [G_NORMAL_MAP.getTileLayers()[0], paleLayer];</li>
<li><span style="color: #0000ff;">var</span> custommap3 = <span style="color: #0000ff;">new</span> GMapType(tilelayers3, <span style="color: #0000ff;">new</span> GMercatorProjection(10), <span style="color: #a31515;">"1645 Mixture"</span>, {shortName:<span style="color: #a31515;">"1645Mx"</span>});</li>
<li>map.addMapType(custommap3);</li>
</ol>
<p></span><span style="color: #808080; font-size: xx-small;">* This source code was highlighted with <a href="http://virtser.net/blog/post/source-code-highlighter.aspx"><span style="color: #808080; font-size: xx-small;">Source Code Highlighter</span></a>.</span></p>
<p></code></p></blockquote>
<p>Вот, в принципе, и всё <img src='http://karta39.ru/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Успехов!</p>
<p><strong>Ссылки:</strong><br />
[1] <a href="http://code.google.com/intl/ru_ALL/apis/maps/documentation/reference.html">http://code.google.com/intl/ru_ALL/apis/maps/documentation/reference.html</a><br />
[2] <a href="http://econym.googlepages.com/index.htm">http://econym.googlepages.com/index.htm</a> &#8211; Google Maps API Tutorial<br />
[3] <a href="http://econym.googlepages.com/custommap.htm">http://econym.googlepages.com/custommap.htm</a><br />
[4] <a href="http://int2e.com/blog/how-to-make-a-site-like-mapwowcom/">http://int2e.com/blog/how-to-make-a-site-like-mapwowcom/</a><br />
[5] <a href="http://mapki.com/wiki/Automatic_Tile_Cutter">http://mapki.com/wiki/Automatic_Tile_Cutter</a><br />
[6] <a href="http://open.atlas.free.fr/GMapsTransparenciesImgOver.php">http://open.atlas.free.fr/GMapsTransparenciesImgOver.php</a></p>
<script type="text/javascript" src="http://odnaknopka.ru/wp/ok2.utf8.js"></script><script type="text/javascript">okbm("http://karta39.ru/blog/2009/01/26/kratkoe-rukovodstvo-po-dobavleniu-sobstvennix-kart-na-google-maps/","Краткое руководство по добавлению собственных карт на Google Maps.")</script>]]></content:encoded>
			<wfw:commentRss>http://karta39.ru/blog/2009/01/26/kratkoe-rukovodstvo-po-dobavleniu-sobstvennix-kart-na-google-maps/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.378 seconds -->

