Взгляните на OpenStreetMap . (Google и Bing не позволят вам получить доступ к их базовым уличным данным.)
Вы можете показать карту с помощью плиток OSM и использовать API для запроса функций, re заинтересованы в отображении на карте. OpenLayers - это библиотека отображения javascript, которая могла бы поддерживать это.
Вот вид Чикаго, показывающий уличные векторы и другие функции, наложенные поверх плиток карты:
http://www.openstreetmap.org/?lat=41.902104&lon=-87.626441&zoom=18&layers=B000FTTT
SELECT *
FROM mytable
ORDER BY
column1 DESC, column2 ASC
-121--1786312- Ну, у вас действительно есть две точки на двух разных прямых, и вы хотите найти пересечение. Самый простой способ - найти уравнения двух прямых и затем вычислить пересечение.
Уравнение прямой задается как y = mx + b , где m - наклон, а b - y-перехват. Для одной прямой у вас есть две точки, которые дают два уравнения. Таким образом, можно решить для констант m и b . Это дает следующие два уравнения:
0 = 0*m + 1*b % Using the first point x=y=0 into y=m*x+b
6 = 6*m + 1*b % Using the second point x=y=6
Или в матричной форме:
[ 0 ] = [ 0 1 ]* [ m ]
[ 6 ] [ 6 1 ] [ b ]
Для первой строки константы могут быть вычислены в MATLAB
C1 = inv([0 1;6 1]*[1;0]; % m=C1(1) and b=C(2)
Теперь, когда у вас есть уравнение для двух прямых, вы можете решить для пересечения путем решения следующей системы уравнений (которые получены путем манипулирования уравнением для прямой):
m_1*x-y = -b_1
m_2*x-y = -b_2
Все, что осталось, это написать вышеуказанную систему уравнений в матричной форме и решить:
[x] = inv [m_1 -1] * [-b_1]
[y] [m_2 -1] [-b_2]
Или в синтаксисе MATLAB:
I = inv([m_1 -1; m_2 -1])*[-b_1;-b_2]; % I is the intersection.
Примечания
В соответствии с комментарием gnovice, если линии на самом деле являются сегментами линий, необходимо проверить, находится ли пересечение между конечными точками сегментов линий.
Если два наклона равны, m_1 = m_2, то пересечения либо не будет, либо будет бесконечно много пересечений.
Примечание: Упаковка яиц заменена упаковкой колес.
То же понятие, что и файл .jar
в Java, это файл .zip
с некоторыми файлами метаданных, переименованными в .egg
, для распространения кода в виде пакетов.
В частности: внутренняя структура яиц Python
«Яйцо Python» является логической структурой, воплощающей высвобождение конкретная версия проекта Python, включающая его код, ресурсы, и метаданные. Существует несколько форматов, которые можно использовать для физически кодировать яйцо Python, и могут быть разработаны другие. Однако ключевой принцип яиц Python заключается в том, что они должны быть обнаруживаемыми и импортируемый. То есть должна быть возможность для приложения Python легко и эффективно узнать, какие яйца присутствуют в системе, и обеспечить возможность импорта желаемого содержимого яиц.
Формат
.egg
хорошо подходит для распространения и простоты удаление или модернизации кода, поскольку проект по существу автономный внутри одного каталога или файла, не связанный с любым код или ресурсы других проектов. Это также дает возможность иметь одновременно установлено несколько версий проекта, так что отдельные программы могут выбирать версии, которые они хотят использовать.