Проблема OpenLayers Google Maps Проекции w/KML

Вот моя предложенная структура, я ценил бы обратную связь:

телефонное поле базы данных должно быть varchar (42) со следующим форматом:

CountryCode - Расширение Номер x

Так, например, в США, мы могли иметь:

1-2125551234x1234

Это представило бы американское число (код страны 1) с кодом зоны/числом (212) 555 и расширений 1234 года 1234.

Выделение кода страны с тире ясно дает понять код страны кому-то, кто просматривает данные. Это не строго необходимо, потому что коды страны" коды префикса " (можно считать их слева направо, и Вы всегда будете в состоянии однозначно определить страну). Но, так как коды страны имеют переменные длины (между 1 и 4 символами в данный момент), Вы не можете легко сказать сразу код страны, если Вы не используете своего рода разделитель.

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

Таким образом можно сохранить все число, включая код страны и расширение, в поле единой базы данных, которое можно тогда использовать для ускорения запросов, вместо того, чтобы присоединиться на пользовательской функции, как Вы мучительно делали до сих пор.

, Почему я выбирал varchar (42)? Ну, прежде всего международные телефонные номера будут иметь варьировавшиеся длины, следовательно "var". Я храню тире и "x", так, чтобы объяснил "символ", и так или иначе, Вы не будете делать целочисленной арифметики по номерам телефона (я предполагаю), таким образом, имеет мало смысла пытаться использовать числовой тип. Что касается длины 42, я использовал максимальную возможную длину всех сложенных полей, на основе ответа Adam Davis, и добавил 2 для тире и 'x".

6
задан winwaed 17 December 2010 в 02:41
поделиться

1 ответ

Я понял проблему. Вместо GML я попробовал использовать Vector следующим образом:

layer = new OpenLayers.Layer.Vector("KML", {
            projection: map.displayProjection,
            strategies: [new OpenLayers.Strategy.Fixed()],
            protocol: new OpenLayers.Protocol.HTTP({
                url: transformerURL + params,
                format: new OpenLayers.Format.KML({
                    extractStyles: true,
                    extractAttributes: true
                })
            })
        });     

Я нашел решение в этом примере солнечных часов: http://openlayers.org/dev/examples/sundials-spherical-mercator.html : -) Надеюсь, это поможет любому, у кого такая же проблема.

7
ответ дан 17 December 2019 в 00:11
поделиться
Другие вопросы по тегам:

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