Vehicular applications in smart cities, including assisted and autonomous driving, require complex data processing and low-latency communication. An effective approach to address these demands is to leverage the edge computing paradigm, wherein processing and storage resources are placed at access points of the vehicular network, i.e., at roadside units (RSUs). Deploying edge computing devices for vehicular applications in urban scenarios presents two major challenges. First, it is difficult to ensure continuous wireless connectivity between vehicles and RSUs, especially in dense urban areas with many buildings. Second, edge computing devices have limited processing resources compared to the cloud, thereby requiring careful network planning to meet the computational and latency requirements of vehicular applications. This article specifically addresses these challenges. In particular, it targets efficient deployment of edge computing devices in an urban scenario, subject to application- specific quality of service constraints. To this end, this article introduces a mixed integer linear programming formulation to minimize the deployment cost of edge devices by jointly satisfying a target level of network coverage and computational demand. The proposed approach is able to accurately model complex urban environments with many buildings and a large number of vehicles. Furthermore, this article presents a simple yet effective heuristic to deploy edge computing devices based on the knowledge of road traffic in the target deployment area. The devised methods are evaluated by extensive simulations with data from the city of Dublin. The obtained results show that the proposed solutions can effectively guarantee a target application- specific quality of service in realistic conditions.