Отмечание улиц в Google Maps

Используйте .charAt() и .slice() .

Пример: http://jsfiddle.net/kCpNQ/

var myString = "0String";

if( myString.charAt( 0 ) === '0' )
    myString = myString.slice( 1 );

Если в начале может быть несколько 0 символов, вы можно изменить if() на while().

Пример: http://jsfiddle.net/kCpNQ/1/

var myString = "0000String";

while( myString.charAt( 0 ) === '0' )
    myString = myString.slice( 1 );

6
задан Niklas 29 June 2009 в 15:40
поделиться

5 ответов

Мне кажется, вы заинтересованы в отображении некоторых специфических для приложения цветов для отображения карт Google (а не карт трафика).

Если да, то вам следует попробовать настраиваемые наложения. Вы можете создавать свои собственные плитки наложения прозрачного фона (с вашими цветными улицами), сопоставлять их с плитками карт Google, а затем накладывать их на карту. Вы можете найти описание этого материала в Справочнике по API Карт - Оверлеи .

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

Edit: Хорошо, я попробовал это, и это было довольно просто . Вам просто нужно захватить изображения плиток при загрузке страницы карт Google (для области, которую вы хотите наложить). Убедитесь, что вы отслеживаете исходные URL-адреса, потому что у них есть координаты x, y, которые вам понадобятся для написания метода наложения плитки.

Отредактируйте плитки с цветными дорогами, затем загрузите их на свой веб-сервер. Добавьте следующий код, чтобы использовать ваш оверлей на обычной карте:

var myCopyright = new GCopyrightCollection("© ");
myCopyright.addCopyright(new GCopyright('Demo',
              new GLatLngBounds(new GLatLng(-90,-180), new GLatLng(90,180)),
                0,'©2007 Google'));

// Create the tile layer overlay and 
// implement the three abstract methods                 
var tilelayer = new GTileLayer(myCopyright);

// properties of the tile I based my tile on
// v=w2.97&hl=en&x=38598&s=&y=49259&z=17&s=Galil.png
tilelayer.getTileUrl = function(point,  zoom) { 
    if (zoom == 17 && point.x == 38598 && point.y == 49259)
        return "../pics/times_square.png"; 
};

tilelayer.isPng = function() { return true;};
tilelayer.getOpacity = function() { return 1.0; }

var myTileLayer = new GTileLayerOverlay(tilelayer);
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(40.75740, -73.98590), 17);
map.addOverlay(myTileLayer)

Этот код накладывается на мою плитку Thing eats NY :

при x = 38598 и y = 49259 при уровне масштабирования 17.

3
ответ дан 17 December 2019 в 04:51
поделиться

Как уже упоминалось, многоугольник с отверстиями может быть представлен как внешняя граница, плюс ноль или более внутренних границ, все из которых не перекрываются *. Если вы используете ненулевое число витков для определения внутренних / внешних границ, не забудьте указать внутренние границы в направлении, противоположном внешним границам (против часовой стрелки для внешних и по часовой стрелке для внутренних или наоборот), чтобы контурные интегралы внутри отверстий равны нулю.

FYI, это вид определения / представления был формализован в спецификации OpenGIS Simple Features Specification ( PDF ).

Что касается представления:

I Вероятно, у нас есть массив ячеек из K Nx2 матриц, где первый элемент в массиве ячеек является внешней границей, а остальные элементы (если есть) в массиве ячеек являются внутренними границами. Я бы использовал массив ячеек, потому что на каждой границе может быть не одинаковое количество точек.

* nonoverlapping = кроме отдельных точек, например

0
ответ дан 17 December 2019 в 04:51
поделиться

В API Карт Google можно создавать маркеры и многоугольники. Вам необходимо создать объекты GPolygon и / или GPolyline

Посмотрите эти руководства

И если вы хотите получить координаты (широту, долготу) определенных улиц, вы можете взглянуть на источник код этой страницы

Я не уверен, что полностью понимаю ваш вопрос: вы хотите отметить некоторые заданные улицы? в этом случае самым быстрым и грязным способом может быть получение координат всех адресов улицы и построение на их основе GPolygon ...

1
ответ дан 17 December 2019 в 04:51
поделиться

Я только что нашел эту ссылку , и я думаю, что это может вас заинтересовать. Это пакет JavaScript, который предоставляет функции для отображения нескольких маршрутов на Google Maps.

Это то, что вы искали ??

0
ответ дан 17 December 2019 в 04:51
поделиться

Думали ли вы об использовании OpenStreeMaps ?

1
ответ дан 17 December 2019 в 04:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: